<?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>176087</bug_id>
          
          <creation_ts>2017-08-29 19:21:03 -0700</creation_ts>
          <short_desc>[Mac] Upstream Carbon-related WebKitSystemInterface functions</short_desc>
          <delta_ts>2017-08-30 02:01:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>achristensen</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1343390</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-29 19:21:03 -0700</bug_when>
    <thetext>[Mac] Upstream Carbon-related WebKitSystemInterface functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343391</commentid>
    <comment_count>1</comment_count>
      <attachid>319323</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-29 19:25:08 -0700</bug_when>
    <thetext>Created attachment 319323
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343392</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-29 19:26:40 -0700</bug_when>
    <thetext>Attachment 319323 did not pass style-queue:


ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:444:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:452:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:468:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:524:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:550:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:776:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:1357:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/PAL/pal/spi/mac/QuickDrawSPI.h:41:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/QuickDrawSPI.h:42:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/QuickDrawSPI.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 10 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343425</commentid>
    <comment_count>3</comment_count>
      <attachid>319332</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-29 21:04:26 -0700</bug_when>
    <thetext>Created attachment 319332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343427</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-29 21:06:14 -0700</bug_when>
    <thetext>Attachment 319332 did not pass style-queue:


ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:444:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:452:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:468:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:524:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:550:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:776:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:1357:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/PAL/pal/spi/mac/QuickDrawSPI.h:41:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/QuickDrawSPI.h:42:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/QuickDrawSPI.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 10 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343444</commentid>
    <comment_count>5</comment_count>
      <attachid>319336</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-29 21:26:58 -0700</bug_when>
    <thetext>Created attachment 319336
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343445</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-29 21:29:29 -0700</bug_when>
    <thetext>Attachment 319336 did not pass style-queue:


ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:444:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:452:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:468:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:524:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:550:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:776:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:1357:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/PAL/pal/spi/mac/QuickDrawSPI.h:41:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/QuickDrawSPI.h:42:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/QuickDrawSPI.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 10 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343460</commentid>
    <comment_count>7</comment_count>
      <attachid>319341</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-29 22:19:22 -0700</bug_when>
    <thetext>Created attachment 319341
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343462</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-29 22:21:40 -0700</bug_when>
    <thetext>Attachment 319341 did not pass style-queue:


ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:444:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:452:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:468:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:524:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:550:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:776:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:1357:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/PAL/pal/spi/mac/QuickDrawSPI.h:41:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/QuickDrawSPI.h:42:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/QuickDrawSPI.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 10 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343477</commentid>
    <comment_count>9</comment_count>
      <attachid>319348</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-30 00:09:57 -0700</bug_when>
    <thetext>Created attachment 319348
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343478</commentid>
    <comment_count>10</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-30 00:11:37 -0700</bug_when>
    <thetext>Attachment 319348 did not pass style-queue:


ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:444:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:452:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:468:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:524:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:550:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:776:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:1357:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/PAL/pal/spi/mac/QuickDrawSPI.h:41:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/QuickDrawSPI.h:42:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/QuickDrawSPI.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 10 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343483</commentid>
    <comment_count>11</comment_count>
      <attachid>319350</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-30 00:40:58 -0700</bug_when>
    <thetext>Created attachment 319350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343484</commentid>
    <comment_count>12</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-30 00:42:07 -0700</bug_when>
    <thetext>Attachment 319350 did not pass style-queue:


ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:444:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:452:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:468:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:524:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:550:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:776:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKitLegacy/mac/Carbon/HIWebView.mm:1357:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/PAL/pal/spi/mac/QuickDrawSPI.h:41:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/QuickDrawSPI.h:42:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/PAL/pal/spi/mac/QuickDrawSPI.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 10 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343493</commentid>
    <comment_count>13</comment_count>
      <attachid>319350</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-30 01:59:13 -0700</bug_when>
    <thetext>Comment on attachment 319350
Patch

Clearing flags on attachment: 319350

Committed r221351: &lt;http://trac.webkit.org/changeset/221351&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343494</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-30 01:59:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343495</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-30 02:01:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/34156936&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319323</attachid>
            <date>2017-08-29 19:25:08 -0700</date>
            <delta_ts>2017-08-29 21:04:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176087-20170829192507.patch</filename>
            <type>text/plain</type>
            <size>53861</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA2ZjkxM2M0
OTQ1OTNlZjQ0YTBmYTAxNDI4ZGMwNGQ5ZTBmNGRiYzg5Li4zMmUwYzY3MTU1YjdhOGJiOTA0ODE2
NDQ3OWJjYjIzYWQxMjVkYjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAog
MjAxNy0wOC0yOSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKKyAgICAgICAgW01h
Y10gVXBzdHJlYW0gQ2FyYm9uLXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDg3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQQUwu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL0ZvdW5k
YXRpb25TUEkuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05T
V2luZG93U1BJLmguCisgICAgICAgICogcGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1dpbmRvd1NQSS5oLgorICAg
ICAgICAqIHBhbC9zcGkvbWFjL05TRXZlbnRTUEkuaDoKKyAgICAgICAgKiBwYWwvc3BpL21hYy9O
U1dpbmRvd1NQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFjL1F1aWNrRHJhd1NQSS5oOiBBZGRl
ZC4KKworMjAxNy0wOC0yOSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKICAgICAg
ICAgW01hY10gVXBzdHJlYW0gV0tTZXRNZXRhZGF0YVVSTCgpIGZyb20gV2ViS2l0U3lzdGVtSW50
ZXJmYWNlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzYwNDYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCAwMWU3ZGJkMTUzODY1MzBjODQ1NWIyODhhYzI0MjlkZDYzYjI0
NDI0Li5jM2I5MzA5NGE1MTdjNDBkMWJkYzgwNDg5YTMxNzYyZjkxYTk1ZTQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDE3LTA4LTI5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNv
bT4KKworICAgICAgICBbTWFjXSBVcHN0cmVhbSBDYXJib24tcmVsYXRlZCBXZWJLaXRTeXN0ZW1J
bnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzYwODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW06CisgICAg
ICAgIChXZWJLaXQ6OmNnV2luZG93SUQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAgICAgIChXZWJLaXQ6OnNjcmlw
dENvZGVGcm9tQ3VycmVudEtleWJvYXJkSW5wdXRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpO
ZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhUZXh0SW5wdXQpOgorCiAyMDE3LTA4LTI5ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQmVnaW4g
dHJhbnNpdGlvbiB0byBtb2Rlcm4gSVBDIGRlY29kaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4
IDM4ZDkxNjdjNTZjZWMyYjkxZDNmNDkwNjYzYjQ0ZWM4NmNjZmI0NjcuLjU4MTUzZDBkYjVhZjg5
MGZkYjhjOTIwYjE5YjcxYjRmZjQ4NWMwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTctMDgtMjkgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisg
ICAgICAgIFtNYWNdIFVwc3RyZWFtIENhcmJvbi1yZWxhdGVkIFdlYktpdFN5c3RlbUludGVyZmFj
ZSBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3NjA4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTctMDgt
MjkgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBbQ01h
a2VdIFVzZSBmaW5kX3BhY2thZ2UgZm9yIGxpYnhtbDIgYW5kIGxpYnhzdGwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCA0YTMwOTE3M2M5NjkwZWVjN2E2MTQ0ZmI1MzRhMjRmOGI5OTg0
MmNmLi4yMTAwZjEwNDU1OGQ5MmM0YzVhODdkODQzYTBkNjljZTNlZmVmOWJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDYgQEAKIDIwMTctMDgtMjkgIEFuZHkgRXN0
ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCisgICAgICAgIFtNYWNdIFVwc3RyZWFtIENhcmJvbi1y
ZWxhdGVkIFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjA4NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvblV0aWxzLm06Cisg
ICAgICAgIChnZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KToKKyAgICAgICAgKFdlYkluaXRGb3JD
YXJib24pOgorICAgICAgICAoUG9vbENsZWFuZXIpOgorICAgICAgICAqIENhcmJvbi9DYXJib25X
aW5kb3dBZGFwdGVyLm1tOgorICAgICAgICAoK1tDYXJib25XaW5kb3dBZGFwdGVyIGZyYW1lVmll
d0NsYXNzRm9yU3R5bGVNYXNrOl0pOgorICAgICAgICAoLVtDYXJib25XaW5kb3dBZGFwdGVyIGlu
aXRXaXRoQ2FyYm9uV2luZG93UmVmOnRha2luZ093bmVyc2hpcDpkaXNhYmxlT3JkZXJpbmc6Y2Fy
Ym9uOl0pOgorICAgICAgICAoLVtDYXJib25XaW5kb3dBZGFwdGVyIF9vbGRQbGFjZVdpbmRvdzpd
KToKKyAgICAgICAgKC1bQ2FyYm9uV2luZG93QWRhcHRlciBfd2luZG93TW92ZWRUb1JlY3Q6XSk6
CisgICAgICAgICogQ2FyYm9uL0hJVmlld0FkYXB0ZXIubToKKyAgICAgICAgKiBDYXJib24vSElX
ZWJWaWV3Lm1tOgorICAgICAgICAoRHJhdyk6CisgICAgICAgIChDcmVhdGVOU0V2ZW50QWRvcHRp
bmdDR0V2ZW50KToKKyAgICAgICAgKENvcHlFdmVudENHRXZlbnQpOgorICAgICAgICAoQ3JlYXRl
TlNFdmVudFdpdGhDYXJib25DbGlja0V2ZW50KToKKyAgICAgICAgKENsaWNrKToKKyAgICAgICAg
KENyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZlbnQpOgorICAgICAgICAoTW91c2VVcCk6CisgICAg
ICAgIChDcmVhdGVOU0V2ZW50V2l0aENhcmJvbk1vdXNlTW92ZUV2ZW50KToKKyAgICAgICAgKE1v
dXNlTW92ZWQpOgorICAgICAgICAoTW91c2VEcmFnZ2VkKToKKyAgICAgICAgKE1vdXNlV2hlZWxN
b3ZlZCk6CisgICAgICAgIChXaW5kb3dIYW5kbGVyKToKKyAgICAgICAgKEhJV2ViVmlld0V2ZW50
SGFuZGxlcik6CisgICAgICAgICogTWlzYy9RdWlja0RyYXdDb21wYXRpYmlsaXR5Lmg6IFJlbW92
ZWQuCisgICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJv
bi5tbToKKyAgICAgICAgKGdldENhcmJvbkV2ZW50KToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1
Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjprZXlEb3duKToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1
Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjprZXlVcCk6CisgICAgICAgICogUGx1Z2lucy9XZWJOZXRz
Y2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tOgorICAgICAgICAoV2ViTmV0c2NhcGVQbHVn
aW5FdmVudEhhbmRsZXJDb2NvYTo6a2V5RG93bik6CisgICAgICAgICogUGx1Z2lucy9XZWJOZXRz
Y2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgtW1dlYk5ldHNjYXBlUGx1Z2luVmlldyB0ZWxs
UXVpY2tUaW1lVG9DaGlsbF0pOgorCisyMDE3LTA4LTI5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFw
cGxlLmNvbT4KKwogICAgICAgICBbTWFjXSBVcHN0cmVhbSBXS1NldE1ldGFkYXRhVVJMKCkgZnJv
bSBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3NjA0NgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
UEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjM4NGFkOGZiOGIzMjIwMzY4OTg2MTNhZmEz
YjBlNzM2ZGZmZDAzNy4uMjQxZDVkNzdkMGRkZDAzNWI5MDRjYTg1NzdkNWJkZWEyMWU2NGMxZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtOTcsNiArOTcsOSBAQAogCQkxQzA5RDA1MzFFMzFDNDQxMDA3MjVGMTggLyogQ3J5cHRv
RGlnZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QzA5RDA1MjFFMzFDNDQxMDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0LmggKi87IH07CiAJCTFDMDlE
MDU2MUUzMUM0NjUwMDcyNUYxOCAvKiBDcnlwdG9EaWdlc3RDb21tb25DcnlwdG8uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMwOUQwNTUxRTMxQzQ2
NTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAgKi87IH07CiAJCTFDMDlE
MDU4MUUzMUM1N0UwMDcyNUYxOCAvKiBjb25maWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMDlEMDU3MUUzMUM1N0UwMDcyNUYxOCAvKiBjb25maWcu
aCAqLzsgfTsKKwkJQTEwMjY1N0IxRjU2MjUxNzAwQjRDODQ0IC8qIEZvdW5kYXRpb25TUEkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMDI2NTdBMUY1
NjI1MTcwMEI0Qzg0NCAvKiBGb3VuZGF0aW9uU1BJLmggKi87IH07CisJCUExMDI2NTdGMUY1NjRF
REYwMEI0Qzg0NCAvKiBRdWlja0RyYXdTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEExMDI2NTdFMUY1NjRFREYwMEI0Qzg0NCAvKiBRdWlja0RyYXdT
UEkuaCAqLzsgfTsKKwkJQTEwMjY1ODExRjU2NTFBODAwQjRDODQ0IC8qIEhJVG9vbGJveFNQSS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwMjY1ODAx
RjU2NTFBNzAwQjRDODQ0IC8qIEhJVG9vbGJveFNQSS5oICovOyB9OwogCQlBMUY1NURDRjFGNTUy
OEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEExRjU1RENFMUY1NTI4RUMwMEVEQjc1RiAvKiBNZXRhZGF0YVNQ
SS5oICovOyB9OwogCQlBMzBENDEyMTFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzMEQ0MTFFMUYwREQw
RUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oICovOyB9OwogCQlBMzBENDEyMjFGMEREMEVBMDBCNzE5
NTQgLyogS2lsbFJpbmdOb25lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZ05vbmUuY3Bw
ICovOyB9OwpAQCAtMjA5LDYgKzIxMiw5IEBACiAJCTFDMDlEMDYzMUUzMUVDMzEwMDcyNUYxOCAv
KiBCYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNj
b25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDNjdDRUExMUUzMkVEQTgwMEY4
MEYyRSAvKiBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7
IHBhdGggPSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUM2N0NFQTIxRTMyRUUyNjAwRjgwRjJFIC8qIFZlcnNpb24ueGNjb25maWcgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gVmVyc2lvbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTEwMjY1N0ExRjU2MjUxNzAwQjRDODQ0IC8qIEZvdW5kYXRpb25T
UEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gRm91bmRhdGlvblNQSS5oOyBwYXRoID0gc3BpL2NvY29hL0Zv
dW5kYXRpb25TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTEwMjY1N0UxRjU2
NEVERjAwQjRDODQ0IC8qIFF1aWNrRHJhd1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBRdWlja0RyYXdT
UEkuaDsgcGF0aCA9IHNwaS9tYWMvUXVpY2tEcmF3U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUExMDI2NTgwMUY1NjUxQTcwMEI0Qzg0NCAvKiBISVRvb2xib3hTUEkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSElUb29sYm94U1BJLmg7IHBhdGggPSBzcGkv
bWFjL0hJVG9vbGJveFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUY1NURD
RTFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTWV0YWRh
dGFTUEkuaDsgcGF0aCA9IHNwaS9tYWMvTWV0YWRhdGFTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTMwRDQxMUUxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEtpbGxSaW5nLmg7IHBhdGggPSB0ZXh0L0tpbGxS
aW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMEQ0MTFGMUYwREQwRUEwMEI3
MTk1NCAvKiBLaWxsUmluZ05vbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gS2lsbFJpbmdOb25lLmNwcDsgcGF0aCA9IHRleHQvS2lsbFJpbmdOb25lLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4MSw2ICsyODcsNyBAQAogCQkJCTBDMkRBMTIz
MUYzQkVCNDkwMERCQzMxNyAvKiBDRk5TVVJMQ29ubmVjdGlvblNQSS5oICovLAogCQkJCTBDMkRB
MTI0MUYzQkVCNDkwMERCQzMxNyAvKiBDb3JlVGV4dFNQSS5oICovLAogCQkJCTBDMkRBMTI1MUYz
QkVCNDkwMERCQzMxNyAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNQSS5oICovLAorCQkJCUExMDI2NTdB
MUY1NjI1MTcwMEI0Qzg0NCAvKiBGb3VuZGF0aW9uU1BJLmggKi8sCiAJCQkJMEMyREExMjYxRjNC
RUI0OTAwREJDMzE3IC8qIElPUE1MaWJTUEkuaCAqLywKIAkJCQkwQzJEQTEyNzFGM0JFQjQ5MDBE
QkMzMTcgLyogSU9QU0xpYlNQSS5oICovLAogCQkJCTBDMkRBMTI4MUYzQkVCNDkwMERCQzMxNyAv
KiBJT1JldHVyblNQSS5oICovLApAQCAtMzMxLDYgKzMzOCw3IEBACiAJCQljaGlsZHJlbiA9ICgK
IAkJCQkwQzc3ODU3MDFGNDUxMzBGMDBGNEVCQjYgLyogQVZGb3VuZGF0aW9uU1BJLmggKi8sCiAJ
CQkJMEM3Nzg1NzExRjQ1MTMwRjAwRjRFQkI2IC8qIERhdGFEZXRlY3RvcnNTUEkuaCAqLywKKwkJ
CQlBMTAyNjU4MDFGNTY1MUE3MDBCNEM4NDQgLyogSElUb29sYm94U1BJLmggKi8sCiAJCQkJMEM3
Nzg1NzIxRjQ1MTMwRjAwRjRFQkI2IC8qIExvb2t1cFNQSS5oICovLAogCQkJCTBDNzc4NTczMUY0
NTEzMEYwMEY0RUJCNiAvKiBNZWRpYVJlbW90ZVNQSS5oICovLAogCQkJCUExRjU1RENFMUY1NTI4
RUMwMEVEQjc1RiAvKiBNZXRhZGF0YVNQSS5oICovLApAQCAtMzUzLDYgKzM2MSw3IEBACiAJCQkJ
MEM3Nzg1ODQxRjQ1MTMwRjAwRjRFQkI2IC8qIE5TV2luZG93U1BJLmggKi8sCiAJCQkJMEM3Nzg1
ODUxRjQ1MTMwRjAwRjRFQkI2IC8qIFBJUFNQSS5oICovLAogCQkJCTBDNzc4NTg2MUY0NTEzMEYw
MEY0RUJCNiAvKiBRVEtpdFNQSS5oICovLAorCQkJCUExMDI2NTdFMUY1NjRFREYwMEI0Qzg0NCAv
KiBRdWlja0RyYXdTUEkuaCAqLywKIAkJCQkwQzc3ODU4NzFGNDUxMzBGMDBGNEVCQjYgLyogUXVp
Y2tMb29rTWFjU1BJLmggKi8sCiAJCQkJMEM3Nzg1ODgxRjQ1MTMwRjAwRjRFQkI2IC8qIFRVQ2Fs
bFNQSS5oICovLAogCQkJKTsKQEAgLTQ5OSw3ICs1MDgsOSBAQAogCQkJCTBDNzc4NThBMUY0NTEz
MEYwMEY0RUJCNiAvKiBEYXRhRGV0ZWN0b3JzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVB
RjkxQTFGNDNBNEM3MDAyRUFDMDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwQzJEOUU3MzFFRUY1QUY2MDBEQkMzMTcgLyogRXhwb3J0TWFjcm9zLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlBMTAyNjU3QjFGNTYyNTE3MDBCNEM4NDQgLyogRm91bmRhdGlvblNQSS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MUIxRjQzQTRDNzAwMkVBQzAyIC8qIEdyYXBoaWNz
U2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUExMDI2NTgxMUY1NjUxQTgwMEI0Qzg0
NCAvKiBISVRvb2xib3hTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTFGMUYzQkU5RTAw
MERCQzMxNyAvKiBJbWFnZUlPU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0MjFGM0JF
QjQ5MDBEQkMzMTcgLyogSU9QTUxpYlNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNDMx
RjNCRUI0OTAwREJDMzE3IC8qIElPUFNMaWJTUEkuaCBpbiBIZWFkZXJzICovLApAQCAtNTUxLDYg
KzU2Miw3IEBACiAJCQkJMEMyREExNTYxRjNCRUI0OTAwREJDMzE3IC8qIHB0aHJlYWRTUEkuaCBp
biBIZWFkZXJzICovLAogCQkJCTBDNzc4NTlGMUY0NTEzMEYwMEY0RUJCNiAvKiBRVEtpdFNQSS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNTcxRjNCRUI0OTAwREJDMzE3IC8qIFF1YXJ0ekNv
cmVTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUExMDI2NTdGMUY1NjRFREYwMEI0Qzg0NCAvKiBR
dWlja0RyYXdTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NUEwMUY0NTEzMEYwMEY0RUJC
NiAvKiBRdWlja0xvb2tNYWNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTIwMUY0M0E0
QzcwMDJFQUMwMiAvKiBRdWlja0xvb2tTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU4
MUYzQkVCNDkwMERCQzMxNyAvKiBTZXJ2ZXJzU1BJLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0ZvdW5kYXRpb25TUEkuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0ZvdW5kYXRpb25TUEkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42ODQxNzVkMTJiOWUzYzdiZGYyNmQyZWJiNTMwMzY4ZWE3N2VlZTBmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvRm91bmRhdGlvblNQSS5oCkBA
IC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCisKKyNpbmNsdWRlIDxGb3VuZGF0aW9uL05TUHJpdmF0ZURlY2xzLmg+
CisKKyNlbmRpZgorCit0eXBlZGVmIHZvaWQqIE5TQXV0b3JlbGVhc2VQb29sTWFyazsKKworV1RG
X0VYVEVSTl9DX0JFR0lOCisKK05TQXV0b3JlbGVhc2VQb29sTWFyayBOU1B1c2hBdXRvcmVsZWFz
ZVBvb2woTlNVSW50ZWdlciBjYXBhY2l0eSk7Cit2b2lkIE5TUG9wQXV0b3JlbGVhc2VQb29sKE5T
QXV0b3JlbGVhc2VQb29sTWFyayk7CisKK1dURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTA4NmQ1MWUy
YzgzY2NiNmUxMjk2OWY1Y2Y1OTQ0Y2JjMDQzODVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oCkBAIC0wLDAgKzEsNDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CisKKyNpbmNsdWRlIDxISVRvb2xib3gvSElUb29sYm94UHJpdi5oPgorCisjZW5kaWYKKwordHlw
ZWRlZiBzdHJ1Y3QgX19UU01JbnB1dFNvdXJjZSogVFNNSW5wdXRTb3VyY2VSZWY7CisKK1dURl9F
WFRFUk5fQ19CRUdJTgorCitPU1N0YXR1cyBfU3luY1dpbmRvd1dpdGhDR0FmdGVyTW92ZShXaW5k
b3dSZWYpOworQ0dXaW5kb3dJRCBHZXROYXRpdmVXaW5kb3dGcm9tV2luZG93UmVmKFdpbmRvd1Jl
Zik7CitPU1N0YXR1cyBUU01Qcm9jZXNzUmF3S2V5RXZlbnQoRXZlbnRSZWYpOworRXZlbnRSZWYg
R2V0Q3VycmVudEV2ZW50KCk7CisKK1dURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU0V2ZW50U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9tYWMvTlNFdmVudFNQSS5oCmluZGV4IDg1NzdjZTU4M2VhMWMyMjhkNDRjYmYy
NDg1NWY3MGZjZGNmMmYxMTguLmQ5ZjBkYWE0ODRlYjRmYTQ0N2YzZjQwNWQwOTc3MTUzMjAwMmFl
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU0V2ZW50U1BJ
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TRXZlbnRTUEkuaApAQCAt
MzcsNiArMzcsMTIgQEAgZW51bSB7CiAgICAgTlNFdmVudFN3aXBlVHJhY2tpbmdDb25zdW1lTW91
c2VFdmVudHMgPSAweDEgPDwgMgogfTsKIAorQGludGVyZmFjZSBOU0V2ZW50ICgpCistIChudWxs
YWJsZSBOU0V2ZW50ICopX2luaXRXaXRoQ0dFdmVudDoobnVsbGFibGUgQ0dFdmVudFJlZiljZ0V2
ZW50IGV2ZW50UmVmOihudWxsYWJsZSB2b2lkKilldmVudFJlZjsKKy0gKG51bGxhYmxlIHZvaWQq
KV9ldmVudFJlZiBOU19SRVRVUk5TX0lOTkVSX1BPSU5URVI7CistIChOU0V2ZW50ICopX2V2ZW50
UmVsYXRpdmVUb1dpbmRvdzooTlNXaW5kb3cgKil3aW5kb3c7CitAZW5kCisKICNlbmRpZgogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1dpbmRv
d1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TV2luZG93U1BJLmgKaW5k
ZXggMDJjMzNmNzEzNTU3ZWFkYzVkMDYxMjdkOTkyOTA3YTY2NjRjMjY2ZC4uY2Q5ZDM1YTIxNjc2
NTJmNTk3ZTk1N2ZiYjI2MTJhN2I1ZDJjNTY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvbWFjL05TV2luZG93U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvbWFjL05TV2luZG93U1BJLmgKQEAgLTQxLDYgKzQxLDEwIEBACiAKIEBlbmQKIAorZW51
bSB7CisgICAgX05TQ2FyYm9uV2luZG93TWFzayA9IDEgPDwgMjUsCit9OworCiAjZW5kaWYKIAog
I2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL21hYy9RdWlja0RyYXdTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21h
Yy9RdWlja0RyYXdTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYThjNTkzZjBhZDY1ZTQ3ODlkOTliMjU4MTZk
ODJmNTYzZmQ0Y2QyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvbWFjL1F1aWNrRHJhd1NQSS5oCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmbmRlZiBfX0xQNjRfXworCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKKworI2luY2x1ZGUgPFFEL1F1aWNrZHJhd1ByaXYuaD4KKworI2Vsc2UKKworI2RlZmluZSBN
YWNTZXRSZWN0IFNldFJlY3QKKyNkZWZpbmUgTWFjU2V0UmVjdFJnbiBTZXRSZWN0UmduCisjZGVm
aW5lIE1hY1VuaW9uUmduIFVuaW9uUmduCisKK2VudW0geworICAgIGJsYWNrQ29sb3IgPSAzMywK
KyAgICB3aGl0ZUNvbG9yID0gMzAsCisgICAgZ3JlZW5Db2xvciA9IDM0MSwKK307CisKKyNlbmRp
ZgorCit0eXBlZGVmIGxvbmcgUUREcmF3aW5nVHlwZTsKKworV1RGX0VYVEVSTl9DX0JFR0lOCisK
K0Jvb2xlYW4gRW1wdHlSZ24oUmduSGFuZGxlKTsKK09TU3RhdHVzIENyZWF0ZUNHQ29udGV4dEZv
clBvcnQoQ0dyYWZQdHIsIENHQ29udGV4dFJlZiopOworT1NTdGF0dXMgU3luY0NHQ29udGV4dE9y
aWdpbldpdGhQb3J0KENHQ29udGV4dFJlZiwgQ0dyYWZQdHIpOworUGl4TWFwSGFuZGxlIEdldFBv
cnRQaXhNYXAoQ0dyYWZQdHIpOworUURFcnIgTmV3R1dvcmxkRnJvbVB0cihHV29ybGRQdHIqLCBV
SW50MzIsIGNvbnN0IFJlY3QqLCBDVGFiSGFuZGxlLCBHREhhbmRsZSwgR1dvcmxkRmxhZ3MsIFB0
ciwgU0ludDMyKTsKK1JlY3QqIEdldFBvcnRCb3VuZHMoQ0dyYWZQdHIsIFJlY3QqKTsKK1JlY3Qq
IEdldFJlZ2lvbkJvdW5kcyhSZ25IYW5kbGUsIFJlY3QqKTsKK1JnbkhhbmRsZSBHZXRQb3J0Q2xp
cFJlZ2lvbihDR3JhZlB0ciwgUmduSGFuZGxlKTsKK1JnbkhhbmRsZSBHZXRQb3J0VmlzaWJsZVJl
Z2lvbihDR3JhZlB0ciwgUmduSGFuZGxlKTsKK1JnbkhhbmRsZSBOZXdSZ24oKTsKK3ZvaWQgQmFj
a0NvbG9yKGxvbmcpOwordm9pZCBDYWxsRHJhd2luZ05vdGlmaWNhdGlvbnMoQ0dyYWZQdHIsIGNv
bnN0IFJlY3QqLCBRRERyYXdpbmdUeXBlKTsKK3ZvaWQgRGlzcG9zZUdXb3JsZChHV29ybGRQdHIp
Owordm9pZCBEaXNwb3NlUmduKFJnbkhhbmRsZSk7Cit2b2lkIEZvcmVDb2xvcihsb25nKTsKK3Zv
aWQgR2V0R1dvcmxkKENHcmFmUHRyKiwgR0RIYW5kbGUqKTsKK3ZvaWQgR2V0UG9ydChHcmFmUHRy
Kik7Cit2b2lkIEdsb2JhbFRvTG9jYWwoUG9pbnQqKTsKK3ZvaWQgTWFjU2V0UmVjdChSZWN0Kiwg
c2hvcnQsIHNob3J0LCBzaG9ydCwgc2hvcnQpOwordm9pZCBNYWNTZXRSZWN0UmduKFJnbkhhbmRs
ZSwgc2hvcnQsIHNob3J0LCBzaG9ydCwgc2hvcnQpOwordm9pZCBNYWNVbmlvblJnbihSZ25IYW5k
bGUsIFJnbkhhbmRsZSwgUmduSGFuZGxlKTsKK3ZvaWQgTW92ZVBvcnRUbyhzaG9ydCwgc2hvcnQp
Owordm9pZCBPZmZzZXRSZWN0KFJlY3QqLCBzaG9ydCwgc2hvcnQpOwordm9pZCBPZmZzZXRSZ24o
UmduSGFuZGxlLCBzaG9ydCwgc2hvcnQpOwordm9pZCBQYWludFJlY3QoY29uc3QgUmVjdCopOwor
dm9pZCBQZW5Ob3JtYWwoKTsKK3ZvaWQgUG9ydFNpemUoc2hvcnQsIHNob3J0KTsKK3ZvaWQgUmVj
dFJnbihSZ25IYW5kbGUsIGNvbnN0IFJlY3QqKTsKK3ZvaWQgU2VjdFJnbihSZ25IYW5kbGUsIFJn
bkhhbmRsZSwgUmduSGFuZGxlKTsKK3ZvaWQgU2V0R1dvcmxkKENHcmFmUHRyLCBHREhhbmRsZSk7
Cit2b2lkIFNldE9yaWdpbihzaG9ydCwgc2hvcnQpOwordm9pZCBTZXRQb3J0KEdyYWZQdHIpOwor
dm9pZCBTZXRQb3J0Q2xpcFJlZ2lvbihDR3JhZlB0ciwgUmduSGFuZGxlKTsKK3ZvaWQgU2V0UG9y
dFZpc2libGVSZWdpb24oQ0dyYWZQdHIsIFJnbkhhbmRsZSk7CisKK1dURl9FWFRFUk5fQ19FTkQK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1Bs
dWdpblByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdp
blByb2Nlc3NNYWMubW0KaW5kZXggNTI5YzRiNTMzOWExYzg4NGQyNWUwZTJiNGUwYjUwOTJlYTI5
ZDQxOC4uNmNmZDcxMTJkMzRmNWE3OGU2MDk4ZTlhMWE0OWNlYjRjM2RjNTVmMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQpA
QCAtNDYsNiArNDYsNyBAQAogI2ltcG9ydCA8bWFjaC9tYWNoX3ZtLmg+CiAjaW1wb3J0IDxtYWNo
L3ZtX3N0YXRpc3RpY3MuaD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgorI2ltcG9ydCA8cGFs
L3NwaS9tYWMvSElUb29sYm94U1BJLmg+CiAjaW1wb3J0IDxzeXNleGl0cy5oPgogI2ltcG9ydCA8
d3RmL0hhc2hTZXQuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtOTYsNyAr
OTcsNyBAQCBzdGF0aWMgYm9vbCB3aW5kb3dDb3ZlcnNBbnlTY3JlZW4oV2luZG93UmVmIHdpbmRv
dykKIAogc3RhdGljIENHV2luZG93SUQgY2dXaW5kb3dJRChXaW5kb3dSZWYgd2luZG93KQogewot
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PENHV2luZG93SUQ+KFdLR2V0TmF0aXZlV2luZG93
RnJvbVdpbmRvd1JlZih3aW5kb3cpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDR1dp
bmRvd0lEPihHZXROYXRpdmVXaW5kb3dGcm9tV2luZG93UmVmKHdpbmRvdykpOwogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQppbmRleCAyMDFiM2RjZDgzOTk0
ODZiOGU0ZTJkOTBjNzU5ZjJhOTUxZWQ0MzI5Li40MzQ1Mjg2ZmI3MjcwY2ZlNzczODg4OWRmYjY3
YmMwYWJmNWQ5ZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCkBAIC0z
Nyw2ICszNyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0
IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgorI2lt
cG9ydCA8cGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIApAQCAtOTg4LDYgKzk4
OSwyMSBAQCBzdGF0aWMgYm9vbCBjb252ZXJ0U3RyaW5nVG9LZXlDb2RlcyhTdHJpbmdWaWV3IHN0
cmluZywgU2NyaXB0Q29kZSBzY3JpcHRDb2RlLCBWZQogfQogI2VuZGlmCiAKKyNpZm5kZWYgTlBf
Tk9fQ0FSQk9OCitzdGF0aWMgU2NyaXB0Q29kZSBzY3JpcHRDb2RlRnJvbUN1cnJlbnRLZXlib2Fy
ZElucHV0U291cmNlKCkKK3sKKyAgICBTY3JpcHRDb2RlIHNjcmlwdENvZGUgPSBzbVJvbWFuOwor
ICAgIGF1dG8gaW5wdXRTb3VyY2UgPSBhZG9wdENGKFRJU0NvcHlDdXJyZW50S2V5Ym9hcmRJbnB1
dFNvdXJjZSgpKTsKKworICAgIENGVHlwZVJlZiBzY3JpcHRDb2RlTnVtYmVyID0gVFNNR2V0SW5w
dXRTb3VyY2VQcm9wZXJ0eSgoVFNNSW5wdXRTb3VyY2VSZWYpaW5wdXRTb3VyY2UuZ2V0KCksIGtU
U01JbnB1dFNvdXJjZVByb3BlcnR5U2NyaXB0Q29kZSk7CisgICAgQVNTRVJUKENGR2V0VHlwZUlE
KHNjcmlwdENvZGVOdW1iZXIpID09IENGTnVtYmVyR2V0VHlwZUlEKCkpOworICAgIGlmIChzY3Jp
cHRDb2RlTnVtYmVyKQorICAgICAgICBDRk51bWJlckdldFZhbHVlKChDRk51bWJlclJlZilzY3Jp
cHRDb2RlTnVtYmVyLCBrQ0ZOdW1iZXJTSW50MTZUeXBlLCAmc2NyaXB0Q29kZSk7CisKKyAgICBy
ZXR1cm4gc2NyaXB0Q29kZTsKK30KKyNlbmRpZgorCiB2b2lkIE5ldHNjYXBlUGx1Z2luOjpzZW5k
Q29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKIHsKICAgICBpZiAoIW1f
cGx1Z2luV2FudHNMZWdhY3lDb2NvYVRleHRJbnB1dCkgewpAQCAtMTAxMSw3ICsxMDI3LDcgQEAg
dm9pZCBOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0
ZXh0SW5wdXQpCiAgICAgfQogI2lmbmRlZiBOUF9OT19DQVJCT04KICAgICBjYXNlIE5QRXZlbnRN
b2RlbENhcmJvbjogewotICAgICAgICBTY3JpcHRDb2RlIHNjcmlwdENvZGUgPSBXS0dldFNjcmlw
dENvZGVGcm9tQ3VycmVudEtleWJvYXJkSW5wdXRTb3VyY2UoKTsKKyAgICAgICAgU2NyaXB0Q29k
ZSBzY3JpcHRDb2RlID0gc2NyaXB0Q29kZUZyb21DdXJyZW50S2V5Ym9hcmRJbnB1dFNvdXJjZSgp
OwogICAgICAgICBWZWN0b3I8VUludDg+IGtleUNvZGVzOwogCiAgICAgICAgIGlmICghY29udmVy
dFN0cmluZ1RvS2V5Q29kZXModGV4dElucHV0LCBzY3JpcHRDb2RlLCBrZXlDb2RlcykpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJLaXRMZWdhY3kueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBkNGJlZWVhZGVmMWE3ODhhNDkyNGE0YjYwOTE5NGM3MjQzN2Qw
ZGVjLi5jMjI0MzA1OTZkNjU5MjMzM2NjZGMzNWU2MDk4NDk2MTZiZDcwZTQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTE0OSw3ICsxNDksNiBAQAogCQk1OThBRDkyODEyMDFDRjMyMDBBQkFF
NEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OThBRDkyNzEyMDFDRjMyMDBBQkFFNEUg
LyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW0gKi87IH07CiAJCTU5OEFEOTJB
MTIwMUNGM0IwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9ja0ludGVy
bmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OThB
RDkyOTEyMDFDRjNCMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2tJ
bnRlcm5hbC5oICovOyB9OwogCQk1OThBREE0NjEyMDIyNzUwMDBBQkFFNEUgLyogV2ViRGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTk4QURBNDUxMjAyMjc1MDAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVudGF0
aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQk1Qzc3MDY3MjFEMTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0aWJpbGl0
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3NzA2
NzExRDExMUIyMjAwMTI3MDBGIC8qIFF1aWNrRHJhd0NvbXBhdGliaWxpdHkuaCAqLzsgfTsKIAkJ
NUQ3QkY4MTQwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQ3QkY4MTIwQzJBMUQ5MDAwOENFMDZE
IC8qIFdlYkluc3BlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTVEN0JGODE1MEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNwZWN0b3IubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDdCRjgxMzBD
MkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLm1tICovOyB9OwogCQk1REU4M0E3QTBEMEY3
Rjk0MDBDQUQxMkEgLyogV2ViSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsLm5pYiBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNURFODNBNzQwRDBGN0Y5NDAw
Q0FEMTJBIC8qIFdlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5uaWIgKi87IH07CkBAIC0zMTks
NyArMzE4LDYgQEAKIAkJOTM5ODEwRkYwODI0QkYwMTAwOERGMDM4IC8qIENhcmJvbldpbmRvd0Zy
YW1lLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGN0VC
RUU5NTAzRjlEQkExMDNDQTBERTYgLyogQ2FyYm9uV2luZG93RnJhbWUubSAqLzsgfTsKIAkJOTM5
ODExMDAwODI0QkYwMTAwOERGMDM4IC8qIEhJVmlld0FkYXB0ZXIubSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY3RUJFRTlCMDNGOURCQTEwM0NBMERFNiAv
KiBISVZpZXdBZGFwdGVyLm0gKi87IHNldHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1Xbm8t
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiOyB9OyB9OwogCQk5Mzk4MTEwMTA4MjRCRjAxMDA4REYw
MzggLyogQ2FyYm9uVXRpbHMubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY3OUI5NzQ5MDQwMTk5MzQwMzY5MDlEMiAvKiBDYXJib25VdGlscy5tICovOyB9
OwotCQk5Mzk4MTEwMjA4MjRCRjAxMDA4REYwMzggLyogSElXZWJWaWV3Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjdFQkVFQUIwM0Y5REJBMTAzQ0Ew
REU2IC8qIEhJV2ViVmlldy5tbSAqLzsgc2V0dGluZ3MgPSB7Q09NUElMRVJfRkxBR1MgPSAiLVdu
by1kZXByZWNhdGVkLWRlY2xhcmF0aW9ucyI7IH07IH07CiAJCTkzOTgxMTAzMDgyNEJGMDEwMDhE
RjAzOCAvKiBXZWJLaXRFcnJvcnMubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzNzMwRjk4MDNGQjFFNjYwMDA0NzM2RSAvKiBXZWJLaXRFcnJvcnMubSAq
LzsgfTsKIAkJOTM5ODExMDYwODI0QkYwMTAwOERGMDM4IC8qIFdlYkZyYW1lVmlldy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQThCNTJGMDQyODJC
NTkwMENBMkQzQSAvKiBXZWJGcmFtZVZpZXcubW0gKi87IH07CiAJCTkzOTgxMTA3MDgyNEJGMDEw
MDhERjAzOCAvKiBXZWJWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTFBOEI1N0EwNDI4MzRGNzAwQ0EyRDNBIC8qIFdlYlZpZXcubW0gKi87IH07
CkBAIC02ODAsNiArNjc4LDcgQEAKIAkJOTNFQjE3OEQwOUY4OEQ0NjAwOTFGOEZGIC8qIFdlYlN5
c3RlbUludGVyZmFjZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzRUIxNzhDMDlGODhENDYwMDkxRjhGRiAvKiBXZWJTeXN0ZW1JbnRlcmZhY2UubW0g
Ki87IH07CiAJCTkzRUIxNzhGMDlGODhENTEwMDkxRjhGRiAvKiBXZWJTeXN0ZW1JbnRlcmZhY2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRUIxNzhF
MDlGODhENTEwMDkxRjhGRiAvKiBXZWJTeXN0ZW1JbnRlcmZhY2UuaCAqLzsgfTsKIAkJOTNGREU5
MzMwRDc5Q0FGMzAwNzRGMDI5IC8qIFdlYkhpc3RvcnlJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGREU5MzIwRDc5Q0FGMzAwNzRGMDI5
IC8qIFdlYkhpc3RvcnlJbnRlcm5hbC5oICovOyB9OworCQlBMTAyNjU4MzFGNTY1NDAzMDBCNEM4
NDQgLyogSElXZWJWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTEwMjY1ODIxRjU2NTQwMzAwQjRDODQ0IC8qIEhJV2ViVmlldy5tbSAqLzsgfTsK
IAkJQTEwQzFEMTgxODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGb3JtRGVsZWdhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMEMxRDEwMTgy
MDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLmggKi87IH07CiAJCUExMEMx
RDE5MTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLm0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBDMUQxMTE4MjAyRjlDMDAz
Njg4M0EgLyogV2ViRGVmYXVsdEZvcm1EZWxlZ2F0ZS5tICovOyB9OwogCQlBMTBDMUQxQTE4MjAy
RjlDMDAzNjg4M0EgLyogV2ViRGVmYXVsdEZyYW1lTG9hZERlbGVnYXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBDMUQxMjE4MjAyRjlDMDAzNjg4
M0EgLyogV2ViRGVmYXVsdEZyYW1lTG9hZERlbGVnYXRlLmggKi87IH07CkBAIC05ODgsNyArOTg3
LDYgQEAKIAkJNTk4QUQ5MjcxMjAxQ0YzMjAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVudGF0aW9u
UHJvdmlkZXJNb2NrLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU5OEFEOTI5MTIwMUNGM0IwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyTW9ja0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTk4QURBNDUxMjAyMjc1MDAwQUJBRTRFIC8qIFdlYkRldmljZU9y
aWVudGF0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk1Qzc3MDY3MTFEMTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWlja0RyYXdDb21wYXRpYmlsaXR5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEN0JGODEyMEMyQTFEOTAwMDhDRTA2RCAv
KiBXZWJJbnNwZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYklu
c3BlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDdCRjgxMzBDMkExRDkw
MDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkluc3BlY3Rvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNURFODNBNzUwRDBGN0Y5NDAwQ0FEMTJBIC8qIEVuZ2xpc2ggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLm5pYjsgbmFtZSA9IEVuZ2xp
c2g7IHBhdGggPSBFbmdsaXNoLmxwcm9qL1dlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5uaWI7
IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTE0MjAsNiArMTQxOCw3IEBACiAJCTkz
RkRFOTMyMEQ3OUNBRjMwMDc0RjAyOSAvKiBXZWJIaXN0b3J5SW50ZXJuYWwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSGlzdG9yeUludGVybmFsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTlDQUU5RDA3MDI1MkE0MTMwRUNBMTZFQSAvKiBXZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTlDRjBFMjQ5MDIxMzYxQjAwRUNBMTZF
QSAvKiBXZWJGcmFtZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJGcmFtZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CisJCUExMDI2NTgyMUY1NjU0MDMwMEI0
Qzg0NCAvKiBISVdlYlZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBISVdlYlZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEMxRDEw
MTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkRlZmF1bHRGb3JtRGVsZWdhdGUuaDsgcGF0aCA9IGlv
cy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRGb3JtRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9
IFNPVVJDRV9ST09UOyB9OwogCQlBMTBDMUQxMTE4MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVmYXVs
dEZvcm1EZWxlZ2F0ZS5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IG5hbWUgPSBXZWJE
ZWZhdWx0Rm9ybURlbGVnYXRlLm07IHBhdGggPSBpb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZh
dWx0Rm9ybURlbGVnYXRlLm07IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJQTEwQzFE
MTIxODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGcmFtZUxvYWREZWxlZ2F0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJEZWZhdWx0RnJhbWVMb2FkRGVsZWdhdGUu
aDsgcGF0aCA9IGlvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRGcmFtZUxvYWREZWxlZ2F0
ZS5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CkBAIC0xNTk3LDcgKzE1OTYsNiBAQAog
CQlGN0VCRUU5QTAzRjlEQkExMDNDQTBERTYgLyogSElWaWV3QWRhcHRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBISVZpZXdBZGFwdGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9Owog
CQlGN0VCRUU5QjAzRjlEQkExMDNDQTBERTYgLyogSElWaWV3QWRhcHRlci5tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IHBhdGggPSBISVZpZXdBZGFwdGVy
Lm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwogCQlGN0VCRUVBQTAzRjlEQkExMDNDQTBERTYgLyogSElXZWJWaWV3LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhJV2ViVmlldy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJRjdF
QkVFQUIwM0Y5REJBMTAzQ0EwREU2IC8qIEhJV2ViVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBmaWxl
RW5jb2RpbmcgPSAzMDsgcGF0aCA9IEhJV2ViVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdXNlc1RhYnMgPSAwOyB9OwogCQlGODM0QUFENTBFNjRCMUM3MDBFMjczN0MgLyogV2ViVGV4
dEl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlRleHRJdGVy
YXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGODM0QUFENjBFNjRCMUM3MDBF
MjczN0MgLyogV2ViVGV4dEl0ZXJhdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViVGV4dEl0ZXJhdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGOENBMTVCNTAyOUEzOUQ5MDEwMDAxMjIgLyogV2ViQXV0aGVudGljYXRpb25QYW5lbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRX
aWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJB
dXRoZW50aWNhdGlvblBhbmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTc2OSw3ICsxNzY3LDYgQEAKIAkJCWNoaWxkcmVuID0g
KAogCQkJCUExMEMxRDIwMTgyMDJGQUYwMDM2ODgzQSAvKiBpb3MgKi8sCiAJCQkJMjlBRUY5NUQx
MzRDNzU1NDAwRkU1MDk2IC8qIE91dGxvb2tRdWlya3NVc2VyU2NyaXB0LmpzICovLAotCQkJCTVD
NzcwNjcxMUQxMTFCMjIwMDEyNzAwRiAvKiBRdWlja0RyYXdDb21wYXRpYmlsaXR5LmggKi8sCiAJ
CQkJNTI0MUFERjMwQjFCQzQ4QTAwNDAxMkJEIC8qIFdlYkNhY2hlLmggKi8sCiAJCQkJNTI0MUFE
RjQwQjFCQzQ4QTAwNDAxMkJEIC8qIFdlYkNhY2hlLm1tICovLAogCQkJCUY1OUVBRTNFMDI1M0M3
RUUwMTg2MzVDQSAvKiBXZWJDb3JlU3RhdGlzdGljcy5oICovLApAQCAtMjY3Miw3ICsyNjY5LDcg
QEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJRjdFQkVFQUEwM0Y5
REJBMTAzQ0EwREU2IC8qIEhJV2ViVmlldy5oICovLAotCQkJCUY3RUJFRUFCMDNGOURCQTEwM0NB
MERFNiAvKiBISVdlYlZpZXcubW0gKi8sCisJCQkJQTEwMjY1ODIxRjU2NTQwMzAwQjRDODQ0IC8q
IEhJV2ViVmlldy5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gIkMgQVBJIjsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC0yOTM2LDcgKzI5MzMsNiBAQAogCQkJCTdDMDFDQjg1MTczNDM1
QzkwMEM1RDgwNyAvKiBQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMkRCRTlG
MEYyNTFFM0EwMDM2RjhBNiAvKiBQcm94eUluc3RhbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlF
MTY5ODM2MjExMzQ2RDFCMDA4OTQxMTUgLyogUHJveHlSdW50aW1lT2JqZWN0LmggaW4gSGVhZGVy
cyAqLywKLQkJCQk1Qzc3MDY3MjFEMTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0aWJp
bGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEwQzFENjIxODIwMzAwRTAwMzY4ODNBIC8qIFNl
YXJjaFBvcHVwTWVudUlPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MwMUNCODcxNzM0MzVDOTAw
QzVEODA3IC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2QjMx
MzIxQTUxRjNBOTAwNDIyOTc1IC8qIFN0b3JhZ2VBcmVhSW1wbC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zNTEzLDcgKzM1MDksNyBAQAogCQkJCTkzRDQzNzlBMUQ1N0FCRUYwMEFCODVFQSAvKiBFeGNl
cHRpb25IYW5kbGVycy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNjA1MTkzMTc1MDJBNUQwMEJD
NjJGNSAvKiBIaXN0b3J5UHJvcGVydHlMaXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5ODEx
MDAwODI0QkYwMTAwOERGMDM4IC8qIEhJVmlld0FkYXB0ZXIubSBpbiBTb3VyY2VzICovLAotCQkJ
CTkzOTgxMTAyMDgyNEJGMDEwMDhERjAzOCAvKiBISVdlYlZpZXcubW0gaW4gU291cmNlcyAqLywK
KwkJCQlBMTAyNjU4MzFGNTY1NDAzMDBCNEM4NDQgLyogSElXZWJWaWV3Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUE4REVENTEwRUU4OEI4QTAwRjI1MDIyIC8qIEhvc3RlZE5ldHNjYXBlUGx1Z2lu
U3RyZWFtLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEwQzFEMzMxODIwMkZDNTAwMzY4ODNBIC8q
IE1lbW9yeU1lYXN1cmUubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUFGNUNFQjBFRERFMUZFMDA4
RDg4M0QgLyogTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbSBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvblV0aWxzLm0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uVXRpbHMubQppbmRleCBjNTg2MjNk
NDA3MWRlYjg0NzhmMjA5ZWNiODg3ZGIzZTJlZWM2ODUxLi5jZTIwNGVhMmM1NTg2MDU0ZDgzYmNm
ZWY2MTIyNjM3MWQzZjM1MzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
YXJib24vQ2FyYm9uVXRpbHMubQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24v
Q2FyYm9uVXRpbHMubQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ2FyYm9uVXRpbHMu
aCIKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8cGFsL3NwaS9j
b2NvYS9Gb3VuZGF0aW9uU1BJLmg+CiAKIGV4dGVybiBDR0ltYWdlUmVmIF9OU0NyZWF0ZUltYWdl
UmVmKCB1bnNpZ25lZCBjaGFyICpjb25zdCBiaXRtYXBEYXRhWzVdLCBpbnQgcGl4ZWxzV2lkZSwg
aW50IHBpeGVsc0hpZ2gsIGludCBiaXRzUGVyU2FtcGxlLCBpbnQgc2FtcGxlc1BlclBpeGVsLCBp
bnQgYml0c1BlclBpeGVsLCBpbnQgYnl0ZXNQZXJSb3csIEJPT0wgaXNQbGFuYXIsIEJPT0wgaGFz
QWxwaGEsIE5TU3RyaW5nICpjb2xvclNwYWNlTmFtZSwgQ0dDb2xvclNwYWNlUmVmIGN1c3RvbUNv
bG9yU3BhY2UsIGlkIHNvdXJjZU9iaik7CiAKQEAgLTQxLDYgKzQyLDE0IEBACiAKIHZvaWQgICAg
ICAgICAgICAgICAgICAgIEhJV2ViVmlld1JlZ2lzdGVyQ2xhc3MoIHZvaWQgKTsKIAorc3RhdGlj
IHVuc2lnbmVkIGdldE5TQXV0b3JlbGVhc2VQb29sQ291bnQodm9pZCkKK3sKKyAgICB2b2lkKiB2
ID0gTlNQdXNoQXV0b3JlbGVhc2VQb29sKDApOworICAgIHVpbnRwdHJfdCBudW1Qb29scyA9ICh1
aW50cHRyX3QpdjsKKyAgICBOU1BvcEF1dG9yZWxlYXNlUG9vbCh2KTsKKyAgICByZXR1cm4gbnVt
UG9vbHM7Cit9CisKIHZvaWQKIFdlYkluaXRGb3JDYXJib24oKQogewpAQCAtNTYsNyArNjUsNyBA
QAogICAgICAgICBOU0FwcGxpY2F0aW9uTG9hZCgpOwogICAgICAgICAgICAgICAgIAogICAgICAg
ICBzUG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NXaXRoWm9uZTpOVUxMXSBpbml0XTsK
LSAgICAgICAgbnVtUG9vbHMgPSBXS0dldE5TQXV0b3JlbGVhc2VQb29sQ291bnQoKTsKKyAgICAg
ICAgbnVtUG9vbHMgPSBnZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KCk7CiAgICAgICAgIAogICAg
ICAgICBwb29sTG9vcCA9IEdldEN1cnJlbnRFdmVudExvb3AgKCk7CiAKQEAgLTgyLDEyICs5MSwx
MiBAQAogICAgICAgICBDRlN0cmluZ1JlZiBtb2RlID0gQ0ZSdW5Mb29wQ29weUN1cnJlbnRNb2Rl
KCAoQ0ZSdW5Mb29wUmVmKUdldENGUnVuTG9vcEZyb21FdmVudExvb3AoIEdldEN1cnJlbnRFdmVu
dExvb3AoKSApKTsKICAgICAgICAgRXZlbnRMb29wUmVmIHRoaXNMb29wID0gR2V0Q3VycmVudEV2
ZW50TG9vcCAoKTsKICAgICAgICAgaWYgKCBDRkVxdWFsKCBtb2RlLCBrQ0ZSdW5Mb29wRGVmYXVs
dE1vZGUgKSAmJiB0aGlzTG9vcCA9PSBwb29sTG9vcCkgewotICAgICAgICAgICAgdW5zaWduZWQg
Y3VycmVudE51bVBvb2xzID0gV0tHZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KCktMTsgICAgICAg
ICAgICAKKyAgICAgICAgICAgIHVuc2lnbmVkIGN1cnJlbnROdW1Qb29scyA9IGdldE5TQXV0b3Jl
bGVhc2VQb29sQ291bnQoKS0xOyAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGN1cnJlbnRO
dW1Qb29scyA9PSBudW1Qb29scyl7CiAgICAgICAgICAgICAgICAgW3NQb29sIGRyYWluXTsKICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBzUG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBv
b2wgYWxsb2NXaXRoWm9uZTpOVUxMXSBpbml0XTsKLSAgICAgICAgICAgICAgICBudW1Qb29scyA9
IFdLR2V0TlNBdXRvcmVsZWFzZVBvb2xDb3VudCgpOworICAgICAgICAgICAgICAgIG51bVBvb2xz
ID0gZ2V0TlNBdXRvcmVsZWFzZVBvb2xDb3VudCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgICAgIENGUmVsZWFzZSggbW9kZSApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQppbmRleCA2MDA5ZGZjZDg3MDcz
NGUzMDJiOTQ4NTE5MDlhY2E2Yzk5YThlZTNmLi40MDUyYzk5ZTJlZTUzYjAyMDhjZGQ3YTc1YTZj
ZWUwNTliM2EwZWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24v
Q2FyYm9uV2luZG93QWRhcHRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJi
b24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQpAQCAtNzMsNiArNzMsOCBAQAogI2ltcG9ydCA8YXNz
ZXJ0Lmg+CiAKICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KKyNpbXBvcnQg
PHBhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNXaW5k
b3dTUEkuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9y
dCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CkBAIC04MSw2ICs4
Myw5IEBACiAjaW1wb3J0ICJXZWJOU09iamVjdEV4dHJhcy5oIgogI2ltcG9ydCAiV2ViVHlwZXNJ
bnRlcm5hbC5oIgogCitleHRlcm4gY29uc3QgT1NUeXBlIE5TQXBwS2l0UHJvcGVydHlDcmVhdG9y
OworZXh0ZXJuIGNvbnN0IE9TVHlwZSBOU0NhcmJvbldpbmRvd1Byb3BlcnR5VGFnOworCiBAaW50
ZXJmYWNlIE5TV2luZG93KEhJV2ViRnJhbWVWaWV3KQogLSAoaWQpX2luaXRDb250ZW50Oihjb25z
dCBOU1JlY3QgKiljb250ZW50UmVjdCBzdHlsZU1hc2s6KHVuc2lnbmVkIGludClhU3R5bGUgYmFj
a2luZzooTlNCYWNraW5nU3RvcmVUeXBlKWJ1ZmZlcmluZ1R5cGUgZGVmZXI6KEJPT0wpZmxhZyBj
b250ZW50VmlldzphVmlldzsKIC0gKHZvaWQpX29sZFBsYWNlV2luZG93OihOU1JlY3QpZnJhbWVS
ZWN0OwpAQCAtMTExLDcgKzExNiw3IEBAIEBpbXBsZW1lbnRhdGlvbiBDYXJib25XaW5kb3dBZGFw
dGVyCiArIChDbGFzcylmcmFtZVZpZXdDbGFzc0ZvclN0eWxlTWFzazoodW5zaWduZWQgaW50KXN0
eWxlIHsKIAogICAgIC8vIFRoZXJlJ3Mgb25seSBvbmUgYXBwcm9wcmlhdGUgd2luZG93IHN0eWxl
LCBhbmQgb25seSBvbmUgYXBwcm9wcmlhdGUgd2luZG93IGZyYW1lIGNsYXNzLgotICAgIGFzc2Vy
dChzdHlsZSAmIFdLQ2FyYm9uV2luZG93TWFzaygpKTsKKyAgICBhc3NlcnQoc3R5bGUgJiBfTlND
YXJib25XaW5kb3dNYXNrKTsKICAgICByZXR1cm4gW0NhcmJvbldpbmRvd0ZyYW1lIGNsYXNzXTsK
IAogfQpAQCAtMTU2LDcgKzE2MSw3IEBAIC0gKGlkKWluaXRXaXRoQ2FyYm9uV2luZG93UmVmOihX
aW5kb3dSZWYpaW5XaW5kb3dSZWYgdGFraW5nT3duZXJzaGlwOihCT09MKWluV2luCiAJX2NhcmJv
biA9IGluQ2FyYm9uOwogCiAgICAgLy8gRmluZCBvdXQgdGhlIHdpbmRvdydzIENvcmVHcmFwaGlj
cyB3aW5kb3cgcmVmZXJlbmNlLgotICAgIG5hdGl2ZVdpbmRvdyA9IFdLR2V0TmF0aXZlV2luZG93
RnJvbVdpbmRvd1JlZihpbldpbmRvd1JlZik7CisgICAgbmF0aXZlV2luZG93ID0gKHZvaWQqKUdl
dE5hdGl2ZVdpbmRvd0Zyb21XaW5kb3dSZWYoaW5XaW5kb3dSZWYpOwogCiAgICAgLy8gRmluZCBv
dXQgdGhlIHdpbmRvdydzIENhcmJvbiB3aW5kb3cgYXR0cmlidXRlcy4KICAgICBHZXRXaW5kb3dB
dHRyaWJ1dGVzKGluV2luZG93UmVmLCAmd2luZG93QXR0cmlidXRlcyk7CkBAIC0xNzUsNyArMTgw
LDcgQEAgLSAoaWQpaW5pdFdpdGhDYXJib25XaW5kb3dSZWY6KFdpbmRvd1JlZilpbldpbmRvd1Jl
ZiB0YWtpbmdPd25lcnNoaXA6KEJPT0wpaW5XaW4KICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKIAogICAgIC8vIEZpZ3VyZSBvdXQgdGhlIHdpbmRvdydzIHN0eWxlIG1hc2suCi0gICAgc3R5
bGVNYXNrID0gV0tDYXJib25XaW5kb3dNYXNrKCk7CisgICAgc3R5bGVNYXNrID0gX05TQ2FyYm9u
V2luZG93TWFzazsKICAgICBpZiAod2luZG93QXR0cmlidXRlcyAmIGtXaW5kb3dDbG9zZUJveEF0
dHJpYnV0ZSkKICAgICAgICAgc3R5bGVNYXNrIHw9IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGU7
CiAgICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBrV2luZG93UmVzaXphYmxlQXR0cmlidXRlKQpA
QCAtMjQyLDcgKzI0Nyw3IEBAIC0gKGlkKWluaXRXaXRoQ2FyYm9uV2luZG93UmVmOihXaW5kb3dS
ZWYpaW5XaW5kb3dSZWYgdGFraW5nT3duZXJzaGlwOihCT09MKWluV2luCiAgICAgLy8gUHV0IGEg
cG9pbnRlciB0byB0aGlzIENvY29hIE5TV2luZG93IGluIGEgQ2FyYm9uIHdpbmRvdyBwcm9wZXJ0
eSB0YWcuCiAgICAgLy8gUmlnaHQgbm93LCB0aGlzIGlzIGp1c3QgdXNlZCBieSBOU1ZpZXdDYXJi
b25Db250cm9sLiAgTS5QLiBOb3RpY2UgLSAxMC85LzAwCiAgICAgd2luZG93QXNQcm9wZXJ0eSA9
IHNlbGY7Ci0gICAgb3NTdGF0dXMgPSBTZXRXaW5kb3dQcm9wZXJ0eShfd2luZG93UmVmLCBXS0Nh
cmJvbldpbmRvd1Byb3BlcnR5Q3JlYXRvcigpLCBXS0NhcmJvbldpbmRvd1Byb3BlcnR5VGFnKCks
IHNpemVvZihOU1dpbmRvdyAqKSwgJndpbmRvd0FzUHJvcGVydHkpOworICAgIG9zU3RhdHVzID0g
U2V0V2luZG93UHJvcGVydHkoX3dpbmRvd1JlZiwgTlNBcHBLaXRQcm9wZXJ0eUNyZWF0b3IsIE5T
Q2FyYm9uV2luZG93UHJvcGVydHlUYWcsIHNpemVvZihOU1dpbmRvdyAqKSwgJndpbmRvd0FzUHJv
cGVydHkpOwogICAgIGlmIChvc1N0YXR1cyE9bm9FcnIpIHsKICAgICAgICAgW3NlbGYgcmVsZWFz
ZV07CiAgICAgICAgIHJldHVybiBuaWw7CkBAIC01NTQsNyArNTU5LDcgQEAgLSAodm9pZClfb2xk
UGxhY2VXaW5kb3c6KE5TUmVjdClmcmFtZVJlY3QgewogCiAgICAgLy8gVGVsbCBDYXJib24gdG8g
dXBkYXRlIGl0cyB2YXJpb3VzIHJlZ2lvbnMuCiAgICAgLy8gRGVzcGl0ZSBpdHMgbmFtZSwgdGhp
cyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIGVhcmx5IGFuZCBvZnRlbiwgZXZlbiBpZiB0aGUg
d2luZG93IGlzbid0IHZpc2libGUgeWV0LiAgMjcwMjY0OC4gIE0uUC4gTm90aWNlIC0gNy8yNC8w
MQotICAgIG9zU3RhdHVzID0gV0tTeW5jV2luZG93V2l0aENHQWZ0ZXJNb3ZlKF93aW5kb3dSZWYp
OworICAgIG9zU3RhdHVzID0gX1N5bmNXaW5kb3dXaXRoQ0dBZnRlck1vdmUoX3dpbmRvd1JlZik7
CiAgICAgaWYgKG9zU3RhdHVzIT1ub0VycikgTlNMb2coQCJBIENhcmJvbiB3aW5kb3cncyBib3Vu
ZHMgY291bGRuJ3QgYmUgc3luY2hyb25pemVkICglaSkuIiwgKGludClvc1N0YXR1cyk7CiAKIH0K
QEAgLTYxNCw3ICs2MTksNyBAQCAtICh2b2lkKV93aW5kb3dNb3ZlZFRvUmVjdDooTlNSZWN0KWFj
dHVhbEZyYW1lIHsKIAogICAgIC8vIExldCBDYXJib24ga25vdyB0aGF0IHRoZSB3aW5kb3cgaGFz
IGJlZW4gbW92ZWQsIHVubGVzcyB0aGlzIG1ldGhvZCBpcyBiZWluZyBjYWxsZWQgImVhcmx5LiIK
ICAgICBpZiAoX3dGbGFncy52aXNpYmxlKSB7Ci0gICAgICAgIG9zU3RhdHVzID0gV0tTeW5jV2lu
ZG93V2l0aENHQWZ0ZXJNb3ZlKF93aW5kb3dSZWYpOworICAgICAgICBvc1N0YXR1cyA9IF9TeW5j
V2luZG93V2l0aENHQWZ0ZXJNb3ZlKF93aW5kb3dSZWYpOwogICAgICAgICBpZiAob3NTdGF0dXMh
PW5vRXJyKSBOU0xvZyhAIkEgQ2FyYm9uIHdpbmRvdydzIGJvdW5kcyBjb3VsZG4ndCBiZSBzeW5j
aHJvbml6ZWQgKCVpKS4iLCAoaW50KW9zU3RhdHVzKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DYXJib24vSElWaWV3QWRhcHRlci5tCmluZGV4IGNkMjA4Zjc5MGMwNWFk
OTE0NDUwYTZmOGI2MWZlMTYxZWM5YWY4OTQuLjU0ZmI0ODE3ZGVjM2Y4NGQ2MGIyMmQzZTU5N2M0
MjkzNTRhYTg1NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9I
SVZpZXdBZGFwdGVyLm0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJVmll
d0FkYXB0ZXIubQpAQCAtMzAsOCArMzAsOCBAQAogCiAjaW1wb3J0ICJISVZpZXdBZGFwdGVyLmgi
CiAKLSNpbXBvcnQgIlF1aWNrRHJhd0NvbXBhdGliaWxpdHkuaCIKICNpbXBvcnQgIldlYk5TT2Jq
ZWN0RXh0cmFzLmgiCisjaW1wb3J0IDxwYWwvc3BpL21hYy9RdWlja0RyYXdTUEkuaD4KICNpbXBv
cnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIHN0YXRpYyB2b2lkIFNldFZpZXdOZWVkc0Rpc3BsYXko
SElWaWV3UmVmIGluVmlldywgUmduSGFuZGxlIGluUmVnaW9uLCBCb29sZWFuIGluTmVlZHNEaXNw
bGF5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVdlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vSElXZWJWaWV3Lm1tCmluZGV4
IDBhZTAxNDcwMmZkMzkxY2NlNTgyNmE0YTAxYTA4ZmZmMmMwNGJlNmMuLjJmMjI1Yjk3ZTYyYjYx
YTQ5YmEyNzZiZTAyOWNhMmJmY2Q4YTRmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2FyYm9uL0hJV2ViVmlldy5tbQpAQCAtMzIsMTAgKzMyLDExIEBACiAKICNpbXBvcnQgIkNhcmJv
bldpbmRvd0FkYXB0ZXIuaCIKICNpbXBvcnQgIkhJVmlld0FkYXB0ZXIuaCIKLSNpbXBvcnQgIlF1
aWNrRHJhd0NvbXBhdGliaWxpdHkuaCIKICNpbXBvcnQgIldlYkhUTUxWaWV3SW50ZXJuYWwuaCIK
ICNpbXBvcnQgIldlYktpdC5oIgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+Cisj
aW1wb3J0IDxwYWwvc3BpL21hYy9OU0V2ZW50U1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9R
dWlja0RyYXdTUEkuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgogCiBAaW50
ZXJmYWNlIE5TV2luZG93IChBcHBLaXRTZWNyZXRzSElXZWJWaWV3S25vd3MpCkBAIC0zMDYsOSAr
MzA3LDEyIEBAIERyYXcoIEhJV2ViVmlldyogaW5WaWV3LCBSZ25IYW5kbGUgbGltaXRSZ24sIENH
Q29udGV4dFJlZiBpbkNvbnRleHQgKQogICAgICAgICBHcmFmUHRyIHBvcnQ7CiAgICAgICAgIFJl
Y3QgcG9ydFJlY3Q7CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAg
ICAgR2V0UG9ydCggJnBvcnQgKTsKICAgICAgICAgR2V0UG9ydEJvdW5kcyggcG9ydCwgJnBvcnRS
ZWN0ICk7CiAgICAgICAgIENyZWF0ZUNHQ29udGV4dEZvclBvcnQoIHBvcnQsICZpbkNvbnRleHQg
KTsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAgICAgICAgIFN5bmNDR0NvbnRleHRP
cmlnaW5XaXRoUG9ydCggaW5Db250ZXh0LCBwb3J0ICk7CiAgICAgICAgIENHQ29udGV4dFRyYW5z
bGF0ZUNUTSggaW5Db250ZXh0LCAwLCAocG9ydFJlY3QuYm90dG9tIC0gcG9ydFJlY3QudG9wKSAp
OwogICAgICAgICBDR0NvbnRleHRTY2FsZUNUTSggaW5Db250ZXh0LCAxLCAtMSApOwpAQCAtNDM2
LDYgKzQ0MCw2NCBAQCBHZXRXaW5kb3dSZWYoIEhJV2ViVmlldyogaW5WaWV3ICkKICAgICAgICBy
ZXR1cm4gR2V0Q29udHJvbE93bmVyKCBpblZpZXctPmZWaWV3UmVmICk7CiB9CiAKK3N0YXRpYyBO
U0V2ZW50ICoKK0NyZWF0ZU5TRXZlbnRBZG9wdGluZ0NHRXZlbnQoIENHRXZlbnRSZWYgY2dFdmVu
dCwgRXZlbnRSZWYgZXZlbnRSZWYgKQoreworICAgIE5TRXZlbnQgKnJlc3VsdCA9IFtbTlNFdmVu
dCBhbGxvY10gX2luaXRXaXRoQ0dFdmVudDpjZ0V2ZW50IGV2ZW50UmVmOmV2ZW50UmVmXTsKKyAg
ICBDRlJlbGVhc2UoY2dFdmVudCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIEJv
b2xlYW4KK0NvcHlFdmVudENHRXZlbnQoIEV2ZW50UmVmIGV2ZW50LCBDR0V2ZW50UmVmKiBjZ0V2
ZW50ICkKK3sKKyAgICBpZiAoKCpjZ0V2ZW50ID0gQ29weUV2ZW50Q0dFdmVudChldmVudCkpKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAKKyAgICAvLyBUaGlzIGV2ZW50IG1pZ2h0IG5vdCBo
YXZlIGJlZW4gY3JlYXRlZCBkaXJlY3RseSBmcm9tIGEgQ0dTIGV2ZW50LCBhbmQgbWlnaHQgbm90
CisgICAgLy8gaGF2ZSBhIENHRXZlbnRSZWYgYXNzb2NpYXRlZCB3aXRoIGl0LiBJbiB0aGF0IGNh
c2UsIHRyeSB1c2luZyB0aGUgZXZlbnQgbW9zdAorICAgIC8vIHJlY2VudGx5IGRpc3BhdGNoZWQg
YnkgdGhlIGV2ZW50IGRpc3BhdGNoZXIsIHdoaWNoIGlzIGxpa2VseSB0byBiZSB0aGUgb3JpZ2lu
YWwKKyAgICAvLyB1c2VyLWlucHV0IGV2ZW50IGNvbnRhaW5pbmcgYSBDR0V2ZW50UmVmLgorICAg
IGV2ZW50ID0gR2V0Q3VycmVudEV2ZW50KCk7CisgICAgaWYgKGV2ZW50ICYmICgqY2dFdmVudCA9
IENvcHlFdmVudENHRXZlbnQoZXZlbnQpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitzdGF0aWMgTlNFdmVudCAqCitDcmVhdGVOU0V2ZW50V2l0aENhcmJv
bkNsaWNrRXZlbnQoIEV2ZW50UmVmIGluRXZlbnQsIFdpbmRvd1JlZiB3aW5kb3dSZWYgKQorewor
ICAgIEV2ZW50UmVmIG5ld0V2ZW50OworICAgIFBvaW50IHdoZXJlOworICAgIE9TU3RhdHVzIGVy
cjsKKyAgICBVSW50MzIgbW9kaWZpZXJzOworICAgIFJlY3Qgd2luZFJlY3Q7CisgICAgCisgICAg
Q0dFdmVudFJlZiBjZ0V2ZW50ID0gTlVMTDsKKyAgICBpZiAoIUNvcHlFdmVudENHRXZlbnQoaW5F
dmVudCwgJmNnRXZlbnQpKQorICAgICAgICByZXR1cm4gbmlsOworICAgIAorICAgIC8vIFdlIG5l
ZWQgdG8gbWFrZSB0aGUgZXZlbnQgYmUgYSBrRXZlbnRNb3VzZURvd24gZXZlbnQsIG9yIHRoZSB3
ZWJraXQgbWlnaHQgdHJpcCB1cCB3aGVuCisgICAgLy8gd2UgY2xpY2sgb24gYSBOZXRzY2FwZSBw
bHVnaW4uIEl0IGNhbGxzIENvbnZlcnRFdmVudFJlZlRvRXZlbnRSZWNvcmQsIGFzc3VtaW5nCisg
ICAgLy8gdGhhdCBtb3VzZURvd24gd2FzIHBhc3NlZCBhbiBldmVudCB3aXRoIGEgcmVhbCBtb3Vz
ZSBkb3duIGV2ZW50UmVmLiBXZSBqdXN0IG5lZWQgYQorICAgIC8vIG1pbmltYWwgb25lIGhlcmUu
CisgICAgCisgICAgZXJyID0gQ3JlYXRlRXZlbnQoTlVMTCwga0V2ZW50Q2xhc3NNb3VzZSwga0V2
ZW50TW91c2VEb3duLCBHZXRFdmVudFRpbWUoaW5FdmVudCksIDAsICZuZXdFdmVudCk7CisgICAg
aWYgKGVyciAhPSBub0VycikKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAKKyAgICBHZXRFdmVu
dFBhcmFtZXRlcihpbkV2ZW50LCBrRXZlbnRQYXJhbVdpbmRvd01vdXNlTG9jYXRpb24sIHR5cGVR
RFBvaW50LCBOVUxMLCBzaXplb2YoUG9pbnQpLCBOVUxMLCAmd2hlcmUpOworICAgIEdldFdpbmRv
d0JvdW5kcyh3aW5kb3dSZWYsIGtXaW5kb3dTdHJ1Y3R1cmVSZ24sICZ3aW5kUmVjdCk7CisgICAg
d2hlcmUuaCArPSB3aW5kUmVjdC5sZWZ0OworICAgIHdoZXJlLnYgKz0gd2luZFJlY3QudG9wOwor
ICAgIAorICAgIEdldEV2ZW50UGFyYW1ldGVyKGluRXZlbnQsIGtFdmVudFBhcmFtS2V5TW9kaWZp
ZXJzLCB0eXBlVUludDMyLCBOVUxMLCBzaXplb2YoVUludDMyKSwgTlVMTCwgJm1vZGlmaWVycyk7
CisgICAgU2V0RXZlbnRQYXJhbWV0ZXIobmV3RXZlbnQsIGtFdmVudFBhcmFtTW91c2VMb2NhdGlv
biwgdHlwZVFEUG9pbnQsIHNpemVvZihQb2ludCksICZ3aGVyZSk7CisgICAgU2V0RXZlbnRQYXJh
bWV0ZXIobmV3RXZlbnQsIGtFdmVudFBhcmFtS2V5TW9kaWZpZXJzLCB0eXBlVUludDMyLCBzaXpl
b2YoVUludDMyKSwgJm1vZGlmaWVycyk7CisgICAgCisgICAgcmV0dXJuIENyZWF0ZU5TRXZlbnRB
ZG9wdGluZ0NHRXZlbnQoY2dFdmVudCwgbmV3RXZlbnQpOworfQorCiAvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIC8vIENsaWNrCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ0
Myw3ICs1MDUsNyBAQCBHZXRXaW5kb3dSZWYoIEhJV2ViVmlldyogaW5WaWV3ICkKIHN0YXRpYyBP
U1N0YXR1cwogQ2xpY2soSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQpCiB7Ci0g
ICAgTlNFdmVudCAqa2l0RXZlbnQgPSBXS0NyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uQ2xpY2tFdmVu
dChpbkV2ZW50LCBHZXRXaW5kb3dSZWYoaW5WaWV3KSk7CisgICAgTlNFdmVudCAqa2l0RXZlbnQg
PSBDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkNsaWNrRXZlbnQoaW5FdmVudCwgR2V0V2luZG93UmVm
KGluVmlldykpOwogCiAgICAgaWYgKCFpblZpZXctPmZJc0NvbXBvc2l0ZWQpCiAgICAgICAgIFN0
YXJ0VXBkYXRlT2JzZXJ2ZXIoaW5WaWV3KTsKQEAgLTQ1OCw2ICs1MjAsMTYgQEAgQ2xpY2soSElX
ZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQpCiAgICAgcmV0dXJuIG5vRXJyOwogfQog
CitzdGF0aWMgTlNFdmVudCAqCitDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkV2ZW50KCBFdmVudFJl
ZiBpbkV2ZW50ICkKK3sKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IGV2ZW50V2l0aEV2
ZW50UmVmOmluRXZlbnRdOworICAgIGlmICghZXZlbnQpCisgICAgICAgIGV2ZW50ID0gW05TRXZl
bnQgZXZlbnRXaXRoRXZlbnRSZWY6R2V0Q3VycmVudEV2ZW50KCldOworCisgICAgcmV0dXJuIFtl
dmVudCByZXRhaW5dOworfQorCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIE1vdXNl
VXAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDY1LDE1ICs1MzcsMzIgQEAgQ2xp
Y2soSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQpCiBzdGF0aWMgT1NTdGF0dXMK
IE1vdXNlVXAoIEhJV2ViVmlldyogaW5WaWV3LCBFdmVudFJlZiBpbkV2ZW50ICkKIHsKLQlOU0V2
ZW50KiBraXRFdmVudCA9IFdLQ3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVudChpbkV2ZW50KTsK
KyAgICBOU0V2ZW50KiBraXRFdmVudCA9IENyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZlbnQoaW5F
dmVudCk7CiAKICAgICBbaW5WaWV3LT5mS2l0V2luZG93IHNlbmRFdmVudDpraXRFdmVudF07Ci0J
CisKICAgICBba2l0RXZlbnQgcmVsZWFzZV07Ci0gICAgCisKIAlyZXR1cm4gbm9FcnI7CiB9CiAK
K3N0YXRpYyBOU0V2ZW50ICoKK0NyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uTW91c2VNb3ZlRXZlbnQo
IEV2ZW50UmVmIGluRXZlbnQsIE5TV2luZG93ICp3aW5kb3cgKQoreworICAgIE5TRXZlbnQqIGtp
dEV2ZW50ID0gW05TRXZlbnQgZXZlbnRXaXRoRXZlbnRSZWY6aW5FdmVudF07CisKKyAgICAvLyBG
SVhNRTogV29ya3MgYXJvdW5kIGJ1ZyAzNTg1NjQ0LiBDYW4gcmVtb3ZlIGl0IG9uY2UgdGhhdCBi
dWcgaXMgZml4ZWQuCisgICAgLy8gV2UgcHJlZmxpZ2h0IGhlcmUgYW5kIGRvbid0IGRvIGFueSB3
b3JrIHdoZW4gdGhlIHdpbmRvdyBpcyBhbHJlYWR5IGNvcnJlY3QKKyAgICAvLyBiZWNhdXNlIF9l
dmVudFJlbGF0aXZlVG9XaW5kb3cgd2lsbCBtYWxmdW5jdGlvbiBpZiB0aGUgZXZlbnQncyB3aW5k
b3cgbWV0aG9kCisgICAgLy8gaGFzIGJlZW4gaGlqYWNrZWQgYnkgdGhlIGJ1ZyB3b3JrYXJvdW5k
IHVzZWQgYnkgQ29udHJpYnV0ZS4gSXQncyBmaW5lIHRvIGp1c3QKKyAgICAvLyBsZWF2ZSB0aGUg
ZXZlbnQgYWxvbmUgaWYgdGhlIHdpbmRvdyBpcyBhbHJlYWR5IGNvcnJlY3QuCisKKyAgICBpZiAo
W2tpdEV2ZW50IHdpbmRvd10gIT0gd2luZG93KQorICAgICAgICBraXRFdmVudCA9IFtraXRFdmVu
dCBfZXZlbnRSZWxhdGl2ZVRvV2luZG93OndpbmRvd107CisKKyAgICByZXR1cm4gW2tpdEV2ZW50
IHJldGFpbl07Cit9CisKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gTW91c2VNb3Zl
ZAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00ODEsNyArNTcwLDcgQEAgTW91c2VV
cCggSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQgKQogc3RhdGljIE9TU3RhdHVz
CiBNb3VzZU1vdmVkKCBISVdlYlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCApCiB7Ci0g
ICAgTlNFdmVudCAqa2l0RXZlbnQgPSBXS0NyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uTW91c2VNb3Zl
RXZlbnQoaW5FdmVudCwgaW5WaWV3LT5mS2l0V2luZG93KTsKKyAgICBOU0V2ZW50ICpraXRFdmVu
dCA9IENyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uTW91c2VNb3ZlRXZlbnQoaW5FdmVudCwgaW5WaWV3
LT5mS2l0V2luZG93KTsKICAgICBbaW5WaWV3LT5mS2l0V2luZG93IHNlbmRFdmVudDpraXRFdmVu
dF07CiAJW2tpdEV2ZW50IHJlbGVhc2VdOwogCkBAIC00OTUsMTIgKzU4NCwxMiBAQCBNb3VzZU1v
dmVkKCBISVdlYlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCApCiBzdGF0aWMgT1NTdGF0
dXMKIE1vdXNlRHJhZ2dlZCggSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQgKQog
ewotCU5TRXZlbnQqIGtpdEV2ZW50ID0gV0tDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkV2ZW50KGlu
RXZlbnQpOworICAgIE5TRXZlbnQqIGtpdEV2ZW50ID0gQ3JlYXRlTlNFdmVudFdpdGhDYXJib25F
dmVudChpbkV2ZW50KTsKIAogICAgIFtpblZpZXctPmZLaXRXaW5kb3cgc2VuZEV2ZW50OmtpdEV2
ZW50XTsKIAotCVtraXRFdmVudCByZWxlYXNlXTsKLQkKKyAgICBba2l0RXZlbnQgcmVsZWFzZV07
CisKIAlyZXR1cm4gbm9FcnI7CiB9CiAKQEAgLTUxMSwxMiArNjAwLDEyIEBAIE1vdXNlRHJhZ2dl
ZCggSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQgKQogc3RhdGljIE9TU3RhdHVz
CiBNb3VzZVdoZWVsTW92ZWQoIEhJV2ViVmlldyogaW5WaWV3LCBFdmVudFJlZiBpbkV2ZW50ICkK
IHsKLQlOU0V2ZW50KiBraXRFdmVudCA9IFdLQ3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVudChp
bkV2ZW50KTsKKyAgICBOU0V2ZW50KiBraXRFdmVudCA9IENyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9u
RXZlbnQoaW5FdmVudCk7CiAKICAgICBbaW5WaWV3LT5mS2l0V2luZG93IHNlbmRFdmVudDpraXRF
dmVudF07CiAKLQlba2l0RXZlbnQgcmVsZWFzZV07Ci0JCisgICAgW2tpdEV2ZW50IHJlbGVhc2Vd
OworCiAJcmV0dXJuIG5vRXJyOwogfQogCkBAIC02ODQsNyArNzczLDcgQEAgV2luZG93SGFuZGxl
ciggRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkNhbGxSZWYsIEV2ZW50UmVmIGluRXZlbnQsIHZvaWQq
IGluVXNlckRhdGEKIAkJCQkJTlNSZXNwb25kZXIqIHJlc3BvbmRlciA9IFtraXRXaW5kb3cgZmly
c3RSZXNwb25kZXJdOwogCQkJCQlpZiAoIHJlc3BvbmRlciAhPSBraXRXaW5kb3cgKQogCQkJCQl7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBraXRFdmVudCA9IFdLQ3JlYXRlTlNFdmVudFdpdGhD
YXJib25FdmVudChpbkV2ZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGtpdEV2ZW50ID0g
Q3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVudChpbkV2ZW50KTsKIAkJCQkJCQogCQkJCQkJW2tp
dFdpbmRvdyBzZW5kRXZlbnQ6a2l0RXZlbnRdOwogCQkJCQkJW2tpdEV2ZW50IHJlbGVhc2VdOwpA
QCAtMTI2NSw3ICsxMzU0LDcgQEAgSElXZWJWaWV3RXZlbnRIYW5kbGVyKAogCiAJCWNhc2Uga0V2
ZW50Q2xhc3NLZXlib2FyZDoKIAkJCXsKLQkJCQlOU0V2ZW50KiBraXRFdmVudCA9IFdLQ3JlYXRl
TlNFdmVudFdpdGhDYXJib25FdmVudChpbkV2ZW50KTsKKyAgICAgICAgICAgICAgICBOU0V2ZW50
KiBraXRFdmVudCA9IENyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZlbnQoaW5FdmVudCk7CiAJCQkJ
W3ZpZXctPmZLaXRXaW5kb3cgc2VuZFN1cGVyRXZlbnQ6a2l0RXZlbnRdOwogCQkJCVtraXRFdmVu
dCByZWxlYXNlXTsKIAkJCQlyZXN1bHQgPSBub0VycjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL01pc2MvUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5oIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvTWlzYy9RdWlja0RyYXdDb21wYXRpYmlsaXR5LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGNmZjU1M2ZjMGIwM2QzMDU3ODMwOGRhNGUzZWUzZTJiZDRlODhiYzMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvTWlzYy9RdWlja0RyYXdDb21wYXRpYmlsaXR5LmgKKysrIC9kZXYvbnVs
bApAQCAtMSw5MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBRdWlja0RyYXdDb21wYXRp
YmlsaXR5X2gKLSNkZWZpbmUgUXVpY2tEcmF3Q29tcGF0aWJpbGl0eV9oCi0KLSNpZm5kZWYgX19M
UDY0X18KLQotI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgotCi0jaWYgZGVmaW5lZChRRF9IRUFE
RVJTX0FSRV9QUklWQVRFKSAmJiBRRF9IRUFERVJTX0FSRV9QUklWQVRFCi0KLSNpZmRlZiBfX2Nw
bHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotI2RlZmluZSBNYWNTZXRSZWN0IFNldFJl
Y3QKLSNkZWZpbmUgTWFjU2V0UmVjdFJnbiBTZXRSZWN0UmduCi0jZGVmaW5lIE1hY1VuaW9uUmdu
IFVuaW9uUmduCi0KLWV4dGVybiBCb29sZWFuIEVtcHR5UmduKFJnbkhhbmRsZSk7Ci1leHRlcm4g
T1NTdGF0dXMgQ3JlYXRlQ0dDb250ZXh0Rm9yUG9ydChDR3JhZlB0ciwgQ0dDb250ZXh0UmVmKik7
Ci1leHRlcm4gT1NTdGF0dXMgU3luY0NHQ29udGV4dE9yaWdpbldpdGhQb3J0KENHQ29udGV4dFJl
ZiwgQ0dyYWZQdHIpOwotZXh0ZXJuIFBpeE1hcEhhbmRsZSBHZXRQb3J0UGl4TWFwKENHcmFmUHRy
KTsKLWV4dGVybiBRREVyciBOZXdHV29ybGRGcm9tUHRyKEdXb3JsZFB0ciosIFVJbnQzMiwgY29u
c3QgUmVjdCosIENUYWJIYW5kbGUsIEdESGFuZGxlLCBHV29ybGRGbGFncywgUHRyLCBTSW50MzIp
OwotZXh0ZXJuIFJlY3QqIEdldFBvcnRCb3VuZHMoQ0dyYWZQdHIsIFJlY3QqKTsKLWV4dGVybiBS
ZWN0KiBHZXRSZWdpb25Cb3VuZHMoUmduSGFuZGxlLCBSZWN0Kik7Ci1leHRlcm4gUmduSGFuZGxl
IEdldFBvcnRDbGlwUmVnaW9uKENHcmFmUHRyLCBSZ25IYW5kbGUpOwotZXh0ZXJuIFJnbkhhbmRs
ZSBHZXRQb3J0VmlzaWJsZVJlZ2lvbihDR3JhZlB0ciwgUmduSGFuZGxlKTsKLWV4dGVybiBSZ25I
YW5kbGUgTmV3UmduKCk7Ci1leHRlcm4gdm9pZCBCYWNrQ29sb3IobG9uZyk7Ci1leHRlcm4gdm9p
ZCBEaXNwb3NlR1dvcmxkKEdXb3JsZFB0cik7Ci1leHRlcm4gdm9pZCBEaXNwb3NlUmduKFJnbkhh
bmRsZSk7Ci1leHRlcm4gdm9pZCBGb3JlQ29sb3IobG9uZyk7Ci1leHRlcm4gdm9pZCBHZXRHV29y
bGQoQ0dyYWZQdHIqLCBHREhhbmRsZSopOwotZXh0ZXJuIHZvaWQgR2V0UG9ydChHcmFmUHRyKik7
Ci1leHRlcm4gdm9pZCBHbG9iYWxUb0xvY2FsKFBvaW50Kik7Ci1leHRlcm4gdm9pZCBNYWNTZXRS
ZWN0KFJlY3QqLCBzaG9ydCwgc2hvcnQsIHNob3J0LCBzaG9ydCk7Ci1leHRlcm4gdm9pZCBNYWNT
ZXRSZWN0UmduKFJnbkhhbmRsZSwgc2hvcnQsIHNob3J0LCBzaG9ydCwgc2hvcnQpOwotZXh0ZXJu
IHZvaWQgTWFjVW5pb25SZ24oUmduSGFuZGxlLCBSZ25IYW5kbGUsIFJnbkhhbmRsZSk7Ci1leHRl
cm4gdm9pZCBNb3ZlUG9ydFRvKHNob3J0LCBzaG9ydCk7Ci1leHRlcm4gdm9pZCBPZmZzZXRSZWN0
KFJlY3QqLCBzaG9ydCwgc2hvcnQpOwotZXh0ZXJuIHZvaWQgT2Zmc2V0UmduKFJnbkhhbmRsZSwg
c2hvcnQsIHNob3J0KTsKLWV4dGVybiB2b2lkIFBhaW50UmVjdChjb25zdCBSZWN0Kik7Ci1leHRl
cm4gdm9pZCBQZW5Ob3JtYWwoKTsKLWV4dGVybiB2b2lkIFBvcnRTaXplKHNob3J0LCBzaG9ydCk7
Ci1leHRlcm4gdm9pZCBSZWN0UmduKFJnbkhhbmRsZSwgY29uc3QgUmVjdCopOwotZXh0ZXJuIHZv
aWQgU2VjdFJnbihSZ25IYW5kbGUsIFJnbkhhbmRsZSwgUmduSGFuZGxlKTsKLWV4dGVybiB2b2lk
IFNldEdXb3JsZChDR3JhZlB0ciwgR0RIYW5kbGUpOwotZXh0ZXJuIHZvaWQgU2V0T3JpZ2luKHNo
b3J0LCBzaG9ydCk7Ci1leHRlcm4gdm9pZCBTZXRQb3J0KEdyYWZQdHIpOwotZXh0ZXJuIHZvaWQg
U2V0UG9ydENsaXBSZWdpb24oQ0dyYWZQdHIsIFJnbkhhbmRsZSk7Ci1leHRlcm4gdm9pZCBTZXRQ
b3J0VmlzaWJsZVJlZ2lvbihDR3JhZlB0ciwgUmduSGFuZGxlKTsKLQotZW51bSB7Ci0gICAgYmxh
Y2tDb2xvciA9IDMzLAotICAgIHdoaXRlQ29sb3IgPSAzMCwKLSAgICBncmVlbkNvbG9yID0gMzQx
LAotfTsKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8vIGRlZmlu
ZWQoUURfSEVBREVSU19BUkVfUFJJVkFURSkgJiYgUURfSEVBREVSU19BUkVfUFJJVkFURQotCi0j
ZW5kaWYgLy8gX19MUDY0X18KLQotI2VuZGlmIC8vIFF1aWNrRHJhd0NvbXBhdGliaWxpdHlfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBs
dWdpbkV2ZW50SGFuZGxlckNhcmJvbi5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdp
bnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib24ubW0KaW5kZXggNjg1NjdiMzM5
NGRkODFhZTlmNTE5NzQxODk5NGRiZDI4ZjNlYjI3Yi4uNWE4NjNiODdhNzg3NTg1OGRhMmNlOGMx
MTE0YzI2MDBjOTEwYzlkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2Fy
Ym9uLm1tCkBAIC0zMCw2ICszMCw4IEBACiAjaW1wb3J0ICJXZWJOZXRzY2FwZVBsdWdpblZpZXcu
aCIKICNpbXBvcnQgIldlYktpdExvZ2dpbmcuaCIKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVy
ZmFjZS5oIgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg+CisjaW1wb3J0IDxw
YWwvc3BpL21hYy9OU0V2ZW50U1BJLmg+CiAKIC8vIFNlbmQgbnVsbCBldmVudHMgNTAgdGltZXMg
YSBzZWNvbmQgd2hlbiBhY3RpdmUsIHNvIHBsdWctaW5zIGxpa2UgRmxhc2ggZ2V0IGhpZ2ggZnJh
bWUgcmF0ZXMuCiAjZGVmaW5lIE51bGxFdmVudEludGVydmFsQWN0aXZlICAgICAgICAgMC4wMgpA
QCAtODUsNyArODcsNyBAQCBzdGF0aWMgRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzRm9yRXZlbnQo
TlNFdmVudCAqZXZlbnQpCiAKIHN0YXRpYyB2b2lkIGdldENhcmJvbkV2ZW50KEV2ZW50UmVjb3Jk
ICpjYXJib25FdmVudCwgTlNFdmVudCAqY29jb2FFdmVudCkKIHsKLSAgICBpZiAoV0tDb252ZXJ0
TlNFdmVudFRvQ2FyYm9uRXZlbnQoY2FyYm9uRXZlbnQsIGNvY29hRXZlbnQpKQorICAgIGlmIChb
Y29jb2FFdmVudCBfZXZlbnRSZWZdICYmIENvbnZlcnRFdmVudFJlZlRvRXZlbnRSZWNvcmQoKEV2
ZW50UmVmKVtjb2NvYUV2ZW50IF9ldmVudFJlZl0sIGNhcmJvbkV2ZW50KSkKICAgICAgICAgcmV0
dXJuOwogICAgIAogICAgIE5TUG9pbnQgd2hlcmUgPSBbW2NvY29hRXZlbnQgd2luZG93XSBjb252
ZXJ0QmFzZVRvU2NyZWVuOltjb2NvYUV2ZW50IGxvY2F0aW9uSW5XaW5kb3ddXTsKQEAgLTIxMCw3
ICsyMTIsNyBAQCB2b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjptb3Vz
ZU1vdmVkKE5TRXZlbnQqIHRoZUV2ZW50KQogdm9pZCBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFu
ZGxlckNhcmJvbjo6a2V5RG93bihOU0V2ZW50ICp0aGVFdmVudCkKIHsKICAgICBtX3N1c3BlbmRL
ZXlVcEV2ZW50cyA9IHRydWU7Ci0gICAgV0tTZW5kS2V5RXZlbnRUb1RTTSh0aGVFdmVudCk7Cisg
ICAgVFNNUHJvY2Vzc1Jhd0tleUV2ZW50KChFdmVudFJlZilbdGhlRXZlbnQgX2V2ZW50UmVmXSk7
CiB9CiAKIHZvaWQgV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib246OnN5bnRoZXRp
Y0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKGludCBrZXlDb2RlLCBjaGFyIGNoYXJhY3RlcikK
QEAgLTIzOCw3ICsyNDAsNyBAQCBzdGF0aWMgVUludDMyIGtleU1lc3NhZ2VGb3JFdmVudChOU0V2
ZW50ICpldmVudCkKICAgICAKIHZvaWQgV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJi
b246OmtleVVwKE5TRXZlbnQqIHRoZUV2ZW50KQogewotICAgIFdLU2VuZEtleUV2ZW50VG9UU00o
dGhlRXZlbnQpOworICAgIFRTTVByb2Nlc3NSYXdLZXlFdmVudCgoRXZlbnRSZWYpW3RoZUV2ZW50
IF9ldmVudFJlZl0pOwogICAgIAogICAgIC8vIFRTTSB3b24ndCBzZW5kIGtleVVwIGV2ZW50cyBz
byB3ZSBoYXZlIHRvIHNlbmQgdGhlbSBvdXJzZWx2ZXMuCiAgICAgLy8gT25seSBzZW5kIGtleVVw
IGV2ZW50cyBhZnRlciB3ZSByZWNlaXZlIHRoZSBUU00gY2FsbGJhY2sgYmVjYXVzZSB0aGlzIGlz
IHdoYXQgcGx1Zy1pbiBleHBlY3QgZnJvbSBPUyA5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50
SGFuZGxlckNvY29hLm1tCmluZGV4IGRlMjAxODlhMzdkYzA5Mjg3ODJlODYxYjJhNjlhMDNjNzYw
OGUxNzguLmNlMjVmMjkwNGFkMjlkYjczYTRlMGNkZjdkNWQwYjNkNDkwZjUwZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVu
dEhhbmRsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dl
Yk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0KQEAgLTI5LDYgKzI5LDggQEAKIAog
I2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0ICJXZWJOZXRzY2FwZVBs
dWdpblZpZXcuaCIKKyNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oPgorI2ltcG9y
dCA8cGFsL3NwaS9tYWMvTlNFdmVudFNQSS5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgogCiBX
ZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hOjpXZWJOZXRzY2FwZVBsdWdpbkV2ZW50
SGFuZGxlckNvY29hKFdlYk5ldHNjYXBlUGx1Z2luVmlldyogcGx1Z2luVmlldykKQEAgLTEyOCw3
ICsxMzAsNyBAQCB2b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6OmtleURv
d24oTlNFdmVudCAqZXZlbnQpCiAjaWZuZGVmIF9fTFA2NF9fCiAgICAgLy8gSWYgdGhlIHBsdWct
aW4gZGlkIG5vdCBoYW5kbGUgdGhlIGV2ZW50LCBwYXNzIGl0IG9uIHRvIHRoZSBJbnB1dCBNYW5h
Z2VyLgogICAgIGlmIChyZXR2YWwpCi0gICAgICAgIFdLU2VuZEtleUV2ZW50VG9UU00oZXZlbnQp
OworICAgICAgICBUU01Qcm9jZXNzUmF3S2V5RXZlbnQoKEV2ZW50UmVmKVtldmVudCBfZXZlbnRS
ZWZdKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHJldHZhbCk7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZp
ZXcubW0KaW5kZXggZjk2MWVmZTFlMjhjNDhiYjY1NGM1MWYzNmNhMDczMjgzY2M0NTdhMS4uYjA3
NzZmY2M5NzExYTkwODU1NmRjM2UzOGY4MTE4ZDg2ZTI4YTM4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0K
QEAgLTMwLDcgKzMwLDYgQEAKIAogI2ltcG9ydCAiV2ViTmV0c2NhcGVQbHVnaW5WaWV3LmgiCiAK
LSNpbXBvcnQgIlF1aWNrRHJhd0NvbXBhdGliaWxpdHkuaCIKICNpbXBvcnQgIldlYkRhdGFTb3Vy
Y2VJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViRGVmYXVsdFVJRGVsZWdhdGUuaCIKICNpbXBvcnQg
IldlYkZyYW1lSW50ZXJuYWwuaCIKQEAgLTc1LDYgKzc0LDcgQEAKICNpbXBvcnQgPFdlYktpdExl
Z2FjeS9ET01Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV2ViVUlEZWxlZ2F0ZS5o
PgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9RdWlja0Ry
YXdTUEkuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9y
dCA8cnVudGltZS9KU0xvY2suaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CkBAIC05MTUs
NyArOTE1LDcgQEAgLSh2b2lkKXRlbGxRdWlja1RpbWVUb0NoaWxsCiAgICAgQ0dyYWZQdHIgcG9y
dCA9IEdldFdpbmRvd1BvcnQod2luZG93UmVmKTsKICAgICA6OlJlY3QgYm91bmRzOwogICAgIEdl
dFBvcnRCb3VuZHMocG9ydCwgJmJvdW5kcyk7Ci0gICAgV0tDYWxsRHJhd2luZ05vdGlmaWNhdGlv
bihwb3J0LCAmYm91bmRzKTsKKyAgICBDYWxsRHJhd2luZ05vdGlmaWNhdGlvbnMocG9ydCwgJmJv
dW5kcywga0JpdHNQcm9jKTsKICNlbmRpZiAvKiBOUF9OT19RVUlDS0RSQVcgKi8KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319332</attachid>
            <date>2017-08-29 21:04:26 -0700</date>
            <delta_ts>2017-08-29 21:26:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176087-20170829210426.patch</filename>
            <type>text/plain</type>
            <size>53921</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA2ZjkxM2M0
OTQ1OTNlZjQ0YTBmYTAxNDI4ZGMwNGQ5ZTBmNGRiYzg5Li40ZDEzMzY1ZmFlNzEyNDNiM2FjYTU5
MGFiNjJlNzllYmI1M2EwNzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAog
MjAxNy0wOC0yOSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKKyAgICAgICAgW01h
Y10gVXBzdHJlYW0gQ2FyYm9uLXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDg3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFBB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvRm91
bmRhdGlvblNQSS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMv
TlNXaW5kb3dTUEkuaC4KKyAgICAgICAgKiBwYWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TV2luZG93U1BJLmguCisg
ICAgICAgICogcGFsL3NwaS9tYWMvTlNFdmVudFNQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFj
L05TV2luZG93U1BJLmg6CisgICAgICAgICogcGFsL3NwaS9tYWMvUXVpY2tEcmF3U1BJLmg6IEFk
ZGVkLgorCisyMDE3LTA4LTI5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKwogICAg
ICAgICBbTWFjXSBVcHN0cmVhbSBXS1NldE1ldGFkYXRhVVJMKCkgZnJvbSBXZWJLaXRTeXN0ZW1J
bnRlcmZhY2UKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3NjA0NgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAxZTdkYmQxNTM4NjUzMGM4NDU1YjI4OGFjMjQyOWRkNjNi
MjQ0MjQuLjUwNWNjYzAzMmVkNmNiMmI0Y2Y5MzMwMDFkM2IzNGEzMTRmMTA5NDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTctMDgtMjkgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUu
Y29tPgorCisgICAgICAgIFtNYWNdIFVwc3RyZWFtIENhcmJvbi1yZWxhdGVkIFdlYktpdFN5c3Rl
bUludGVyZmFjZSBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3NjA4NworCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5z
ZW4uCisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpjZ1dpbmRvd0lEKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojpz
Y3JpcHRDb2RlRnJvbUN1cnJlbnRLZXlib2FyZElucHV0U291cmNlKToKKyAgICAgICAgKFdlYktp
dDo6TmV0c2NhcGVQbHVnaW46OnNlbmRDb21wbGV4VGV4dElucHV0KToKKwogMjAxNy0wOC0yOSAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEJl
Z2luIHRyYW5zaXRpb24gdG8gbW9kZXJuIElQQyBkZWNvZGluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwpp
bmRleCAzOGQ5MTY3YzU2Y2VjMmI5MWQzZjQ5MDY2M2I0NGVjODZjY2ZiNDY3Li4zMTBlMzg0YThl
YzRmMWY4YjJjZWMxYmZkZjJlOTJkNTA5OTJhMzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEyIEBACisyMDE3LTA4LTI5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4K
KworICAgICAgICBbTWFjXSBVcHN0cmVhbSBDYXJib24tcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRl
cmZhY2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzYwODcKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgor
CisgICAgICAgICogV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIw
MTctMDgtMjkgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAg
ICBbQ01ha2VdIFVzZSBmaW5kX3BhY2thZ2UgZm9yIGxpYnhtbDIgYW5kIGxpYnhzdGwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA0YTMwOTE3M2M5NjkwZWVjN2E2MTQ0ZmI1MzRhMjRm
OGI5OTg0MmNmLi5iODNhZGNiYjZmODA3OWVlMTk4ZTYyNDhlNzg5YTcyYmIzNzlhYWVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDYgQEAKIDIwMTctMDgtMjkgIEFu
ZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCisgICAgICAgIFtNYWNdIFVwc3RyZWFtIENh
cmJvbi1yZWxhdGVkIFdlYktpdFN5c3RlbUludGVyZmFjZSBmdW5jdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjA4NworCisgICAgICAgIFJl
dmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBDYXJib24vQ2FyYm9uVXRp
bHMubToKKyAgICAgICAgKGdldE5TQXV0b3JlbGVhc2VQb29sQ291bnQpOgorICAgICAgICAoV2Vi
SW5pdEZvckNhcmJvbik6CisgICAgICAgIChQb29sQ2xlYW5lcik6CisgICAgICAgICogQ2FyYm9u
L0NhcmJvbldpbmRvd0FkYXB0ZXIubW06CisgICAgICAgICgrW0NhcmJvbldpbmRvd0FkYXB0ZXIg
ZnJhbWVWaWV3Q2xhc3NGb3JTdHlsZU1hc2s6XSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0Fk
YXB0ZXIgaW5pdFdpdGhDYXJib25XaW5kb3dSZWY6dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRl
cmluZzpjYXJib246XSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgX29sZFBsYWNl
V2luZG93Ol0pOgorICAgICAgICAoLVtDYXJib25XaW5kb3dBZGFwdGVyIF93aW5kb3dNb3ZlZFRv
UmVjdDpdKToKKyAgICAgICAgKiBDYXJib24vSElWaWV3QWRhcHRlci5tOgorICAgICAgICAqIENh
cmJvbi9ISVdlYlZpZXcubW06CisgICAgICAgIChEcmF3KToKKyAgICAgICAgKENyZWF0ZU5TRXZl
bnRBZG9wdGluZ0NHRXZlbnQpOgorICAgICAgICAoQ29weUV2ZW50Q0dFdmVudCk6CisgICAgICAg
IChDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkNsaWNrRXZlbnQpOgorICAgICAgICAoQ2xpY2spOgor
ICAgICAgICAoQ3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVudCk6CisgICAgICAgIChNb3VzZVVw
KToKKyAgICAgICAgKENyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uTW91c2VNb3ZlRXZlbnQpOgorICAg
ICAgICAoTW91c2VNb3ZlZCk6CisgICAgICAgIChNb3VzZURyYWdnZWQpOgorICAgICAgICAoTW91
c2VXaGVlbE1vdmVkKToKKyAgICAgICAgKFdpbmRvd0hhbmRsZXIpOgorICAgICAgICAoSElXZWJW
aWV3RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKiBNaXNjL1F1aWNrRHJhd0NvbXBhdGliaWxpdHku
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5k
bGVyQ2FyYm9uLm1tOgorICAgICAgICAoZ2V0Q2FyYm9uRXZlbnQpOgorICAgICAgICAoV2ViTmV0
c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib246OmtleURvd24pOgorICAgICAgICAoV2ViTmV0
c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib246OmtleVVwKToKKyAgICAgICAgKiBQbHVnaW5z
L1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW06CisgICAgICAgIChXZWJOZXRz
Y2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hOjprZXlEb3duKToKKyAgICAgICAgKiBQbHVnaW5z
L1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5W
aWV3IHRlbGxRdWlja1RpbWVUb0NoaWxsXSk6CisKKzIwMTctMDgtMjkgIEFuZHkgRXN0ZXMgIDxh
ZXN0ZXNAYXBwbGUuY29tPgorCiAgICAgICAgIFtNYWNdIFVwc3RyZWFtIFdLU2V0TWV0YWRhdGFV
UkwoKSBmcm9tIFdlYktpdFN5c3RlbUludGVyZmFjZQogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDQ2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMzg0YWQ4ZmI4YjMyMjAzNjg5
ODYxM2FmYTNiMGU3MzZkZmZkMDM3Li4yNDFkNWQ3N2QwZGRkMDM1YjkwNGNhODU3N2Q1YmRlYTIx
ZTY0YzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC05Nyw2ICs5Nyw5IEBACiAJCTFDMDlEMDUzMUUzMUM0NDEwMDcyNUYxOCAv
KiBDcnlwdG9EaWdlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDMDlEMDUyMUUzMUM0NDEwMDcyNUYxOCAvKiBDcnlwdG9EaWdlc3QuaCAqLzsgfTsK
IAkJMUMwOUQwNTYxRTMxQzQ2NTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzA5RDA1
NTFFMzFDNDY1MDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0Q29tbW9uQ3J5cHRvLmNwcCAqLzsgfTsK
IAkJMUMwOUQwNTgxRTMxQzU3RTAwNzI1RjE4IC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMwOUQwNTcxRTMxQzU3RTAwNzI1RjE4IC8q
IGNvbmZpZy5oICovOyB9OworCQlBMTAyNjU3QjFGNTYyNTE3MDBCNEM4NDQgLyogRm91bmRhdGlv
blNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEw
MjY1N0ExRjU2MjUxNzAwQjRDODQ0IC8qIEZvdW5kYXRpb25TUEkuaCAqLzsgfTsKKwkJQTEwMjY1
N0YxRjU2NEVERjAwQjRDODQ0IC8qIFF1aWNrRHJhd1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwMjY1N0UxRjU2NEVERjAwQjRDODQ0IC8qIFF1
aWNrRHJhd1NQSS5oICovOyB9OworCQlBMTAyNjU4MTFGNTY1MUE4MDBCNEM4NDQgLyogSElUb29s
Ym94U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MTAyNjU4MDFGNTY1MUE3MDBCNEM4NDQgLyogSElUb29sYm94U1BJLmggKi87IH07CiAJCUExRjU1
RENGMUY1NTI4RUMwMEVEQjc1RiAvKiBNZXRhZGF0YVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFGNTVEQ0UxRjU1MjhFQzAwRURCNzVGIC8qIE1l
dGFkYXRhU1BJLmggKi87IH07CiAJCUEzMEQ0MTIxMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmlu
Zy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMwRDQx
MUUxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmggKi87IH07CiAJCUEzMEQ0MTIyMUYwREQw
RUEwMEI3MTk1NCAvKiBLaWxsUmluZ05vbmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTMwRDQxMUYxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5n
Tm9uZS5jcHAgKi87IH07CkBAIC0yMDksNiArMjEyLDkgQEAKIAkJMUMwOUQwNjMxRTMxRUMzMTAw
NzI1RjE4IC8qIEJhc2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0g
QmFzZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM2N0NFQTExRTMy
RURBODAwRjgwRjJFIC8qIEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54
Y2NvbmZpZzsgcGF0aCA9IEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQzY3Q0VBMjFFMzJFRTI2MDBGODBGMkUgLyogVmVyc2lvbi54Y2NvbmZp
ZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBWZXJzaW9uLnhjY29uZmlnOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTAyNjU3QTFGNTYyNTE3MDBCNEM4NDQgLyogRm91
bmRhdGlvblNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGb3VuZGF0aW9uU1BJLmg7IHBhdGggPSBzcGkv
Y29jb2EvRm91bmRhdGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTAy
NjU3RTFGNTY0RURGMDBCNEM4NDQgLyogUXVpY2tEcmF3U1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFF1
aWNrRHJhd1NQSS5oOyBwYXRoID0gc3BpL21hYy9RdWlja0RyYXdTUEkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTEwMjY1ODAxRjU2NTFBNzAwQjRDODQ0IC8qIEhJVG9vbGJveFNQ
SS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBISVRvb2xib3hTUEkuaDsgcGF0
aCA9IHNwaS9tYWMvSElUb29sYm94U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUExRjU1RENFMUY1NTI4RUMwMEVEQjc1RiAvKiBNZXRhZGF0YVNQSS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBNZXRhZGF0YVNQSS5oOyBwYXRoID0gc3BpL21hYy9NZXRhZGF0YVNQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMzBENDExRTFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gS2lsbFJpbmcuaDsgcGF0aCA9IHRl
eHQvS2lsbFJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUYxRjBE
RDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nTm9uZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBLaWxsUmluZ05vbmUuY3BwOyBwYXRoID0gdGV4dC9LaWxsUmluZ05vbmUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjgxLDYgKzI4Nyw3IEBACiAJCQkJ
MEMyREExMjMxRjNCRUI0OTAwREJDMzE3IC8qIENGTlNVUkxDb25uZWN0aW9uU1BJLmggKi8sCiAJ
CQkJMEMyREExMjQxRjNCRUI0OTAwREJDMzE3IC8qIENvcmVUZXh0U1BJLmggKi8sCiAJCQkJMEMy
REExMjUxRjNCRUI0OTAwREJDMzE3IC8qIERhdGFEZXRlY3RvcnNDb3JlU1BJLmggKi8sCisJCQkJ
QTEwMjY1N0ExRjU2MjUxNzAwQjRDODQ0IC8qIEZvdW5kYXRpb25TUEkuaCAqLywKIAkJCQkwQzJE
QTEyNjFGM0JFQjQ5MDBEQkMzMTcgLyogSU9QTUxpYlNQSS5oICovLAogCQkJCTBDMkRBMTI3MUYz
QkVCNDkwMERCQzMxNyAvKiBJT1BTTGliU1BJLmggKi8sCiAJCQkJMEMyREExMjgxRjNCRUI0OTAw
REJDMzE3IC8qIElPUmV0dXJuU1BJLmggKi8sCkBAIC0zMzEsNiArMzM4LDcgQEAKIAkJCWNoaWxk
cmVuID0gKAogCQkJCTBDNzc4NTcwMUY0NTEzMEYwMEY0RUJCNiAvKiBBVkZvdW5kYXRpb25TUEku
aCAqLywKIAkJCQkwQzc3ODU3MTFGNDUxMzBGMDBGNEVCQjYgLyogRGF0YURldGVjdG9yc1NQSS5o
ICovLAorCQkJCUExMDI2NTgwMUY1NjUxQTcwMEI0Qzg0NCAvKiBISVRvb2xib3hTUEkuaCAqLywK
IAkJCQkwQzc3ODU3MjFGNDUxMzBGMDBGNEVCQjYgLyogTG9va3VwU1BJLmggKi8sCiAJCQkJMEM3
Nzg1NzMxRjQ1MTMwRjAwRjRFQkI2IC8qIE1lZGlhUmVtb3RlU1BJLmggKi8sCiAJCQkJQTFGNTVE
Q0UxRjU1MjhFQzAwRURCNzVGIC8qIE1ldGFkYXRhU1BJLmggKi8sCkBAIC0zNTMsNiArMzYxLDcg
QEAKIAkJCQkwQzc3ODU4NDFGNDUxMzBGMDBGNEVCQjYgLyogTlNXaW5kb3dTUEkuaCAqLywKIAkJ
CQkwQzc3ODU4NTFGNDUxMzBGMDBGNEVCQjYgLyogUElQU1BJLmggKi8sCiAJCQkJMEM3Nzg1ODYx
RjQ1MTMwRjAwRjRFQkI2IC8qIFFUS2l0U1BJLmggKi8sCisJCQkJQTEwMjY1N0UxRjU2NEVERjAw
QjRDODQ0IC8qIFF1aWNrRHJhd1NQSS5oICovLAogCQkJCTBDNzc4NTg3MUY0NTEzMEYwMEY0RUJC
NiAvKiBRdWlja0xvb2tNYWNTUEkuaCAqLywKIAkJCQkwQzc3ODU4ODFGNDUxMzBGMDBGNEVCQjYg
LyogVFVDYWxsU1BJLmggKi8sCiAJCQkpOwpAQCAtNDk5LDcgKzUwOCw5IEBACiAJCQkJMEM3Nzg1
OEExRjQ1MTMwRjAwRjRFQkI2IC8qIERhdGFEZXRlY3RvcnNTUEkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBDNUFGOTFBMUY0M0E0QzcwMDJFQUMwMiAvKiBEYXRhRGV0ZWN0b3JzVUlTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBDMkQ5RTczMUVFRjVBRjYwMERCQzMxNyAvKiBFeHBvcnRNYWNyb3Mu
aCBpbiBIZWFkZXJzICovLAorCQkJCUExMDI2NTdCMUY1NjI1MTcwMEI0Qzg0NCAvKiBGb3VuZGF0
aW9uU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxQjFGNDNBNEM3MDAyRUFDMDIgLyog
R3JhcGhpY3NTZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTEwMjY1ODExRjU2NTFB
ODAwQjRDODQ0IC8qIEhJVG9vbGJveFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExMUYx
RjNCRTlFMDAwREJDMzE3IC8qIEltYWdlSU9TUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRB
MTQyMUYzQkVCNDkwMERCQzMxNyAvKiBJT1BNTGliU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
QzJEQTE0MzFGM0JFQjQ5MDBEQkMzMTcgLyogSU9QU0xpYlNQSS5oIGluIEhlYWRlcnMgKi8sCkBA
IC01NTEsNiArNTYyLDcgQEAKIAkJCQkwQzJEQTE1NjFGM0JFQjQ5MDBEQkMzMTcgLyogcHRocmVh
ZFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM3Nzg1OUYxRjQ1MTMwRjAwRjRFQkI2IC8qIFFU
S2l0U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE1NzFGM0JFQjQ5MDBEQkMzMTcgLyog
UXVhcnR6Q29yZVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTEwMjY1N0YxRjU2NEVERjAwQjRD
ODQ0IC8qIFF1aWNrRHJhd1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM3Nzg1QTAxRjQ1MTMw
RjAwRjRFQkI2IC8qIFF1aWNrTG9va01hY1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5
MjAxRjQzQTRDNzAwMkVBQzAyIC8qIFF1aWNrTG9va1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEMyREExNTgxRjNCRUI0OTAwREJDMzE3IC8qIFNlcnZlcnNTUEkuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvRm91bmRhdGlvblNQ
SS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvRm91bmRhdGlvblNQSS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjY4NDE3NWQxMmI5ZTNjN2JkZjI2ZDJlYmI1MzAzNjhlYTc3ZWVlMGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9Gb3VuZGF0aW9u
U1BJLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2luY2x1ZGUgPEZvdW5kYXRpb24vTlNQcml2YXRl
RGVjbHMuaD4KKworI2VuZGlmCisKK3R5cGVkZWYgdm9pZCogTlNBdXRvcmVsZWFzZVBvb2xNYXJr
OworCitXVEZfRVhURVJOX0NfQkVHSU4KKworTlNBdXRvcmVsZWFzZVBvb2xNYXJrIE5TUHVzaEF1
dG9yZWxlYXNlUG9vbChOU1VJbnRlZ2VyIGNhcGFjaXR5KTsKK3ZvaWQgTlNQb3BBdXRvcmVsZWFz
ZVBvb2woTlNBdXRvcmVsZWFzZVBvb2xNYXJrKTsKKworV1RGX0VYVEVSTl9DX0VORApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1
MDg2ZDUxZTJjODNjY2I2ZTEyOTY5ZjVjZjU5NDRjYmMwNDM4NWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmgKQEAgLTAsMCAr
MSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKKworI2luY2x1ZGUgPEhJVG9vbGJveC9ISVRvb2xib3hQcml2Lmg+CisKKyNlbmRp
ZgorCit0eXBlZGVmIHN0cnVjdCBfX1RTTUlucHV0U291cmNlKiBUU01JbnB1dFNvdXJjZVJlZjsK
KworV1RGX0VYVEVSTl9DX0JFR0lOCisKK09TU3RhdHVzIF9TeW5jV2luZG93V2l0aENHQWZ0ZXJN
b3ZlKFdpbmRvd1JlZik7CitDR1dpbmRvd0lEIEdldE5hdGl2ZVdpbmRvd0Zyb21XaW5kb3dSZWYo
V2luZG93UmVmKTsKK09TU3RhdHVzIFRTTVByb2Nlc3NSYXdLZXlFdmVudChFdmVudFJlZik7CitF
dmVudFJlZiBHZXRDdXJyZW50RXZlbnQoKTsKKworV1RGX0VYVEVSTl9DX0VORApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TRXZlbnRTUEkuaCBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU0V2ZW50U1BJLmgKaW5kZXggODU3N2NlNTgzZWExYzIy
OGQ0NGNiZjI0ODU1ZjcwZmNkY2YyZjExOC4uMWFhYzkyODFkN2U1ZDQzYmNlYzhhMWNlMzdmOWU1
YmNhOGFkY2I0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05T
RXZlbnRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNFdmVudFNQ
SS5oCkBAIC0zNyw2ICszNywxNiBAQCBlbnVtIHsKICAgICBOU0V2ZW50U3dpcGVUcmFja2luZ0Nv
bnN1bWVNb3VzZUV2ZW50cyA9IDB4MSA8PCAyCiB9OwogCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJ
TgorCitAaW50ZXJmYWNlIE5TRXZlbnQgKCkKKy0gKG51bGxhYmxlIE5TRXZlbnQgKilfaW5pdFdp
dGhDR0V2ZW50OihudWxsYWJsZSBDR0V2ZW50UmVmKWNnRXZlbnQgZXZlbnRSZWY6KG51bGxhYmxl
IHZvaWQqKWV2ZW50UmVmOworLSAobnVsbGFibGUgdm9pZCopX2V2ZW50UmVmIE5TX1JFVFVSTlNf
SU5ORVJfUE9JTlRFUjsKKy0gKE5TRXZlbnQgKilfZXZlbnRSZWxhdGl2ZVRvV2luZG93OihOU1dp
bmRvdyAqKXdpbmRvdzsKK0BlbmQKKworTlNfQVNTVU1FX05PTk5VTExfRU5ECisKICNlbmRpZgog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1dp
bmRvd1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TV2luZG93U1BJLmgK
aW5kZXggMDJjMzNmNzEzNTU3ZWFkYzVkMDYxMjdkOTkyOTA3YTY2NjRjMjY2ZC4uY2Q5ZDM1YTIx
Njc2NTJmNTk3ZTk1N2ZiYjI2MTJhN2I1ZDJjNTY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvbWFjL05TV2luZG93U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvbWFjL05TV2luZG93U1BJLmgKQEAgLTQxLDYgKzQxLDEwIEBACiAKIEBlbmQKIAor
ZW51bSB7CisgICAgX05TQ2FyYm9uV2luZG93TWFzayA9IDEgPDwgMjUsCit9OworCiAjZW5kaWYK
IAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL21hYy9RdWlja0RyYXdTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L21hYy9RdWlja0RyYXdTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYThjNTkzZjBhZDY1ZTQ3ODlkOTliMjU4
MTZkODJmNTYzZmQ0Y2QyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvbWFjL1F1aWNrRHJhd1NQSS5oCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmbmRlZiBfX0xQNjRfXworCisjaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKKworI2luY2x1ZGUgPFFEL1F1aWNrZHJhd1ByaXYuaD4KKworI2Vsc2UKKworI2RlZmlu
ZSBNYWNTZXRSZWN0IFNldFJlY3QKKyNkZWZpbmUgTWFjU2V0UmVjdFJnbiBTZXRSZWN0UmduCisj
ZGVmaW5lIE1hY1VuaW9uUmduIFVuaW9uUmduCisKK2VudW0geworICAgIGJsYWNrQ29sb3IgPSAz
MywKKyAgICB3aGl0ZUNvbG9yID0gMzAsCisgICAgZ3JlZW5Db2xvciA9IDM0MSwKK307CisKKyNl
bmRpZgorCit0eXBlZGVmIGxvbmcgUUREcmF3aW5nVHlwZTsKKworV1RGX0VYVEVSTl9DX0JFR0lO
CisKK0Jvb2xlYW4gRW1wdHlSZ24oUmduSGFuZGxlKTsKK09TU3RhdHVzIENyZWF0ZUNHQ29udGV4
dEZvclBvcnQoQ0dyYWZQdHIsIENHQ29udGV4dFJlZiopOworT1NTdGF0dXMgU3luY0NHQ29udGV4
dE9yaWdpbldpdGhQb3J0KENHQ29udGV4dFJlZiwgQ0dyYWZQdHIpOworUGl4TWFwSGFuZGxlIEdl
dFBvcnRQaXhNYXAoQ0dyYWZQdHIpOworUURFcnIgTmV3R1dvcmxkRnJvbVB0cihHV29ybGRQdHIq
LCBVSW50MzIsIGNvbnN0IFJlY3QqLCBDVGFiSGFuZGxlLCBHREhhbmRsZSwgR1dvcmxkRmxhZ3Ms
IFB0ciwgU0ludDMyKTsKK1JlY3QqIEdldFBvcnRCb3VuZHMoQ0dyYWZQdHIsIFJlY3QqKTsKK1Jl
Y3QqIEdldFJlZ2lvbkJvdW5kcyhSZ25IYW5kbGUsIFJlY3QqKTsKK1JnbkhhbmRsZSBHZXRQb3J0
Q2xpcFJlZ2lvbihDR3JhZlB0ciwgUmduSGFuZGxlKTsKK1JnbkhhbmRsZSBHZXRQb3J0VmlzaWJs
ZVJlZ2lvbihDR3JhZlB0ciwgUmduSGFuZGxlKTsKK1JnbkhhbmRsZSBOZXdSZ24oKTsKK3ZvaWQg
QmFja0NvbG9yKGxvbmcpOwordm9pZCBDYWxsRHJhd2luZ05vdGlmaWNhdGlvbnMoQ0dyYWZQdHIs
IGNvbnN0IFJlY3QqLCBRRERyYXdpbmdUeXBlKTsKK3ZvaWQgRGlzcG9zZUdXb3JsZChHV29ybGRQ
dHIpOwordm9pZCBEaXNwb3NlUmduKFJnbkhhbmRsZSk7Cit2b2lkIEZvcmVDb2xvcihsb25nKTsK
K3ZvaWQgR2V0R1dvcmxkKENHcmFmUHRyKiwgR0RIYW5kbGUqKTsKK3ZvaWQgR2V0UG9ydChHcmFm
UHRyKik7Cit2b2lkIEdsb2JhbFRvTG9jYWwoUG9pbnQqKTsKK3ZvaWQgTWFjU2V0UmVjdChSZWN0
Kiwgc2hvcnQsIHNob3J0LCBzaG9ydCwgc2hvcnQpOwordm9pZCBNYWNTZXRSZWN0UmduKFJnbkhh
bmRsZSwgc2hvcnQsIHNob3J0LCBzaG9ydCwgc2hvcnQpOwordm9pZCBNYWNVbmlvblJnbihSZ25I
YW5kbGUsIFJnbkhhbmRsZSwgUmduSGFuZGxlKTsKK3ZvaWQgTW92ZVBvcnRUbyhzaG9ydCwgc2hv
cnQpOwordm9pZCBPZmZzZXRSZWN0KFJlY3QqLCBzaG9ydCwgc2hvcnQpOwordm9pZCBPZmZzZXRS
Z24oUmduSGFuZGxlLCBzaG9ydCwgc2hvcnQpOwordm9pZCBQYWludFJlY3QoY29uc3QgUmVjdCop
Owordm9pZCBQZW5Ob3JtYWwoKTsKK3ZvaWQgUG9ydFNpemUoc2hvcnQsIHNob3J0KTsKK3ZvaWQg
UmVjdFJnbihSZ25IYW5kbGUsIGNvbnN0IFJlY3QqKTsKK3ZvaWQgU2VjdFJnbihSZ25IYW5kbGUs
IFJnbkhhbmRsZSwgUmduSGFuZGxlKTsKK3ZvaWQgU2V0R1dvcmxkKENHcmFmUHRyLCBHREhhbmRs
ZSk7Cit2b2lkIFNldE9yaWdpbihzaG9ydCwgc2hvcnQpOwordm9pZCBTZXRQb3J0KEdyYWZQdHIp
Owordm9pZCBTZXRQb3J0Q2xpcFJlZ2lvbihDR3JhZlB0ciwgUmduSGFuZGxlKTsKK3ZvaWQgU2V0
UG9ydFZpc2libGVSZWdpb24oQ0dyYWZQdHIsIFJnbkhhbmRsZSk7CisKK1dURl9FWFRFUk5fQ19F
TkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFj
L1BsdWdpblByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1Bs
dWdpblByb2Nlc3NNYWMubW0KaW5kZXggNTI5YzRiNTMzOWExYzg4NGQyNWUwZTJiNGUwYjUwOTJl
YTI5ZDQxOC4uNmNmZDcxMTJkMzRmNWE3OGU2MDk4ZTlhMWE0OWNlYjRjM2RjNTVmMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5t
bQpAQCAtNDYsNiArNDYsNyBAQAogI2ltcG9ydCA8bWFjaC9tYWNoX3ZtLmg+CiAjaW1wb3J0IDxt
YWNoL3ZtX3N0YXRpc3RpY3MuaD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgorI2ltcG9ydCA8
cGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg+CiAjaW1wb3J0IDxzeXNleGl0cy5oPgogI2ltcG9y
dCA8d3RmL0hhc2hTZXQuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtOTYs
NyArOTcsNyBAQCBzdGF0aWMgYm9vbCB3aW5kb3dDb3ZlcnNBbnlTY3JlZW4oV2luZG93UmVmIHdp
bmRvdykKIAogc3RhdGljIENHV2luZG93SUQgY2dXaW5kb3dJRChXaW5kb3dSZWYgd2luZG93KQog
ewotICAgIHJldHVybiByZWludGVycHJldF9jYXN0PENHV2luZG93SUQ+KFdLR2V0TmF0aXZlV2lu
ZG93RnJvbVdpbmRvd1JlZih3aW5kb3cpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxD
R1dpbmRvd0lEPihHZXROYXRpdmVXaW5kb3dGcm9tV2luZG93UmVmKHdpbmRvdykpOwogfQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQppbmRleCAyMDFiM2RjZDgz
OTk0ODZiOGU0ZTJkOTBjNzU5ZjJhOTUxZWQ0MzI5Li40MzQ1Mjg2ZmI3MjcwY2ZlNzczODg4OWRm
YjY3YmMwYWJmNWQ5ZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCkBA
IC0zNyw2ICszNyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1w
b3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgor
I2ltcG9ydCA8cGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIApAQCAtOTg4LDYg
Kzk4OSwyMSBAQCBzdGF0aWMgYm9vbCBjb252ZXJ0U3RyaW5nVG9LZXlDb2RlcyhTdHJpbmdWaWV3
IHN0cmluZywgU2NyaXB0Q29kZSBzY3JpcHRDb2RlLCBWZQogfQogI2VuZGlmCiAKKyNpZm5kZWYg
TlBfTk9fQ0FSQk9OCitzdGF0aWMgU2NyaXB0Q29kZSBzY3JpcHRDb2RlRnJvbUN1cnJlbnRLZXli
b2FyZElucHV0U291cmNlKCkKK3sKKyAgICBTY3JpcHRDb2RlIHNjcmlwdENvZGUgPSBzbVJvbWFu
OworICAgIGF1dG8gaW5wdXRTb3VyY2UgPSBhZG9wdENGKFRJU0NvcHlDdXJyZW50S2V5Ym9hcmRJ
bnB1dFNvdXJjZSgpKTsKKworICAgIENGVHlwZVJlZiBzY3JpcHRDb2RlTnVtYmVyID0gVFNNR2V0
SW5wdXRTb3VyY2VQcm9wZXJ0eSgoVFNNSW5wdXRTb3VyY2VSZWYpaW5wdXRTb3VyY2UuZ2V0KCks
IGtUU01JbnB1dFNvdXJjZVByb3BlcnR5U2NyaXB0Q29kZSk7CisgICAgQVNTRVJUKENGR2V0VHlw
ZUlEKHNjcmlwdENvZGVOdW1iZXIpID09IENGTnVtYmVyR2V0VHlwZUlEKCkpOworICAgIGlmIChz
Y3JpcHRDb2RlTnVtYmVyKQorICAgICAgICBDRk51bWJlckdldFZhbHVlKChDRk51bWJlclJlZilz
Y3JpcHRDb2RlTnVtYmVyLCBrQ0ZOdW1iZXJTSW50MTZUeXBlLCAmc2NyaXB0Q29kZSk7CisKKyAg
ICByZXR1cm4gc2NyaXB0Q29kZTsKK30KKyNlbmRpZgorCiB2b2lkIE5ldHNjYXBlUGx1Z2luOjpz
ZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKIHsKICAgICBpZiAo
IW1fcGx1Z2luV2FudHNMZWdhY3lDb2NvYVRleHRJbnB1dCkgewpAQCAtMTAxMSw3ICsxMDI3LDcg
QEAgdm9pZCBOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5n
JiB0ZXh0SW5wdXQpCiAgICAgfQogI2lmbmRlZiBOUF9OT19DQVJCT04KICAgICBjYXNlIE5QRXZl
bnRNb2RlbENhcmJvbjogewotICAgICAgICBTY3JpcHRDb2RlIHNjcmlwdENvZGUgPSBXS0dldFNj
cmlwdENvZGVGcm9tQ3VycmVudEtleWJvYXJkSW5wdXRTb3VyY2UoKTsKKyAgICAgICAgU2NyaXB0
Q29kZSBzY3JpcHRDb2RlID0gc2NyaXB0Q29kZUZyb21DdXJyZW50S2V5Ym9hcmRJbnB1dFNvdXJj
ZSgpOwogICAgICAgICBWZWN0b3I8VUludDg+IGtleUNvZGVzOwogCiAgICAgICAgIGlmICghY29u
dmVydFN0cmluZ1RvS2V5Q29kZXModGV4dElucHV0LCBzY3JpcHRDb2RlLCBrZXlDb2RlcykpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJLaXRMZWdhY3kueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBkNGJlZWVhZGVmMWE3ODhhNDkyNGE0YjYwOTE5NGM3MjQz
N2QwZGVjLi5jMjI0MzA1OTZkNjU5MjMzM2NjZGMzNWU2MDk4NDk2MTZiZDcwZTQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE0OSw3ICsxNDksNiBAQAogCQk1OThBRDkyODEyMDFDRjMyMDBB
QkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OThBRDkyNzEyMDFDRjMyMDBBQkFF
NEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW0gKi87IH07CiAJCTU5OEFE
OTJBMTIwMUNGM0IwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9ja0lu
dGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
OThBRDkyOTEyMDFDRjNCMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1v
Y2tJbnRlcm5hbC5oICovOyB9OwogCQk1OThBREE0NjEyMDIyNzUwMDBBQkFFNEUgLyogV2ViRGV2
aWNlT3JpZW50YXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTk4QURBNDUxMjAyMjc1MDAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQk1Qzc3MDY3MjFEMTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0aWJp
bGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3
NzA2NzExRDExMUIyMjAwMTI3MDBGIC8qIFF1aWNrRHJhd0NvbXBhdGliaWxpdHkuaCAqLzsgfTsK
IAkJNUQ3QkY4MTQwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQ3QkY4MTIwQzJBMUQ5MDAwOENF
MDZEIC8qIFdlYkluc3BlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTVEN0JGODE1MEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNwZWN0b3Iu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDdCRjgx
MzBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLm1tICovOyB9OwogCQk1REU4M0E3QTBE
MEY3Rjk0MDBDQUQxMkEgLyogV2ViSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsLm5pYiBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNURFODNBNzQwRDBGN0Y5
NDAwQ0FEMTJBIC8qIFdlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5uaWIgKi87IH07CkBAIC0z
MTksNyArMzE4LDYgQEAKIAkJOTM5ODEwRkYwODI0QkYwMTAwOERGMDM4IC8qIENhcmJvbldpbmRv
d0ZyYW1lLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
N0VCRUU5NTAzRjlEQkExMDNDQTBERTYgLyogQ2FyYm9uV2luZG93RnJhbWUubSAqLzsgfTsKIAkJ
OTM5ODExMDAwODI0QkYwMTAwOERGMDM4IC8qIEhJVmlld0FkYXB0ZXIubSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY3RUJFRTlCMDNGOURCQTEwM0NBMERF
NiAvKiBISVZpZXdBZGFwdGVyLm0gKi87IHNldHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1X
bm8tZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiOyB9OyB9OwogCQk5Mzk4MTEwMTA4MjRCRjAxMDA4
REYwMzggLyogQ2FyYm9uVXRpbHMubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY3OUI5NzQ5MDQwMTk5MzQwMzY5MDlEMiAvKiBDYXJib25VdGlscy5tICov
OyB9OwotCQk5Mzk4MTEwMjA4MjRCRjAxMDA4REYwMzggLyogSElXZWJWaWV3Lm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjdFQkVFQUIwM0Y5REJBMTAz
Q0EwREU2IC8qIEhJV2ViVmlldy5tbSAqLzsgc2V0dGluZ3MgPSB7Q09NUElMRVJfRkxBR1MgPSAi
LVduby1kZXByZWNhdGVkLWRlY2xhcmF0aW9ucyI7IH07IH07CiAJCTkzOTgxMTAzMDgyNEJGMDEw
MDhERjAzOCAvKiBXZWJLaXRFcnJvcnMubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzNzMwRjk4MDNGQjFFNjYwMDA0NzM2RSAvKiBXZWJLaXRFcnJvcnMu
bSAqLzsgfTsKIAkJOTM5ODExMDYwODI0QkYwMTAwOERGMDM4IC8qIFdlYkZyYW1lVmlldy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQThCNTJGMDQy
ODJCNTkwMENBMkQzQSAvKiBXZWJGcmFtZVZpZXcubW0gKi87IH07CiAJCTkzOTgxMTA3MDgyNEJG
MDEwMDhERjAzOCAvKiBXZWJWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTFBOEI1N0EwNDI4MzRGNzAwQ0EyRDNBIC8qIFdlYlZpZXcubW0gKi87
IH07CkBAIC02ODAsNiArNjc4LDcgQEAKIAkJOTNFQjE3OEQwOUY4OEQ0NjAwOTFGOEZGIC8qIFdl
YlN5c3RlbUludGVyZmFjZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzRUIxNzhDMDlGODhENDYwMDkxRjhGRiAvKiBXZWJTeXN0ZW1JbnRlcmZhY2Uu
bW0gKi87IH07CiAJCTkzRUIxNzhGMDlGODhENTEwMDkxRjhGRiAvKiBXZWJTeXN0ZW1JbnRlcmZh
Y2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRUIx
NzhFMDlGODhENTEwMDkxRjhGRiAvKiBXZWJTeXN0ZW1JbnRlcmZhY2UuaCAqLzsgfTsKIAkJOTNG
REU5MzMwRDc5Q0FGMzAwNzRGMDI5IC8qIFdlYkhpc3RvcnlJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGREU5MzIwRDc5Q0FGMzAwNzRG
MDI5IC8qIFdlYkhpc3RvcnlJbnRlcm5hbC5oICovOyB9OworCQlBMTAyNjU4MzFGNTY1NDAzMDBC
NEM4NDQgLyogSElXZWJWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTEwMjY1ODIxRjU2NTQwMzAwQjRDODQ0IC8qIEhJV2ViVmlldy5tbSAqLzsg
fTsKIAkJQTEwQzFEMTgxODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGb3JtRGVsZWdhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMEMxRDEw
MTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLmggKi87IH07CiAJCUEx
MEMxRDE5MTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLm0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBDMUQxMTE4MjAyRjlD
MDAzNjg4M0EgLyogV2ViRGVmYXVsdEZvcm1EZWxlZ2F0ZS5tICovOyB9OwogCQlBMTBDMUQxQTE4
MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVmYXVsdEZyYW1lTG9hZERlbGVnYXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBDMUQxMjE4MjAyRjlDMDAz
Njg4M0EgLyogV2ViRGVmYXVsdEZyYW1lTG9hZERlbGVnYXRlLmggKi87IH07CkBAIC05ODgsNyAr
OTg3LDYgQEAKIAkJNTk4QUQ5MjcxMjAxQ0YzMjAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJNb2NrLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU5OEFEOTI5MTIwMUNGM0IwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyTW9ja0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrSW50ZXJuYWwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk4QURBNDUxMjAyMjc1MDAwQUJBRTRFIC8qIFdlYkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk1Qzc3MDY3MTFEMTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWlja0RyYXdDb21wYXRpYmlsaXR5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEN0JGODEyMEMyQTFEOTAwMDhDRTA2
RCAvKiBXZWJJbnNwZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
Ykluc3BlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDdCRjgxMzBDMkEx
RDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdlYkluc3BlY3Rvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNURFODNBNzUwRDBGN0Y5NDAwQ0FEMTJBIC8qIEVuZ2xpc2ggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLm5pYjsgbmFtZSA9IEVu
Z2xpc2g7IHBhdGggPSBFbmdsaXNoLmxwcm9qL1dlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5u
aWI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTE0MjAsNiArMTQxOCw3IEBACiAJ
CTkzRkRFOTMyMEQ3OUNBRjMwMDc0RjAyOSAvKiBXZWJIaXN0b3J5SW50ZXJuYWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSGlzdG9yeUludGVybmFsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlDQUU5RDA3MDI1MkE0MTMwRUNBMTZFQSAvKiBXZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTlDRjBFMjQ5MDIxMzYxQjAwRUNB
MTZFQSAvKiBXZWJGcmFtZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGcmFtZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CisJCUExMDI2NTgyMUY1NjU0MDMw
MEI0Qzg0NCAvKiBISVdlYlZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBISVdlYlZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEMx
RDEwMTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkRlZmF1bHRGb3JtRGVsZWdhdGUuaDsgcGF0aCA9
IGlvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRGb3JtRGVsZWdhdGUuaDsgc291cmNlVHJl
ZSA9IFNPVVJDRV9ST09UOyB9OwogCQlBMTBDMUQxMTE4MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVm
YXVsdEZvcm1EZWxlZ2F0ZS5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IG5hbWUgPSBX
ZWJEZWZhdWx0Rm9ybURlbGVnYXRlLm07IHBhdGggPSBpb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJE
ZWZhdWx0Rm9ybURlbGVnYXRlLm07IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJQTEw
QzFEMTIxODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGcmFtZUxvYWREZWxlZ2F0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJEZWZhdWx0RnJhbWVMb2FkRGVsZWdh
dGUuaDsgcGF0aCA9IGlvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRGcmFtZUxvYWREZWxl
Z2F0ZS5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CkBAIC0xNTk3LDcgKzE1OTYsNiBA
QAogCQlGN0VCRUU5QTAzRjlEQkExMDNDQTBERTYgLyogSElWaWV3QWRhcHRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBISVZpZXdBZGFwdGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwogCQlGN0VCRUU5QjAzRjlEQkExMDNDQTBERTYgLyogSElWaWV3QWRhcHRlci5tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IHBhdGggPSBISVZpZXdBZGFw
dGVyLm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQlGN0VCRUVBQTAzRjlEQkExMDNDQTBERTYgLyogSElXZWJWaWV3LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhJV2ViVmlldy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJ
RjdFQkVFQUIwM0Y5REJBMTAzQ0EwREU2IC8qIEhJV2ViVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBm
aWxlRW5jb2RpbmcgPSAzMDsgcGF0aCA9IEhJV2ViVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdXNlc1RhYnMgPSAwOyB9OwogCQlGODM0QUFENTBFNjRCMUM3MDBFMjczN0MgLyogV2Vi
VGV4dEl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlRleHRJ
dGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGODM0QUFENjBFNjRCMUM3
MDBFMjczN0MgLyogV2ViVGV4dEl0ZXJhdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV2ViVGV4dEl0ZXJhdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGOENBMTVCNTAyOUEzOUQ5MDEwMDAxMjIgLyogV2ViQXV0aGVudGljYXRpb25QYW5l
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTc2OSw3ICsxNzY3LDYgQEAKIAkJCWNoaWxkcmVu
ID0gKAogCQkJCUExMEMxRDIwMTgyMDJGQUYwMDM2ODgzQSAvKiBpb3MgKi8sCiAJCQkJMjlBRUY5
NUQxMzRDNzU1NDAwRkU1MDk2IC8qIE91dGxvb2tRdWlya3NVc2VyU2NyaXB0LmpzICovLAotCQkJ
CTVDNzcwNjcxMUQxMTFCMjIwMDEyNzAwRiAvKiBRdWlja0RyYXdDb21wYXRpYmlsaXR5LmggKi8s
CiAJCQkJNTI0MUFERjMwQjFCQzQ4QTAwNDAxMkJEIC8qIFdlYkNhY2hlLmggKi8sCiAJCQkJNTI0
MUFERjQwQjFCQzQ4QTAwNDAxMkJEIC8qIFdlYkNhY2hlLm1tICovLAogCQkJCUY1OUVBRTNFMDI1
M0M3RUUwMTg2MzVDQSAvKiBXZWJDb3JlU3RhdGlzdGljcy5oICovLApAQCAtMjY3Miw3ICsyNjY5
LDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJRjdFQkVFQUEw
M0Y5REJBMTAzQ0EwREU2IC8qIEhJV2ViVmlldy5oICovLAotCQkJCUY3RUJFRUFCMDNGOURCQTEw
M0NBMERFNiAvKiBISVdlYlZpZXcubW0gKi8sCisJCQkJQTEwMjY1ODIxRjU2NTQwMzAwQjRDODQ0
IC8qIEhJV2ViVmlldy5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gIkMgQVBJIjsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yOTM2LDcgKzI5MzMsNiBAQAogCQkJCTdDMDFDQjg1MTcz
NDM1QzkwMEM1RDgwNyAvKiBQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMkRC
RTlGMEYyNTFFM0EwMDM2RjhBNiAvKiBQcm94eUluc3RhbmNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMTY5ODM2MjExMzQ2RDFCMDA4OTQxMTUgLyogUHJveHlSdW50aW1lT2JqZWN0LmggaW4gSGVh
ZGVycyAqLywKLQkJCQk1Qzc3MDY3MjFEMTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0
aWJpbGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEwQzFENjIxODIwMzAwRTAwMzY4ODNBIC8q
IFNlYXJjaFBvcHVwTWVudUlPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MwMUNCODcxNzM0MzVD
OTAwQzVEODA3IC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2
QjMxMzIxQTUxRjNBOTAwNDIyOTc1IC8qIFN0b3JhZ2VBcmVhSW1wbC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNTEzLDcgKzM1MDksNyBAQAogCQkJCTkzRDQzNzlBMUQ1N0FCRUYwMEFCODVFQSAvKiBF
eGNlcHRpb25IYW5kbGVycy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNjA1MTkzMTc1MDJBNUQw
MEJDNjJGNSAvKiBIaXN0b3J5UHJvcGVydHlMaXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5
ODExMDAwODI0QkYwMTAwOERGMDM4IC8qIEhJVmlld0FkYXB0ZXIubSBpbiBTb3VyY2VzICovLAot
CQkJCTkzOTgxMTAyMDgyNEJGMDEwMDhERjAzOCAvKiBISVdlYlZpZXcubW0gaW4gU291cmNlcyAq
LywKKwkJCQlBMTAyNjU4MzFGNTY1NDAzMDBCNEM4NDQgLyogSElXZWJWaWV3Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUE4REVENTEwRUU4OEI4QTAwRjI1MDIyIC8qIEhvc3RlZE5ldHNjYXBlUGx1
Z2luU3RyZWFtLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEwQzFEMzMxODIwMkZDNTAwMzY4ODNB
IC8qIE1lbW9yeU1lYXN1cmUubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUFGNUNFQjBFRERFMUZF
MDA4RDg4M0QgLyogTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbSBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvblV0aWxzLm0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uVXRpbHMubQppbmRleCBjNTg2
MjNkNDA3MWRlYjg0NzhmMjA5ZWNiODg3ZGIzZTJlZWM2ODUxLi5jZTIwNGVhMmM1NTg2MDU0ZDgz
YmNmZWY2MTIyNjM3MWQzZjM1MzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DYXJib24vQ2FyYm9uVXRpbHMubQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJi
b24vQ2FyYm9uVXRpbHMubQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ2FyYm9uVXRp
bHMuaCIKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9Gb3VuZGF0aW9uU1BJLmg+CiAKIGV4dGVybiBDR0ltYWdlUmVmIF9OU0NyZWF0ZUlt
YWdlUmVmKCB1bnNpZ25lZCBjaGFyICpjb25zdCBiaXRtYXBEYXRhWzVdLCBpbnQgcGl4ZWxzV2lk
ZSwgaW50IHBpeGVsc0hpZ2gsIGludCBiaXRzUGVyU2FtcGxlLCBpbnQgc2FtcGxlc1BlclBpeGVs
LCBpbnQgYml0c1BlclBpeGVsLCBpbnQgYnl0ZXNQZXJSb3csIEJPT0wgaXNQbGFuYXIsIEJPT0wg
aGFzQWxwaGEsIE5TU3RyaW5nICpjb2xvclNwYWNlTmFtZSwgQ0dDb2xvclNwYWNlUmVmIGN1c3Rv
bUNvbG9yU3BhY2UsIGlkIHNvdXJjZU9iaik7CiAKQEAgLTQxLDYgKzQyLDE0IEBACiAKIHZvaWQg
ICAgICAgICAgICAgICAgICAgIEhJV2ViVmlld1JlZ2lzdGVyQ2xhc3MoIHZvaWQgKTsKIAorc3Rh
dGljIHVuc2lnbmVkIGdldE5TQXV0b3JlbGVhc2VQb29sQ291bnQodm9pZCkKK3sKKyAgICB2b2lk
KiB2ID0gTlNQdXNoQXV0b3JlbGVhc2VQb29sKDApOworICAgIHVpbnRwdHJfdCBudW1Qb29scyA9
ICh1aW50cHRyX3QpdjsKKyAgICBOU1BvcEF1dG9yZWxlYXNlUG9vbCh2KTsKKyAgICByZXR1cm4g
bnVtUG9vbHM7Cit9CisKIHZvaWQKIFdlYkluaXRGb3JDYXJib24oKQogewpAQCAtNTYsNyArNjUs
NyBAQAogICAgICAgICBOU0FwcGxpY2F0aW9uTG9hZCgpOwogICAgICAgICAgICAgICAgIAogICAg
ICAgICBzUG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NXaXRoWm9uZTpOVUxMXSBpbml0
XTsKLSAgICAgICAgbnVtUG9vbHMgPSBXS0dldE5TQXV0b3JlbGVhc2VQb29sQ291bnQoKTsKKyAg
ICAgICAgbnVtUG9vbHMgPSBnZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KCk7CiAgICAgICAgIAog
ICAgICAgICBwb29sTG9vcCA9IEdldEN1cnJlbnRFdmVudExvb3AgKCk7CiAKQEAgLTgyLDEyICs5
MSwxMiBAQAogICAgICAgICBDRlN0cmluZ1JlZiBtb2RlID0gQ0ZSdW5Mb29wQ29weUN1cnJlbnRN
b2RlKCAoQ0ZSdW5Mb29wUmVmKUdldENGUnVuTG9vcEZyb21FdmVudExvb3AoIEdldEN1cnJlbnRF
dmVudExvb3AoKSApKTsKICAgICAgICAgRXZlbnRMb29wUmVmIHRoaXNMb29wID0gR2V0Q3VycmVu
dEV2ZW50TG9vcCAoKTsKICAgICAgICAgaWYgKCBDRkVxdWFsKCBtb2RlLCBrQ0ZSdW5Mb29wRGVm
YXVsdE1vZGUgKSAmJiB0aGlzTG9vcCA9PSBwb29sTG9vcCkgewotICAgICAgICAgICAgdW5zaWdu
ZWQgY3VycmVudE51bVBvb2xzID0gV0tHZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KCktMTsgICAg
ICAgICAgICAKKyAgICAgICAgICAgIHVuc2lnbmVkIGN1cnJlbnROdW1Qb29scyA9IGdldE5TQXV0
b3JlbGVhc2VQb29sQ291bnQoKS0xOyAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGN1cnJl
bnROdW1Qb29scyA9PSBudW1Qb29scyl7CiAgICAgICAgICAgICAgICAgW3NQb29sIGRyYWluXTsK
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBzUG9vbCA9IFtbTlNBdXRvcmVsZWFz
ZVBvb2wgYWxsb2NXaXRoWm9uZTpOVUxMXSBpbml0XTsKLSAgICAgICAgICAgICAgICBudW1Qb29s
cyA9IFdLR2V0TlNBdXRvcmVsZWFzZVBvb2xDb3VudCgpOworICAgICAgICAgICAgICAgIG51bVBv
b2xzID0gZ2V0TlNBdXRvcmVsZWFzZVBvb2xDb3VudCgpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgICAgIENGUmVsZWFzZSggbW9kZSApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQppbmRleCA2MDA5ZGZjZDg3
MDczNGUzMDJiOTQ4NTE5MDlhY2E2Yzk5YThlZTNmLi40MDUyYzk5ZTJlZTUzYjAyMDhjZGQ3YTc1
YTZjZWUwNTliM2EwZWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJi
b24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
YXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQpAQCAtNzMsNiArNzMsOCBAQAogI2ltcG9ydCA8
YXNzZXJ0Lmg+CiAKICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KKyNpbXBv
cnQgPHBhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNX
aW5kb3dTUEkuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2lt
cG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CkBAIC04MSw2
ICs4Myw5IEBACiAjaW1wb3J0ICJXZWJOU09iamVjdEV4dHJhcy5oIgogI2ltcG9ydCAiV2ViVHlw
ZXNJbnRlcm5hbC5oIgogCitleHRlcm4gY29uc3QgT1NUeXBlIE5TQXBwS2l0UHJvcGVydHlDcmVh
dG9yOworZXh0ZXJuIGNvbnN0IE9TVHlwZSBOU0NhcmJvbldpbmRvd1Byb3BlcnR5VGFnOworCiBA
aW50ZXJmYWNlIE5TV2luZG93KEhJV2ViRnJhbWVWaWV3KQogLSAoaWQpX2luaXRDb250ZW50Oihj
b25zdCBOU1JlY3QgKiljb250ZW50UmVjdCBzdHlsZU1hc2s6KHVuc2lnbmVkIGludClhU3R5bGUg
YmFja2luZzooTlNCYWNraW5nU3RvcmVUeXBlKWJ1ZmZlcmluZ1R5cGUgZGVmZXI6KEJPT0wpZmxh
ZyBjb250ZW50VmlldzphVmlldzsKIC0gKHZvaWQpX29sZFBsYWNlV2luZG93OihOU1JlY3QpZnJh
bWVSZWN0OwpAQCAtMTExLDcgKzExNiw3IEBAIEBpbXBsZW1lbnRhdGlvbiBDYXJib25XaW5kb3dB
ZGFwdGVyCiArIChDbGFzcylmcmFtZVZpZXdDbGFzc0ZvclN0eWxlTWFzazoodW5zaWduZWQgaW50
KXN0eWxlIHsKIAogICAgIC8vIFRoZXJlJ3Mgb25seSBvbmUgYXBwcm9wcmlhdGUgd2luZG93IHN0
eWxlLCBhbmQgb25seSBvbmUgYXBwcm9wcmlhdGUgd2luZG93IGZyYW1lIGNsYXNzLgotICAgIGFz
c2VydChzdHlsZSAmIFdLQ2FyYm9uV2luZG93TWFzaygpKTsKKyAgICBhc3NlcnQoc3R5bGUgJiBf
TlNDYXJib25XaW5kb3dNYXNrKTsKICAgICByZXR1cm4gW0NhcmJvbldpbmRvd0ZyYW1lIGNsYXNz
XTsKIAogfQpAQCAtMTU2LDcgKzE2MSw3IEBAIC0gKGlkKWluaXRXaXRoQ2FyYm9uV2luZG93UmVm
OihXaW5kb3dSZWYpaW5XaW5kb3dSZWYgdGFraW5nT3duZXJzaGlwOihCT09MKWluV2luCiAJX2Nh
cmJvbiA9IGluQ2FyYm9uOwogCiAgICAgLy8gRmluZCBvdXQgdGhlIHdpbmRvdydzIENvcmVHcmFw
aGljcyB3aW5kb3cgcmVmZXJlbmNlLgotICAgIG5hdGl2ZVdpbmRvdyA9IFdLR2V0TmF0aXZlV2lu
ZG93RnJvbVdpbmRvd1JlZihpbldpbmRvd1JlZik7CisgICAgbmF0aXZlV2luZG93ID0gKHZvaWQq
KUdldE5hdGl2ZVdpbmRvd0Zyb21XaW5kb3dSZWYoaW5XaW5kb3dSZWYpOwogCiAgICAgLy8gRmlu
ZCBvdXQgdGhlIHdpbmRvdydzIENhcmJvbiB3aW5kb3cgYXR0cmlidXRlcy4KICAgICBHZXRXaW5k
b3dBdHRyaWJ1dGVzKGluV2luZG93UmVmLCAmd2luZG93QXR0cmlidXRlcyk7CkBAIC0xNzUsNyAr
MTgwLDcgQEAgLSAoaWQpaW5pdFdpdGhDYXJib25XaW5kb3dSZWY6KFdpbmRvd1JlZilpbldpbmRv
d1JlZiB0YWtpbmdPd25lcnNoaXA6KEJPT0wpaW5XaW4KICNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKIAogICAgIC8vIEZpZ3VyZSBvdXQgdGhlIHdpbmRvdydzIHN0eWxlIG1hc2suCi0gICAg
c3R5bGVNYXNrID0gV0tDYXJib25XaW5kb3dNYXNrKCk7CisgICAgc3R5bGVNYXNrID0gX05TQ2Fy
Ym9uV2luZG93TWFzazsKICAgICBpZiAod2luZG93QXR0cmlidXRlcyAmIGtXaW5kb3dDbG9zZUJv
eEF0dHJpYnV0ZSkKICAgICAgICAgc3R5bGVNYXNrIHw9IE5TV2luZG93U3R5bGVNYXNrQ2xvc2Fi
bGU7CiAgICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBrV2luZG93UmVzaXphYmxlQXR0cmlidXRl
KQpAQCAtMjQyLDcgKzI0Nyw3IEBAIC0gKGlkKWluaXRXaXRoQ2FyYm9uV2luZG93UmVmOihXaW5k
b3dSZWYpaW5XaW5kb3dSZWYgdGFraW5nT3duZXJzaGlwOihCT09MKWluV2luCiAgICAgLy8gUHV0
IGEgcG9pbnRlciB0byB0aGlzIENvY29hIE5TV2luZG93IGluIGEgQ2FyYm9uIHdpbmRvdyBwcm9w
ZXJ0eSB0YWcuCiAgICAgLy8gUmlnaHQgbm93LCB0aGlzIGlzIGp1c3QgdXNlZCBieSBOU1ZpZXdD
YXJib25Db250cm9sLiAgTS5QLiBOb3RpY2UgLSAxMC85LzAwCiAgICAgd2luZG93QXNQcm9wZXJ0
eSA9IHNlbGY7Ci0gICAgb3NTdGF0dXMgPSBTZXRXaW5kb3dQcm9wZXJ0eShfd2luZG93UmVmLCBX
S0NhcmJvbldpbmRvd1Byb3BlcnR5Q3JlYXRvcigpLCBXS0NhcmJvbldpbmRvd1Byb3BlcnR5VGFn
KCksIHNpemVvZihOU1dpbmRvdyAqKSwgJndpbmRvd0FzUHJvcGVydHkpOworICAgIG9zU3RhdHVz
ID0gU2V0V2luZG93UHJvcGVydHkoX3dpbmRvd1JlZiwgTlNBcHBLaXRQcm9wZXJ0eUNyZWF0b3Is
IE5TQ2FyYm9uV2luZG93UHJvcGVydHlUYWcsIHNpemVvZihOU1dpbmRvdyAqKSwgJndpbmRvd0Fz
UHJvcGVydHkpOwogICAgIGlmIChvc1N0YXR1cyE9bm9FcnIpIHsKICAgICAgICAgW3NlbGYgcmVs
ZWFzZV07CiAgICAgICAgIHJldHVybiBuaWw7CkBAIC01NTQsNyArNTU5LDcgQEAgLSAodm9pZClf
b2xkUGxhY2VXaW5kb3c6KE5TUmVjdClmcmFtZVJlY3QgewogCiAgICAgLy8gVGVsbCBDYXJib24g
dG8gdXBkYXRlIGl0cyB2YXJpb3VzIHJlZ2lvbnMuCiAgICAgLy8gRGVzcGl0ZSBpdHMgbmFtZSwg
dGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIGVhcmx5IGFuZCBvZnRlbiwgZXZlbiBpZiB0
aGUgd2luZG93IGlzbid0IHZpc2libGUgeWV0LiAgMjcwMjY0OC4gIE0uUC4gTm90aWNlIC0gNy8y
NC8wMQotICAgIG9zU3RhdHVzID0gV0tTeW5jV2luZG93V2l0aENHQWZ0ZXJNb3ZlKF93aW5kb3dS
ZWYpOworICAgIG9zU3RhdHVzID0gX1N5bmNXaW5kb3dXaXRoQ0dBZnRlck1vdmUoX3dpbmRvd1Jl
Zik7CiAgICAgaWYgKG9zU3RhdHVzIT1ub0VycikgTlNMb2coQCJBIENhcmJvbiB3aW5kb3cncyBi
b3VuZHMgY291bGRuJ3QgYmUgc3luY2hyb25pemVkICglaSkuIiwgKGludClvc1N0YXR1cyk7CiAK
IH0KQEAgLTYxNCw3ICs2MTksNyBAQCAtICh2b2lkKV93aW5kb3dNb3ZlZFRvUmVjdDooTlNSZWN0
KWFjdHVhbEZyYW1lIHsKIAogICAgIC8vIExldCBDYXJib24ga25vdyB0aGF0IHRoZSB3aW5kb3cg
aGFzIGJlZW4gbW92ZWQsIHVubGVzcyB0aGlzIG1ldGhvZCBpcyBiZWluZyBjYWxsZWQgImVhcmx5
LiIKICAgICBpZiAoX3dGbGFncy52aXNpYmxlKSB7Ci0gICAgICAgIG9zU3RhdHVzID0gV0tTeW5j
V2luZG93V2l0aENHQWZ0ZXJNb3ZlKF93aW5kb3dSZWYpOworICAgICAgICBvc1N0YXR1cyA9IF9T
eW5jV2luZG93V2l0aENHQWZ0ZXJNb3ZlKF93aW5kb3dSZWYpOwogICAgICAgICBpZiAob3NTdGF0
dXMhPW5vRXJyKSBOU0xvZyhAIkEgQ2FyYm9uIHdpbmRvdydzIGJvdW5kcyBjb3VsZG4ndCBiZSBz
eW5jaHJvbml6ZWQgKCVpKS4iLCAoaW50KW9zU3RhdHVzKTsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DYXJib24vSElWaWV3QWRhcHRlci5tCmluZGV4IGNkMjA4Zjc5MGMw
NWFkOTE0NDUwYTZmOGI2MWZlMTYxZWM5YWY4OTQuLjU0ZmI0ODE3ZGVjM2Y4NGQ2MGIyMmQzZTU5
N2M0MjkzNTRhYTg1NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJv
bi9ISVZpZXdBZGFwdGVyLm0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJ
Vmlld0FkYXB0ZXIubQpAQCAtMzAsOCArMzAsOCBAQAogCiAjaW1wb3J0ICJISVZpZXdBZGFwdGVy
LmgiCiAKLSNpbXBvcnQgIlF1aWNrRHJhd0NvbXBhdGliaWxpdHkuaCIKICNpbXBvcnQgIldlYk5T
T2JqZWN0RXh0cmFzLmgiCisjaW1wb3J0IDxwYWwvc3BpL21hYy9RdWlja0RyYXdTUEkuaD4KICNp
bXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIHN0YXRpYyB2b2lkIFNldFZpZXdOZWVkc0Rpc3Bs
YXkoSElWaWV3UmVmIGluVmlldywgUmduSGFuZGxlIGluUmVnaW9uLCBCb29sZWFuIGluTmVlZHNE
aXNwbGF5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVdl
YlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vSElXZWJWaWV3Lm1tCmlu
ZGV4IDBhZTAxNDcwMmZkMzkxY2NlNTgyNmE0YTAxYTA4ZmZmMmMwNGJlNmMuLjJmMjI1Yjk3ZTYy
YjYxYTQ5YmEyNzZiZTAyOWNhMmJmY2Q4YTRmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2FyYm9uL0hJV2ViVmlldy5tbQpAQCAtMzIsMTAgKzMyLDExIEBACiAKICNpbXBvcnQgIkNh
cmJvbldpbmRvd0FkYXB0ZXIuaCIKICNpbXBvcnQgIkhJVmlld0FkYXB0ZXIuaCIKLSNpbXBvcnQg
IlF1aWNrRHJhd0NvbXBhdGliaWxpdHkuaCIKICNpbXBvcnQgIldlYkhUTUxWaWV3SW50ZXJuYWwu
aCIKICNpbXBvcnQgIldlYktpdC5oIgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+
CisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0V2ZW50U1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21h
Yy9RdWlja0RyYXdTUEkuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgogCiBA
aW50ZXJmYWNlIE5TV2luZG93IChBcHBLaXRTZWNyZXRzSElXZWJWaWV3S25vd3MpCkBAIC0zMDYs
OSArMzA3LDEyIEBAIERyYXcoIEhJV2ViVmlldyogaW5WaWV3LCBSZ25IYW5kbGUgbGltaXRSZ24s
IENHQ29udGV4dFJlZiBpbkNvbnRleHQgKQogICAgICAgICBHcmFmUHRyIHBvcnQ7CiAgICAgICAg
IFJlY3QgcG9ydFJlY3Q7CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAg
ICAgICAgR2V0UG9ydCggJnBvcnQgKTsKICAgICAgICAgR2V0UG9ydEJvdW5kcyggcG9ydCwgJnBv
cnRSZWN0ICk7CiAgICAgICAgIENyZWF0ZUNHQ29udGV4dEZvclBvcnQoIHBvcnQsICZpbkNvbnRl
eHQgKTsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAgICAgICAgIFN5bmNDR0NvbnRl
eHRPcmlnaW5XaXRoUG9ydCggaW5Db250ZXh0LCBwb3J0ICk7CiAgICAgICAgIENHQ29udGV4dFRy
YW5zbGF0ZUNUTSggaW5Db250ZXh0LCAwLCAocG9ydFJlY3QuYm90dG9tIC0gcG9ydFJlY3QudG9w
KSApOwogICAgICAgICBDR0NvbnRleHRTY2FsZUNUTSggaW5Db250ZXh0LCAxLCAtMSApOwpAQCAt
NDM2LDYgKzQ0MCw2NCBAQCBHZXRXaW5kb3dSZWYoIEhJV2ViVmlldyogaW5WaWV3ICkKICAgICAg
ICByZXR1cm4gR2V0Q29udHJvbE93bmVyKCBpblZpZXctPmZWaWV3UmVmICk7CiB9CiAKK3N0YXRp
YyBOU0V2ZW50ICoKK0NyZWF0ZU5TRXZlbnRBZG9wdGluZ0NHRXZlbnQoIENHRXZlbnRSZWYgY2dF
dmVudCwgRXZlbnRSZWYgZXZlbnRSZWYgKQoreworICAgIE5TRXZlbnQgKnJlc3VsdCA9IFtbTlNF
dmVudCBhbGxvY10gX2luaXRXaXRoQ0dFdmVudDpjZ0V2ZW50IGV2ZW50UmVmOmV2ZW50UmVmXTsK
KyAgICBDRlJlbGVhc2UoY2dFdmVudCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGlj
IEJvb2xlYW4KK0NvcHlFdmVudENHRXZlbnQoIEV2ZW50UmVmIGV2ZW50LCBDR0V2ZW50UmVmKiBj
Z0V2ZW50ICkKK3sKKyAgICBpZiAoKCpjZ0V2ZW50ID0gQ29weUV2ZW50Q0dFdmVudChldmVudCkp
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAKKyAgICAvLyBUaGlzIGV2ZW50IG1pZ2h0IG5v
dCBoYXZlIGJlZW4gY3JlYXRlZCBkaXJlY3RseSBmcm9tIGEgQ0dTIGV2ZW50LCBhbmQgbWlnaHQg
bm90CisgICAgLy8gaGF2ZSBhIENHRXZlbnRSZWYgYXNzb2NpYXRlZCB3aXRoIGl0LiBJbiB0aGF0
IGNhc2UsIHRyeSB1c2luZyB0aGUgZXZlbnQgbW9zdAorICAgIC8vIHJlY2VudGx5IGRpc3BhdGNo
ZWQgYnkgdGhlIGV2ZW50IGRpc3BhdGNoZXIsIHdoaWNoIGlzIGxpa2VseSB0byBiZSB0aGUgb3Jp
Z2luYWwKKyAgICAvLyB1c2VyLWlucHV0IGV2ZW50IGNvbnRhaW5pbmcgYSBDR0V2ZW50UmVmLgor
ICAgIGV2ZW50ID0gR2V0Q3VycmVudEV2ZW50KCk7CisgICAgaWYgKGV2ZW50ICYmICgqY2dFdmVu
dCA9IENvcHlFdmVudENHRXZlbnQoZXZlbnQpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgTlNFdmVudCAqCitDcmVhdGVOU0V2ZW50V2l0aENh
cmJvbkNsaWNrRXZlbnQoIEV2ZW50UmVmIGluRXZlbnQsIFdpbmRvd1JlZiB3aW5kb3dSZWYgKQor
eworICAgIEV2ZW50UmVmIG5ld0V2ZW50OworICAgIFBvaW50IHdoZXJlOworICAgIE9TU3RhdHVz
IGVycjsKKyAgICBVSW50MzIgbW9kaWZpZXJzOworICAgIFJlY3Qgd2luZFJlY3Q7CisgICAgCisg
ICAgQ0dFdmVudFJlZiBjZ0V2ZW50ID0gTlVMTDsKKyAgICBpZiAoIUNvcHlFdmVudENHRXZlbnQo
aW5FdmVudCwgJmNnRXZlbnQpKQorICAgICAgICByZXR1cm4gbmlsOworICAgIAorICAgIC8vIFdl
IG5lZWQgdG8gbWFrZSB0aGUgZXZlbnQgYmUgYSBrRXZlbnRNb3VzZURvd24gZXZlbnQsIG9yIHRo
ZSB3ZWJraXQgbWlnaHQgdHJpcCB1cCB3aGVuCisgICAgLy8gd2UgY2xpY2sgb24gYSBOZXRzY2Fw
ZSBwbHVnaW4uIEl0IGNhbGxzIENvbnZlcnRFdmVudFJlZlRvRXZlbnRSZWNvcmQsIGFzc3VtaW5n
CisgICAgLy8gdGhhdCBtb3VzZURvd24gd2FzIHBhc3NlZCBhbiBldmVudCB3aXRoIGEgcmVhbCBt
b3VzZSBkb3duIGV2ZW50UmVmLiBXZSBqdXN0IG5lZWQgYQorICAgIC8vIG1pbmltYWwgb25lIGhl
cmUuCisgICAgCisgICAgZXJyID0gQ3JlYXRlRXZlbnQoTlVMTCwga0V2ZW50Q2xhc3NNb3VzZSwg
a0V2ZW50TW91c2VEb3duLCBHZXRFdmVudFRpbWUoaW5FdmVudCksIDAsICZuZXdFdmVudCk7Cisg
ICAgaWYgKGVyciAhPSBub0VycikKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAKKyAgICBHZXRF
dmVudFBhcmFtZXRlcihpbkV2ZW50LCBrRXZlbnRQYXJhbVdpbmRvd01vdXNlTG9jYXRpb24sIHR5
cGVRRFBvaW50LCBOVUxMLCBzaXplb2YoUG9pbnQpLCBOVUxMLCAmd2hlcmUpOworICAgIEdldFdp
bmRvd0JvdW5kcyh3aW5kb3dSZWYsIGtXaW5kb3dTdHJ1Y3R1cmVSZ24sICZ3aW5kUmVjdCk7Cisg
ICAgd2hlcmUuaCArPSB3aW5kUmVjdC5sZWZ0OworICAgIHdoZXJlLnYgKz0gd2luZFJlY3QudG9w
OworICAgIAorICAgIEdldEV2ZW50UGFyYW1ldGVyKGluRXZlbnQsIGtFdmVudFBhcmFtS2V5TW9k
aWZpZXJzLCB0eXBlVUludDMyLCBOVUxMLCBzaXplb2YoVUludDMyKSwgTlVMTCwgJm1vZGlmaWVy
cyk7CisgICAgU2V0RXZlbnRQYXJhbWV0ZXIobmV3RXZlbnQsIGtFdmVudFBhcmFtTW91c2VMb2Nh
dGlvbiwgdHlwZVFEUG9pbnQsIHNpemVvZihQb2ludCksICZ3aGVyZSk7CisgICAgU2V0RXZlbnRQ
YXJhbWV0ZXIobmV3RXZlbnQsIGtFdmVudFBhcmFtS2V5TW9kaWZpZXJzLCB0eXBlVUludDMyLCBz
aXplb2YoVUludDMyKSwgJm1vZGlmaWVycyk7CisgICAgCisgICAgcmV0dXJuIENyZWF0ZU5TRXZl
bnRBZG9wdGluZ0NHRXZlbnQoY2dFdmVudCwgbmV3RXZlbnQpOworfQorCiAvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIC8vIENsaWNrCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAg
LTQ0Myw3ICs1MDUsNyBAQCBHZXRXaW5kb3dSZWYoIEhJV2ViVmlldyogaW5WaWV3ICkKIHN0YXRp
YyBPU1N0YXR1cwogQ2xpY2soSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQpCiB7
Ci0gICAgTlNFdmVudCAqa2l0RXZlbnQgPSBXS0NyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uQ2xpY2tF
dmVudChpbkV2ZW50LCBHZXRXaW5kb3dSZWYoaW5WaWV3KSk7CisgICAgTlNFdmVudCAqa2l0RXZl
bnQgPSBDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkNsaWNrRXZlbnQoaW5FdmVudCwgR2V0V2luZG93
UmVmKGluVmlldykpOwogCiAgICAgaWYgKCFpblZpZXctPmZJc0NvbXBvc2l0ZWQpCiAgICAgICAg
IFN0YXJ0VXBkYXRlT2JzZXJ2ZXIoaW5WaWV3KTsKQEAgLTQ1OCw2ICs1MjAsMTYgQEAgQ2xpY2so
SElXZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQpCiAgICAgcmV0dXJuIG5vRXJyOwog
fQogCitzdGF0aWMgTlNFdmVudCAqCitDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkV2ZW50KCBFdmVu
dFJlZiBpbkV2ZW50ICkKK3sKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IGV2ZW50V2l0
aEV2ZW50UmVmOmluRXZlbnRdOworICAgIGlmICghZXZlbnQpCisgICAgICAgIGV2ZW50ID0gW05T
RXZlbnQgZXZlbnRXaXRoRXZlbnRSZWY6R2V0Q3VycmVudEV2ZW50KCldOworCisgICAgcmV0dXJu
IFtldmVudCByZXRhaW5dOworfQorCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIE1v
dXNlVXAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDY1LDE1ICs1MzcsMzIgQEAg
Q2xpY2soSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQpCiBzdGF0aWMgT1NTdGF0
dXMKIE1vdXNlVXAoIEhJV2ViVmlldyogaW5WaWV3LCBFdmVudFJlZiBpbkV2ZW50ICkKIHsKLQlO
U0V2ZW50KiBraXRFdmVudCA9IFdLQ3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVudChpbkV2ZW50
KTsKKyAgICBOU0V2ZW50KiBraXRFdmVudCA9IENyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZlbnQo
aW5FdmVudCk7CiAKICAgICBbaW5WaWV3LT5mS2l0V2luZG93IHNlbmRFdmVudDpraXRFdmVudF07
Ci0JCisKICAgICBba2l0RXZlbnQgcmVsZWFzZV07Ci0gICAgCisKIAlyZXR1cm4gbm9FcnI7CiB9
CiAKK3N0YXRpYyBOU0V2ZW50ICoKK0NyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uTW91c2VNb3ZlRXZl
bnQoIEV2ZW50UmVmIGluRXZlbnQsIE5TV2luZG93ICp3aW5kb3cgKQoreworICAgIE5TRXZlbnQq
IGtpdEV2ZW50ID0gW05TRXZlbnQgZXZlbnRXaXRoRXZlbnRSZWY6aW5FdmVudF07CisKKyAgICAv
LyBGSVhNRTogV29ya3MgYXJvdW5kIGJ1ZyAzNTg1NjQ0LiBDYW4gcmVtb3ZlIGl0IG9uY2UgdGhh
dCBidWcgaXMgZml4ZWQuCisgICAgLy8gV2UgcHJlZmxpZ2h0IGhlcmUgYW5kIGRvbid0IGRvIGFu
eSB3b3JrIHdoZW4gdGhlIHdpbmRvdyBpcyBhbHJlYWR5IGNvcnJlY3QKKyAgICAvLyBiZWNhdXNl
IF9ldmVudFJlbGF0aXZlVG9XaW5kb3cgd2lsbCBtYWxmdW5jdGlvbiBpZiB0aGUgZXZlbnQncyB3
aW5kb3cgbWV0aG9kCisgICAgLy8gaGFzIGJlZW4gaGlqYWNrZWQgYnkgdGhlIGJ1ZyB3b3JrYXJv
dW5kIHVzZWQgYnkgQ29udHJpYnV0ZS4gSXQncyBmaW5lIHRvIGp1c3QKKyAgICAvLyBsZWF2ZSB0
aGUgZXZlbnQgYWxvbmUgaWYgdGhlIHdpbmRvdyBpcyBhbHJlYWR5IGNvcnJlY3QuCisKKyAgICBp
ZiAoW2tpdEV2ZW50IHdpbmRvd10gIT0gd2luZG93KQorICAgICAgICBraXRFdmVudCA9IFtraXRF
dmVudCBfZXZlbnRSZWxhdGl2ZVRvV2luZG93OndpbmRvd107CisKKyAgICByZXR1cm4gW2tpdEV2
ZW50IHJldGFpbl07Cit9CisKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gTW91c2VN
b3ZlZAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00ODEsNyArNTcwLDcgQEAgTW91
c2VVcCggSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQgKQogc3RhdGljIE9TU3Rh
dHVzCiBNb3VzZU1vdmVkKCBISVdlYlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCApCiB7
Ci0gICAgTlNFdmVudCAqa2l0RXZlbnQgPSBXS0NyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uTW91c2VN
b3ZlRXZlbnQoaW5FdmVudCwgaW5WaWV3LT5mS2l0V2luZG93KTsKKyAgICBOU0V2ZW50ICpraXRF
dmVudCA9IENyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uTW91c2VNb3ZlRXZlbnQoaW5FdmVudCwgaW5W
aWV3LT5mS2l0V2luZG93KTsKICAgICBbaW5WaWV3LT5mS2l0V2luZG93IHNlbmRFdmVudDpraXRF
dmVudF07CiAJW2tpdEV2ZW50IHJlbGVhc2VdOwogCkBAIC00OTUsMTIgKzU4NCwxMiBAQCBNb3Vz
ZU1vdmVkKCBISVdlYlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCApCiBzdGF0aWMgT1NT
dGF0dXMKIE1vdXNlRHJhZ2dlZCggSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQg
KQogewotCU5TRXZlbnQqIGtpdEV2ZW50ID0gV0tDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkV2ZW50
KGluRXZlbnQpOworICAgIE5TRXZlbnQqIGtpdEV2ZW50ID0gQ3JlYXRlTlNFdmVudFdpdGhDYXJi
b25FdmVudChpbkV2ZW50KTsKIAogICAgIFtpblZpZXctPmZLaXRXaW5kb3cgc2VuZEV2ZW50Omtp
dEV2ZW50XTsKIAotCVtraXRFdmVudCByZWxlYXNlXTsKLQkKKyAgICBba2l0RXZlbnQgcmVsZWFz
ZV07CisKIAlyZXR1cm4gbm9FcnI7CiB9CiAKQEAgLTUxMSwxMiArNjAwLDEyIEBAIE1vdXNlRHJh
Z2dlZCggSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQgKQogc3RhdGljIE9TU3Rh
dHVzCiBNb3VzZVdoZWVsTW92ZWQoIEhJV2ViVmlldyogaW5WaWV3LCBFdmVudFJlZiBpbkV2ZW50
ICkKIHsKLQlOU0V2ZW50KiBraXRFdmVudCA9IFdLQ3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVu
dChpbkV2ZW50KTsKKyAgICBOU0V2ZW50KiBraXRFdmVudCA9IENyZWF0ZU5TRXZlbnRXaXRoQ2Fy
Ym9uRXZlbnQoaW5FdmVudCk7CiAKICAgICBbaW5WaWV3LT5mS2l0V2luZG93IHNlbmRFdmVudDpr
aXRFdmVudF07CiAKLQlba2l0RXZlbnQgcmVsZWFzZV07Ci0JCisgICAgW2tpdEV2ZW50IHJlbGVh
c2VdOworCiAJcmV0dXJuIG5vRXJyOwogfQogCkBAIC02ODQsNyArNzczLDcgQEAgV2luZG93SGFu
ZGxlciggRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkNhbGxSZWYsIEV2ZW50UmVmIGluRXZlbnQsIHZv
aWQqIGluVXNlckRhdGEKIAkJCQkJTlNSZXNwb25kZXIqIHJlc3BvbmRlciA9IFtraXRXaW5kb3cg
Zmlyc3RSZXNwb25kZXJdOwogCQkJCQlpZiAoIHJlc3BvbmRlciAhPSBraXRXaW5kb3cgKQogCQkJ
CQl7Ci0gICAgICAgICAgICAgICAgICAgICAgICBraXRFdmVudCA9IFdLQ3JlYXRlTlNFdmVudFdp
dGhDYXJib25FdmVudChpbkV2ZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGtpdEV2ZW50
ID0gQ3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVudChpbkV2ZW50KTsKIAkJCQkJCQogCQkJCQkJ
W2tpdFdpbmRvdyBzZW5kRXZlbnQ6a2l0RXZlbnRdOwogCQkJCQkJW2tpdEV2ZW50IHJlbGVhc2Vd
OwpAQCAtMTI2NSw3ICsxMzU0LDcgQEAgSElXZWJWaWV3RXZlbnRIYW5kbGVyKAogCiAJCWNhc2Ug
a0V2ZW50Q2xhc3NLZXlib2FyZDoKIAkJCXsKLQkJCQlOU0V2ZW50KiBraXRFdmVudCA9IFdLQ3Jl
YXRlTlNFdmVudFdpdGhDYXJib25FdmVudChpbkV2ZW50KTsKKyAgICAgICAgICAgICAgICBOU0V2
ZW50KiBraXRFdmVudCA9IENyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZlbnQoaW5FdmVudCk7CiAJ
CQkJW3ZpZXctPmZLaXRXaW5kb3cgc2VuZFN1cGVyRXZlbnQ6a2l0RXZlbnRdOwogCQkJCVtraXRF
dmVudCByZWxlYXNlXTsKIAkJCQlyZXN1bHQgPSBub0VycjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL01pc2MvUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5oIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvTWlzYy9RdWlja0RyYXdDb21wYXRpYmlsaXR5LmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGNmZjU1M2ZjMGIwM2QzMDU3ODMwOGRhNGUzZWUzZTJiZDRlODhi
YzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvTWlzYy9RdWlja0RyYXdDb21wYXRpYmlsaXR5LmgKKysrIC9kZXYv
bnVsbApAQCAtMSw5MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBRdWlja0RyYXdDb21w
YXRpYmlsaXR5X2gKLSNkZWZpbmUgUXVpY2tEcmF3Q29tcGF0aWJpbGl0eV9oCi0KLSNpZm5kZWYg
X19MUDY0X18KLQotI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgotCi0jaWYgZGVmaW5lZChRRF9I
RUFERVJTX0FSRV9QUklWQVRFKSAmJiBRRF9IRUFERVJTX0FSRV9QUklWQVRFCi0KLSNpZmRlZiBf
X2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotI2RlZmluZSBNYWNTZXRSZWN0IFNl
dFJlY3QKLSNkZWZpbmUgTWFjU2V0UmVjdFJnbiBTZXRSZWN0UmduCi0jZGVmaW5lIE1hY1VuaW9u
UmduIFVuaW9uUmduCi0KLWV4dGVybiBCb29sZWFuIEVtcHR5UmduKFJnbkhhbmRsZSk7Ci1leHRl
cm4gT1NTdGF0dXMgQ3JlYXRlQ0dDb250ZXh0Rm9yUG9ydChDR3JhZlB0ciwgQ0dDb250ZXh0UmVm
Kik7Ci1leHRlcm4gT1NTdGF0dXMgU3luY0NHQ29udGV4dE9yaWdpbldpdGhQb3J0KENHQ29udGV4
dFJlZiwgQ0dyYWZQdHIpOwotZXh0ZXJuIFBpeE1hcEhhbmRsZSBHZXRQb3J0UGl4TWFwKENHcmFm
UHRyKTsKLWV4dGVybiBRREVyciBOZXdHV29ybGRGcm9tUHRyKEdXb3JsZFB0ciosIFVJbnQzMiwg
Y29uc3QgUmVjdCosIENUYWJIYW5kbGUsIEdESGFuZGxlLCBHV29ybGRGbGFncywgUHRyLCBTSW50
MzIpOwotZXh0ZXJuIFJlY3QqIEdldFBvcnRCb3VuZHMoQ0dyYWZQdHIsIFJlY3QqKTsKLWV4dGVy
biBSZWN0KiBHZXRSZWdpb25Cb3VuZHMoUmduSGFuZGxlLCBSZWN0Kik7Ci1leHRlcm4gUmduSGFu
ZGxlIEdldFBvcnRDbGlwUmVnaW9uKENHcmFmUHRyLCBSZ25IYW5kbGUpOwotZXh0ZXJuIFJnbkhh
bmRsZSBHZXRQb3J0VmlzaWJsZVJlZ2lvbihDR3JhZlB0ciwgUmduSGFuZGxlKTsKLWV4dGVybiBS
Z25IYW5kbGUgTmV3UmduKCk7Ci1leHRlcm4gdm9pZCBCYWNrQ29sb3IobG9uZyk7Ci1leHRlcm4g
dm9pZCBEaXNwb3NlR1dvcmxkKEdXb3JsZFB0cik7Ci1leHRlcm4gdm9pZCBEaXNwb3NlUmduKFJn
bkhhbmRsZSk7Ci1leHRlcm4gdm9pZCBGb3JlQ29sb3IobG9uZyk7Ci1leHRlcm4gdm9pZCBHZXRH
V29ybGQoQ0dyYWZQdHIqLCBHREhhbmRsZSopOwotZXh0ZXJuIHZvaWQgR2V0UG9ydChHcmFmUHRy
Kik7Ci1leHRlcm4gdm9pZCBHbG9iYWxUb0xvY2FsKFBvaW50Kik7Ci1leHRlcm4gdm9pZCBNYWNT
ZXRSZWN0KFJlY3QqLCBzaG9ydCwgc2hvcnQsIHNob3J0LCBzaG9ydCk7Ci1leHRlcm4gdm9pZCBN
YWNTZXRSZWN0UmduKFJnbkhhbmRsZSwgc2hvcnQsIHNob3J0LCBzaG9ydCwgc2hvcnQpOwotZXh0
ZXJuIHZvaWQgTWFjVW5pb25SZ24oUmduSGFuZGxlLCBSZ25IYW5kbGUsIFJnbkhhbmRsZSk7Ci1l
eHRlcm4gdm9pZCBNb3ZlUG9ydFRvKHNob3J0LCBzaG9ydCk7Ci1leHRlcm4gdm9pZCBPZmZzZXRS
ZWN0KFJlY3QqLCBzaG9ydCwgc2hvcnQpOwotZXh0ZXJuIHZvaWQgT2Zmc2V0UmduKFJnbkhhbmRs
ZSwgc2hvcnQsIHNob3J0KTsKLWV4dGVybiB2b2lkIFBhaW50UmVjdChjb25zdCBSZWN0Kik7Ci1l
eHRlcm4gdm9pZCBQZW5Ob3JtYWwoKTsKLWV4dGVybiB2b2lkIFBvcnRTaXplKHNob3J0LCBzaG9y
dCk7Ci1leHRlcm4gdm9pZCBSZWN0UmduKFJnbkhhbmRsZSwgY29uc3QgUmVjdCopOwotZXh0ZXJu
IHZvaWQgU2VjdFJnbihSZ25IYW5kbGUsIFJnbkhhbmRsZSwgUmduSGFuZGxlKTsKLWV4dGVybiB2
b2lkIFNldEdXb3JsZChDR3JhZlB0ciwgR0RIYW5kbGUpOwotZXh0ZXJuIHZvaWQgU2V0T3JpZ2lu
KHNob3J0LCBzaG9ydCk7Ci1leHRlcm4gdm9pZCBTZXRQb3J0KEdyYWZQdHIpOwotZXh0ZXJuIHZv
aWQgU2V0UG9ydENsaXBSZWdpb24oQ0dyYWZQdHIsIFJnbkhhbmRsZSk7Ci1leHRlcm4gdm9pZCBT
ZXRQb3J0VmlzaWJsZVJlZ2lvbihDR3JhZlB0ciwgUmduSGFuZGxlKTsKLQotZW51bSB7Ci0gICAg
YmxhY2tDb2xvciA9IDMzLAotICAgIHdoaXRlQ29sb3IgPSAzMCwKLSAgICBncmVlbkNvbG9yID0g
MzQxLAotfTsKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8vIGRl
ZmluZWQoUURfSEVBREVSU19BUkVfUFJJVkFURSkgJiYgUURfSEVBREVSU19BUkVfUFJJVkFURQot
Ci0jZW5kaWYgLy8gX19MUDY0X18KLQotI2VuZGlmIC8vIFF1aWNrRHJhd0NvbXBhdGliaWxpdHlf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2Fw
ZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbi5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1Bs
dWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib24ubW0KaW5kZXggNjg1Njdi
MzM5NGRkODFhZTlmNTE5NzQxODk5NGRiZDI4ZjNlYjI3Yi4uNWE4NjNiODdhNzg3NTg1OGRhMmNl
OGMxMTE0YzI2MDBjOTEwYzlkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
UGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVy
Q2FyYm9uLm1tCkBAIC0zMCw2ICszMCw4IEBACiAjaW1wb3J0ICJXZWJOZXRzY2FwZVBsdWdpblZp
ZXcuaCIKICNpbXBvcnQgIldlYktpdExvZ2dpbmcuaCIKICNpbXBvcnQgIldlYktpdFN5c3RlbUlu
dGVyZmFjZS5oIgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg+CisjaW1wb3J0
IDxwYWwvc3BpL21hYy9OU0V2ZW50U1BJLmg+CiAKIC8vIFNlbmQgbnVsbCBldmVudHMgNTAgdGlt
ZXMgYSBzZWNvbmQgd2hlbiBhY3RpdmUsIHNvIHBsdWctaW5zIGxpa2UgRmxhc2ggZ2V0IGhpZ2gg
ZnJhbWUgcmF0ZXMuCiAjZGVmaW5lIE51bGxFdmVudEludGVydmFsQWN0aXZlICAgICAgICAgMC4w
MgpAQCAtODUsNyArODcsNyBAQCBzdGF0aWMgRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzRm9yRXZl
bnQoTlNFdmVudCAqZXZlbnQpCiAKIHN0YXRpYyB2b2lkIGdldENhcmJvbkV2ZW50KEV2ZW50UmVj
b3JkICpjYXJib25FdmVudCwgTlNFdmVudCAqY29jb2FFdmVudCkKIHsKLSAgICBpZiAoV0tDb252
ZXJ0TlNFdmVudFRvQ2FyYm9uRXZlbnQoY2FyYm9uRXZlbnQsIGNvY29hRXZlbnQpKQorICAgIGlm
IChbY29jb2FFdmVudCBfZXZlbnRSZWZdICYmIENvbnZlcnRFdmVudFJlZlRvRXZlbnRSZWNvcmQo
KEV2ZW50UmVmKVtjb2NvYUV2ZW50IF9ldmVudFJlZl0sIGNhcmJvbkV2ZW50KSkKICAgICAgICAg
cmV0dXJuOwogICAgIAogICAgIE5TUG9pbnQgd2hlcmUgPSBbW2NvY29hRXZlbnQgd2luZG93XSBj
b252ZXJ0QmFzZVRvU2NyZWVuOltjb2NvYUV2ZW50IGxvY2F0aW9uSW5XaW5kb3ddXTsKQEAgLTIx
MCw3ICsyMTIsNyBAQCB2b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjpt
b3VzZU1vdmVkKE5TRXZlbnQqIHRoZUV2ZW50KQogdm9pZCBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50
SGFuZGxlckNhcmJvbjo6a2V5RG93bihOU0V2ZW50ICp0aGVFdmVudCkKIHsKICAgICBtX3N1c3Bl
bmRLZXlVcEV2ZW50cyA9IHRydWU7Ci0gICAgV0tTZW5kS2V5RXZlbnRUb1RTTSh0aGVFdmVudCk7
CisgICAgVFNNUHJvY2Vzc1Jhd0tleUV2ZW50KChFdmVudFJlZilbdGhlRXZlbnQgX2V2ZW50UmVm
XSk7CiB9CiAKIHZvaWQgV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib246OnN5bnRo
ZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKGludCBrZXlDb2RlLCBjaGFyIGNoYXJhY3Rl
cikKQEAgLTIzOCw3ICsyNDAsNyBAQCBzdGF0aWMgVUludDMyIGtleU1lc3NhZ2VGb3JFdmVudChO
U0V2ZW50ICpldmVudCkKICAgICAKIHZvaWQgV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJD
YXJib246OmtleVVwKE5TRXZlbnQqIHRoZUV2ZW50KQogewotICAgIFdLU2VuZEtleUV2ZW50VG9U
U00odGhlRXZlbnQpOworICAgIFRTTVByb2Nlc3NSYXdLZXlFdmVudCgoRXZlbnRSZWYpW3RoZUV2
ZW50IF9ldmVudFJlZl0pOwogICAgIAogICAgIC8vIFRTTSB3b24ndCBzZW5kIGtleVVwIGV2ZW50
cyBzbyB3ZSBoYXZlIHRvIHNlbmQgdGhlbSBvdXJzZWx2ZXMuCiAgICAgLy8gT25seSBzZW5kIGtl
eVVwIGV2ZW50cyBhZnRlciB3ZSByZWNlaXZlIHRoZSBUU00gY2FsbGJhY2sgYmVjYXVzZSB0aGlz
IGlzIHdoYXQgcGx1Zy1pbiBleHBlY3QgZnJvbSBPUyA5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29h
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2
ZW50SGFuZGxlckNvY29hLm1tCmluZGV4IGRlMjAxODlhMzdkYzA5Mjg3ODJlODYxYjJhNjlhMDNj
NzYwOGUxNzguLmNlMjVmMjkwNGFkMjlkYjczYTRlMGNkZjdkNWQwYjNkNDkwZjUwZTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5F
dmVudEhhbmRsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5z
L1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0KQEAgLTI5LDYgKzI5LDggQEAK
IAogI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0ICJXZWJOZXRzY2Fw
ZVBsdWdpblZpZXcuaCIKKyNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oPgorI2lt
cG9ydCA8cGFsL3NwaS9tYWMvTlNFdmVudFNQSS5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgog
CiBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hOjpXZWJOZXRzY2FwZVBsdWdpbkV2
ZW50SGFuZGxlckNvY29hKFdlYk5ldHNjYXBlUGx1Z2luVmlldyogcGx1Z2luVmlldykKQEAgLTEy
OCw3ICsxMzAsNyBAQCB2b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6Omtl
eURvd24oTlNFdmVudCAqZXZlbnQpCiAjaWZuZGVmIF9fTFA2NF9fCiAgICAgLy8gSWYgdGhlIHBs
dWctaW4gZGlkIG5vdCBoYW5kbGUgdGhlIGV2ZW50LCBwYXNzIGl0IG9uIHRvIHRoZSBJbnB1dCBN
YW5hZ2VyLgogICAgIGlmIChyZXR2YWwpCi0gICAgICAgIFdLU2VuZEtleUV2ZW50VG9UU00oZXZl
bnQpOworICAgICAgICBUU01Qcm9jZXNzUmF3S2V5RXZlbnQoKEV2ZW50UmVmKVtldmVudCBfZXZl
bnRSZWZdKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHJldHZhbCk7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5W
aWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdp
blZpZXcubW0KaW5kZXggZjk2MWVmZTFlMjhjNDhiYjY1NGM1MWYzNmNhMDczMjgzY2M0NTdhMS4u
YjA3NzZmY2M5NzExYTkwODU1NmRjM2UzOGY4MTE4ZDg2ZTI4YTM4MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcu
bW0KQEAgLTMwLDcgKzMwLDYgQEAKIAogI2ltcG9ydCAiV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lmgi
CiAKLSNpbXBvcnQgIlF1aWNrRHJhd0NvbXBhdGliaWxpdHkuaCIKICNpbXBvcnQgIldlYkRhdGFT
b3VyY2VJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViRGVmYXVsdFVJRGVsZWdhdGUuaCIKICNpbXBv
cnQgIldlYkZyYW1lSW50ZXJuYWwuaCIKQEAgLTc1LDYgKzc0LDcgQEAKICNpbXBvcnQgPFdlYktp
dExlZ2FjeS9ET01Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV2ViVUlEZWxlZ2F0
ZS5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9RdWlj
a0RyYXdTUEkuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2lt
cG9ydCA8cnVudGltZS9KU0xvY2suaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CkBAIC05
MTUsNyArOTE1LDcgQEAgLSh2b2lkKXRlbGxRdWlja1RpbWVUb0NoaWxsCiAgICAgQ0dyYWZQdHIg
cG9ydCA9IEdldFdpbmRvd1BvcnQod2luZG93UmVmKTsKICAgICA6OlJlY3QgYm91bmRzOwogICAg
IEdldFBvcnRCb3VuZHMocG9ydCwgJmJvdW5kcyk7Ci0gICAgV0tDYWxsRHJhd2luZ05vdGlmaWNh
dGlvbihwb3J0LCAmYm91bmRzKTsKKyAgICBDYWxsRHJhd2luZ05vdGlmaWNhdGlvbnMocG9ydCwg
JmJvdW5kcywga0JpdHNQcm9jKTsKICNlbmRpZiAvKiBOUF9OT19RVUlDS0RSQVcgKi8KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319336</attachid>
            <date>2017-08-29 21:26:58 -0700</date>
            <delta_ts>2017-08-29 22:19:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176087-20170829212658.patch</filename>
            <type>text/plain</type>
            <size>56992</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCAwMTRhMTll
YWU0ZmNhYTAzYzk2NDYwYmRjMjliNDYxYjZhYjUwYTE2Li5kYjdmODRiZGYyYjFjZGIwZmNhMTZm
ODRiNGM4YWE0MzkxYjQ1YTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAog
MjAxNy0wOC0yOSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKKyAgICAgICAgW01h
Y10gVXBzdHJlYW0gQ2FyYm9uLXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDg3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFBB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvRm91
bmRhdGlvblNQSS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMv
TlNXaW5kb3dTUEkuaC4KKyAgICAgICAgKiBwYWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TV2luZG93U1BJLmguCisg
ICAgICAgICogcGFsL3NwaS9tYWMvTlNFdmVudFNQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFj
L05TV2luZG93U1BJLmg6CisgICAgICAgICogcGFsL3NwaS9tYWMvUXVpY2tEcmF3U1BJLmg6IEFk
ZGVkLgorCisyMDE3LTA4LTI5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKwogICAg
ICAgICBbWGNvZGVdIEZpeCB1cCBmaWxlIGFuZCBncm91cCBwYXRocyBpbiBQQUwueGNvZGVwcm9q
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwNzMK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAyZDMyNWU1OTU3MmI4ZTE5OTNiN2JmMTA1NDE1ZmY2ZmY4YmQ0MjVlLi5i
NmY2OGQ5ZWEyMjc5Zjk4YWQyOWVkMTJmNjY2MzM2MGVjMjgwMTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDE3LTA4LTI5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbTWFjXSBVcHN0cmVhbSBDYXJib24tcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzYwODcKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisg
ICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbToKKyAgICAgICAg
KFdlYktpdDo6Y2dXaW5kb3dJRCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6c2NyaXB0Q29k
ZUZyb21DdXJyZW50S2V5Ym9hcmRJbnB1dFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luOjpzZW5kQ29tcGxleFRleHRJbnB1dCk6CisKIDIwMTctMDgtMjkgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyBsb2dpYyBkb2VzIG5vdCB1bmRlcnN0YW5kIGN1c3RvbSBXZWJzaXRlRGF0YSBzdG9yZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggNTBiNjkyOTIyNzM2ODAwMDliNmFmN2QyNjNmMmNkZWJh
NzUyMGYwYS4uMzUwOWY4NmNjZWFkOTdjNzdmYzE2MmRhMmZjMTBmM2QzNjg4MGI5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wOC0yOSAgQW5keSBFc3RlcyAg
PGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gVXBzdHJlYW0gQ2FyYm9uLXJlbGF0
ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFdlYktpdExlZ2FjeS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCiAyMDE3LTA4LTI5ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRA
c29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBVc2UgZmluZF9wYWNrYWdlIGZvciB6bGliCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNGEzMDkxNzNjOTY5MGVlYzdhNjE0NGZiNTM0
YTI0ZjhiOTk4NDJjZi4uYjgzYWRjYmI2ZjgwNzllZTE5OGU2MjQ4ZTc4OWE3MmJiMzc5YWFlZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ2IEBACiAyMDE3LTA4LTI5
ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBbTWFjXSBVcHN0cmVh
bSBDYXJib24tcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwODcKKworICAgICAg
ICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJv
blV0aWxzLm06CisgICAgICAgIChnZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KToKKyAgICAgICAg
KFdlYkluaXRGb3JDYXJib24pOgorICAgICAgICAoUG9vbENsZWFuZXIpOgorICAgICAgICAqIENh
cmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tOgorICAgICAgICAoK1tDYXJib25XaW5kb3dBZGFw
dGVyIGZyYW1lVmlld0NsYXNzRm9yU3R5bGVNYXNrOl0pOgorICAgICAgICAoLVtDYXJib25XaW5k
b3dBZGFwdGVyIGluaXRXaXRoQ2FyYm9uV2luZG93UmVmOnRha2luZ093bmVyc2hpcDpkaXNhYmxl
T3JkZXJpbmc6Y2FyYm9uOl0pOgorICAgICAgICAoLVtDYXJib25XaW5kb3dBZGFwdGVyIF9vbGRQ
bGFjZVdpbmRvdzpdKToKKyAgICAgICAgKC1bQ2FyYm9uV2luZG93QWRhcHRlciBfd2luZG93TW92
ZWRUb1JlY3Q6XSk6CisgICAgICAgICogQ2FyYm9uL0hJVmlld0FkYXB0ZXIubToKKyAgICAgICAg
KiBDYXJib24vSElXZWJWaWV3Lm1tOgorICAgICAgICAoRHJhdyk6CisgICAgICAgIChDcmVhdGVO
U0V2ZW50QWRvcHRpbmdDR0V2ZW50KToKKyAgICAgICAgKENvcHlFdmVudENHRXZlbnQpOgorICAg
ICAgICAoQ3JlYXRlTlNFdmVudFdpdGhDYXJib25DbGlja0V2ZW50KToKKyAgICAgICAgKENsaWNr
KToKKyAgICAgICAgKENyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZlbnQpOgorICAgICAgICAoTW91
c2VVcCk6CisgICAgICAgIChDcmVhdGVOU0V2ZW50V2l0aENhcmJvbk1vdXNlTW92ZUV2ZW50KToK
KyAgICAgICAgKE1vdXNlTW92ZWQpOgorICAgICAgICAoTW91c2VEcmFnZ2VkKToKKyAgICAgICAg
KE1vdXNlV2hlZWxNb3ZlZCk6CisgICAgICAgIChXaW5kb3dIYW5kbGVyKToKKyAgICAgICAgKEhJ
V2ViVmlld0V2ZW50SGFuZGxlcik6CisgICAgICAgICogTWlzYy9RdWlja0RyYXdDb21wYXRpYmls
aXR5Lmg6IFJlbW92ZWQuCisgICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50
SGFuZGxlckNhcmJvbi5tbToKKyAgICAgICAgKGdldENhcmJvbkV2ZW50KToKKyAgICAgICAgKFdl
Yk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjprZXlEb3duKToKKyAgICAgICAgKFdl
Yk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjprZXlVcCk6CisgICAgICAgICogUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tOgorICAgICAgICAoV2Vi
TmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYTo6a2V5RG93bik6CisgICAgICAgICogUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgtW1dlYk5ldHNjYXBlUGx1
Z2luVmlldyB0ZWxsUXVpY2tUaW1lVG9DaGlsbF0pOgorCisyMDE3LTA4LTI5ICBBbmR5IEVzdGVz
ICA8YWVzdGVzQGFwcGxlLmNvbT4KKwogICAgICAgICBbTWFjXSBVcHN0cmVhbSBXS1NldE1ldGFk
YXRhVVJMKCkgZnJvbSBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjA0NgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWZkZTcwYmFmMDU4NzQz
M2Y0NzBhMzNlZmY4YWVmZjhhYWY1MzVlNi4uZmQzZWJjNmMxYWVjNDYyMzNiMjI3OWFhODNlYjMz
Yjg3NmRhMjEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtOTcsNiArOTcsOSBAQAogCQkxQzA5RDA1MzFFMzFDNDQxMDA3MjVG
MTggLyogQ3J5cHRvRGlnZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQzA5RDA1MjFFMzFDNDQxMDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0LmggKi87
IH07CiAJCTFDMDlEMDU2MUUzMUM0NjUwMDcyNUYxOCAvKiBDcnlwdG9EaWdlc3RDb21tb25Dcnlw
dG8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMw
OUQwNTUxRTMxQzQ2NTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAgKi87
IH07CiAJCTFDMDlEMDU4MUUzMUM1N0UwMDcyNUYxOCAvKiBjb25maWcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMDlEMDU3MUUzMUM1N0UwMDcyNUYx
OCAvKiBjb25maWcuaCAqLzsgfTsKKwkJQTEwMjY1ODcxRjU2NzQ2MTAwQjRDODQ0IC8qIEZvdW5k
YXRpb25TUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMDI2NTg2MUY1Njc0NjEwMEI0Qzg0NCAvKiBGb3VuZGF0aW9uU1BJLmggKi87IH07CisJCUEx
MDI2NTg5MUY1Njc0N0EwMEI0Qzg0NCAvKiBISVRvb2xib3hTUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMDI2NTg4MUY1Njc0N0EwMEI0Qzg0NCAv
KiBISVRvb2xib3hTUEkuaCAqLzsgfTsKKwkJQTEwMjY1OEIxRjU2NzQ4QzAwQjRDODQ0IC8qIFF1
aWNrRHJhd1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTEwMjY1OEExRjU2NzQ4QzAwQjRDODQ0IC8qIFF1aWNrRHJhd1NQSS5oICovOyB9OwogCQlB
MUY1NURDRjFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRjU1RENFMUY1NTI4RUMwMEVEQjc1RiAv
KiBNZXRhZGF0YVNQSS5oICovOyB9OwogCQlBMzBENDEyMTFGMEREMEVBMDBCNzE5NTQgLyogS2ls
bFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEz
MEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oICovOyB9OwogCQlBMzBENDEyMjFG
MEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmdOb25lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxs
UmluZ05vbmUuY3BwICovOyB9OwpAQCAtMjA5LDYgKzIxMiw5IEBACiAJCTFDMDlEMDYzMUUzMUVD
MzEwMDcyNUYxOCAvKiBCYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0
aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDNjdDRUEx
MUUzMkVEQTgwMEY4MEYyRSAvKiBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQueGNjb25maWc7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUM2N0NFQTIxRTMyRUUyNjAwRjgwRjJFIC8qIFZlcnNpb24ueGNj
b25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gVmVyc2lvbi54Y2NvbmZpZzsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTEwMjY1ODYxRjU2NzQ2MTAwQjRDODQ0IC8q
IEZvdW5kYXRpb25TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm91bmRh
dGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTAyNjU4ODFGNTY3NDdB
MDBCNEM4NDQgLyogSElUb29sYm94U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEhJVG9vbGJveFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTAyNjU4
QTFGNTY3NDhDMDBCNEM4NDQgLyogUXVpY2tEcmF3U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFF1aWNrRHJhd1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBMUY1NURDRTFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWV0YWRhdGFTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUUx
RjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEtpbGxSaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMEQ0MTFG
MUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZ05vbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gS2lsbFJpbmdOb25lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI4MSw2ICsyODcsNyBAQAogCQkJCTBDMkRBMTIzMUYzQkVCNDkwMERCQzMxNyAv
KiBDRk5TVVJMQ29ubmVjdGlvblNQSS5oICovLAogCQkJCTBDMkRBMTI0MUYzQkVCNDkwMERCQzMx
NyAvKiBDb3JlVGV4dFNQSS5oICovLAogCQkJCTBDMkRBMTI1MUYzQkVCNDkwMERCQzMxNyAvKiBE
YXRhRGV0ZWN0b3JzQ29yZVNQSS5oICovLAorCQkJCUExMDI2NTg2MUY1Njc0NjEwMEI0Qzg0NCAv
KiBGb3VuZGF0aW9uU1BJLmggKi8sCiAJCQkJMEMyREExMjYxRjNCRUI0OTAwREJDMzE3IC8qIElP
UE1MaWJTUEkuaCAqLywKIAkJCQkwQzJEQTEyNzFGM0JFQjQ5MDBEQkMzMTcgLyogSU9QU0xpYlNQ
SS5oICovLAogCQkJCTBDMkRBMTI4MUYzQkVCNDkwMERCQzMxNyAvKiBJT1JldHVyblNQSS5oICov
LApAQCAtMzMxLDYgKzMzOCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwQzc3ODU3MDFGNDUx
MzBGMDBGNEVCQjYgLyogQVZGb3VuZGF0aW9uU1BJLmggKi8sCiAJCQkJMEM3Nzg1NzExRjQ1MTMw
RjAwRjRFQkI2IC8qIERhdGFEZXRlY3RvcnNTUEkuaCAqLywKKwkJCQlBMTAyNjU4ODFGNTY3NDdB
MDBCNEM4NDQgLyogSElUb29sYm94U1BJLmggKi8sCiAJCQkJMEM3Nzg1NzIxRjQ1MTMwRjAwRjRF
QkI2IC8qIExvb2t1cFNQSS5oICovLAogCQkJCTBDNzc4NTczMUY0NTEzMEYwMEY0RUJCNiAvKiBN
ZWRpYVJlbW90ZVNQSS5oICovLAogCQkJCUExRjU1RENFMUY1NTI4RUMwMEVEQjc1RiAvKiBNZXRh
ZGF0YVNQSS5oICovLApAQCAtMzUzLDYgKzM2MSw3IEBACiAJCQkJMEM3Nzg1ODQxRjQ1MTMwRjAw
RjRFQkI2IC8qIE5TV2luZG93U1BJLmggKi8sCiAJCQkJMEM3Nzg1ODUxRjQ1MTMwRjAwRjRFQkI2
IC8qIFBJUFNQSS5oICovLAogCQkJCTBDNzc4NTg2MUY0NTEzMEYwMEY0RUJCNiAvKiBRVEtpdFNQ
SS5oICovLAorCQkJCUExMDI2NThBMUY1Njc0OEMwMEI0Qzg0NCAvKiBRdWlja0RyYXdTUEkuaCAq
LywKIAkJCQkwQzc3ODU4NzFGNDUxMzBGMDBGNEVCQjYgLyogUXVpY2tMb29rTWFjU1BJLmggKi8s
CiAJCQkJMEM3Nzg1ODgxRjQ1MTMwRjAwRjRFQkI2IC8qIFRVQ2FsbFNQSS5oICovLAogCQkJKTsK
QEAgLTQ5OSw3ICs1MDgsOSBAQAogCQkJCTBDNzc4NThBMUY0NTEzMEYwMEY0RUJCNiAvKiBEYXRh
RGV0ZWN0b3JzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxQTFGNDNBNEM3MDAyRUFD
MDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEOUU3MzFF
RUY1QUY2MDBEQkMzMTcgLyogRXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLywKKwkJCQlBMTAy
NjU4NzFGNTY3NDYxMDBCNEM4NDQgLyogRm91bmRhdGlvblNQSS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEM1QUY5MUIxRjQzQTRDNzAwMkVBQzAyIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUExMDI2NTg5MUY1Njc0N0EwMEI0Qzg0NCAvKiBISVRvb2xib3hTUEku
aCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTFGMUYzQkU5RTAwMERCQzMxNyAvKiBJbWFnZUlP
U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0MjFGM0JFQjQ5MDBEQkMzMTcgLyogSU9Q
TUxpYlNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNDMxRjNCRUI0OTAwREJDMzE3IC8q
IElPUFNMaWJTUEkuaCBpbiBIZWFkZXJzICovLApAQCAtNTUxLDYgKzU2Miw3IEBACiAJCQkJMEMy
REExNTYxRjNCRUI0OTAwREJDMzE3IC8qIHB0aHJlYWRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBDNzc4NTlGMUY0NTEzMEYwMEY0RUJCNiAvKiBRVEtpdFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEMyREExNTcxRjNCRUI0OTAwREJDMzE3IC8qIFF1YXJ0ekNvcmVTUEkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUExMDI2NThCMUY1Njc0OEMwMEI0Qzg0NCAvKiBRdWlja0RyYXdTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBDNzc4NUEwMUY0NTEzMEYwMEY0RUJCNiAvKiBRdWlja0xvb2tNYWNT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTIwMUY0M0E0QzcwMDJFQUMwMiAvKiBRdWlj
a0xvb2tTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU4MUYzQkVCNDkwMERCQzMxNyAv
KiBTZXJ2ZXJzU1BJLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NvY29hL0ZvdW5kYXRpb25TUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NvY29hL0ZvdW5kYXRpb25TUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODQxNzVkMTJiOWUzYzdi
ZGYyNmQyZWJiNTMwMzY4ZWE3N2VlZTBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY29jb2EvRm91bmRhdGlvblNQSS5oCkBAIC0wLDAgKzEsNDEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisK
KyNpbmNsdWRlIDxGb3VuZGF0aW9uL05TUHJpdmF0ZURlY2xzLmg+CisKKyNlbmRpZgorCit0eXBl
ZGVmIHZvaWQqIE5TQXV0b3JlbGVhc2VQb29sTWFyazsKKworV1RGX0VYVEVSTl9DX0JFR0lOCisK
K05TQXV0b3JlbGVhc2VQb29sTWFyayBOU1B1c2hBdXRvcmVsZWFzZVBvb2woTlNVSW50ZWdlciBj
YXBhY2l0eSk7Cit2b2lkIE5TUG9wQXV0b3JlbGVhc2VQb29sKE5TQXV0b3JlbGVhc2VQb29sTWFy
ayk7CisKK1dURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21h
Yy9ISVRvb2xib3hTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTA4NmQ1MWUyYzgzY2NiNmUxMjk2OWY1Y2Y1
OTQ0Y2JjMDQzODVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvbWFjL0hJVG9vbGJveFNQSS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbmNsdWRlIDxISVRv
b2xib3gvSElUb29sYm94UHJpdi5oPgorCisjZW5kaWYKKwordHlwZWRlZiBzdHJ1Y3QgX19UU01J
bnB1dFNvdXJjZSogVFNNSW5wdXRTb3VyY2VSZWY7CisKK1dURl9FWFRFUk5fQ19CRUdJTgorCitP
U1N0YXR1cyBfU3luY1dpbmRvd1dpdGhDR0FmdGVyTW92ZShXaW5kb3dSZWYpOworQ0dXaW5kb3dJ
RCBHZXROYXRpdmVXaW5kb3dGcm9tV2luZG93UmVmKFdpbmRvd1JlZik7CitPU1N0YXR1cyBUU01Q
cm9jZXNzUmF3S2V5RXZlbnQoRXZlbnRSZWYpOworRXZlbnRSZWYgR2V0Q3VycmVudEV2ZW50KCk7
CisKK1dURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL21hYy9OU0V2ZW50U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNF
dmVudFNQSS5oCmluZGV4IDg1NzdjZTU4M2VhMWMyMjhkNDRjYmYyNDg1NWY3MGZjZGNmMmYxMTgu
LmMxNjBiODRmMjNmODBhOThjOGYxNTFiM2FlZGFiNDBmOThmYjFjZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU0V2ZW50U1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvbWFjL05TRXZlbnRTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsNiArMjcsOCBAQAogCiAjaWYg
UExBVEZPUk0oTUFDKQogCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiAjaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKIAogI2ltcG9ydCA8QXBwS2l0L05TRXZlbnRfUHJpdmF0ZS5oPgpAQCAt
MzcsNiArMzksMTQgQEAgZW51bSB7CiAgICAgTlNFdmVudFN3aXBlVHJhY2tpbmdDb25zdW1lTW91
c2VFdmVudHMgPSAweDEgPDwgMgogfTsKIAorQGludGVyZmFjZSBOU0V2ZW50ICgpCistIChudWxs
YWJsZSBOU0V2ZW50ICopX2luaXRXaXRoQ0dFdmVudDoobnVsbGFibGUgQ0dFdmVudFJlZiljZ0V2
ZW50IGV2ZW50UmVmOihudWxsYWJsZSB2b2lkKilldmVudFJlZjsKKy0gKG51bGxhYmxlIHZvaWQq
KV9ldmVudFJlZiBOU19SRVRVUk5TX0lOTkVSX1BPSU5URVI7CistIChOU0V2ZW50ICopX2V2ZW50
UmVsYXRpdmVUb1dpbmRvdzooTlNXaW5kb3cgKil3aW5kb3c7CitAZW5kCisKICNlbmRpZgogCitO
U19BU1NVTUVfTk9OTlVMTF9FTkQKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL21hYy9OU1dpbmRvd1NQSS5oCmluZGV4IDAyYzMzZjcxMzU1N2VhZGM1ZDA2MTI3ZDk5Mjkw
N2E2NjY0YzI2NmQuLmJhYjg0MDBmMDQ5ZDk0YjkyZGVmZWE5YWU5NTMxNjJmZjIxNTg5NDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1dpbmRvd1NQSS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1dpbmRvd1NQSS5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQxLDYgKzQx
LDEwIEBACiAKIEBlbmQKIAorZW51bSB7CisgICAgX05TQ2FyYm9uV2luZG93TWFzayA9IDEgPDwg
MjUsCit9OworCiAjZW5kaWYKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9RdWlja0RyYXdTUEkuaCBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9RdWlja0RyYXdTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODFlOWE3
OWNhYWE2YjU0YjI4ZWExYzE4YWJiM2UxODY5NTdkOWY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL1F1aWNrRHJhd1NQSS5oCkBAIC0wLDAgKzEsODkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWZuZGVmIF9fTFA2NF9fCisK
KyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW5jbHVkZSA8UUQvUXVpY2tkcmF3UHJp
di5oPgorCisjZWxzZQorCisjZGVmaW5lIE1hY1NldFJlY3QgU2V0UmVjdAorI2RlZmluZSBNYWNT
ZXRSZWN0UmduIFNldFJlY3RSZ24KKyNkZWZpbmUgTWFjVW5pb25SZ24gVW5pb25SZ24KKworZW51
bSB7CisgICAgYmxhY2tDb2xvciA9IDMzLAorICAgIHdoaXRlQ29sb3IgPSAzMCwKKyAgICBncmVl
bkNvbG9yID0gMzQxLAorfTsKKworI2VuZGlmCisKK3R5cGVkZWYgbG9uZyBRRERyYXdpbmdUeXBl
OworCitXVEZfRVhURVJOX0NfQkVHSU4KKworQm9vbGVhbiBFbXB0eVJnbihSZ25IYW5kbGUpOwor
T1NTdGF0dXMgQ3JlYXRlQ0dDb250ZXh0Rm9yUG9ydChDR3JhZlB0ciwgQ0dDb250ZXh0UmVmKik7
CitPU1N0YXR1cyBTeW5jQ0dDb250ZXh0T3JpZ2luV2l0aFBvcnQoQ0dDb250ZXh0UmVmLCBDR3Jh
ZlB0cik7CitQaXhNYXBIYW5kbGUgR2V0UG9ydFBpeE1hcChDR3JhZlB0cik7CitRREVyciBOZXdH
V29ybGRGcm9tUHRyKEdXb3JsZFB0ciosIFVJbnQzMiwgY29uc3QgUmVjdCosIENUYWJIYW5kbGUs
IEdESGFuZGxlLCBHV29ybGRGbGFncywgUHRyLCBTSW50MzIpOworUmVjdCogR2V0UG9ydEJvdW5k
cyhDR3JhZlB0ciwgUmVjdCopOworUmVjdCogR2V0UmVnaW9uQm91bmRzKFJnbkhhbmRsZSwgUmVj
dCopOworUmduSGFuZGxlIEdldFBvcnRDbGlwUmVnaW9uKENHcmFmUHRyLCBSZ25IYW5kbGUpOwor
UmduSGFuZGxlIEdldFBvcnRWaXNpYmxlUmVnaW9uKENHcmFmUHRyLCBSZ25IYW5kbGUpOworUmdu
SGFuZGxlIE5ld1JnbigpOwordm9pZCBCYWNrQ29sb3IobG9uZyk7Cit2b2lkIENhbGxEcmF3aW5n
Tm90aWZpY2F0aW9ucyhDR3JhZlB0ciwgY29uc3QgUmVjdCosIFFERHJhd2luZ1R5cGUpOwordm9p
ZCBEaXNwb3NlR1dvcmxkKEdXb3JsZFB0cik7Cit2b2lkIERpc3Bvc2VSZ24oUmduSGFuZGxlKTsK
K3ZvaWQgRm9yZUNvbG9yKGxvbmcpOwordm9pZCBHZXRHV29ybGQoQ0dyYWZQdHIqLCBHREhhbmRs
ZSopOwordm9pZCBHZXRQb3J0KEdyYWZQdHIqKTsKK3ZvaWQgR2xvYmFsVG9Mb2NhbChQb2ludCop
Owordm9pZCBNYWNTZXRSZWN0KFJlY3QqLCBzaG9ydCwgc2hvcnQsIHNob3J0LCBzaG9ydCk7Cit2
b2lkIE1hY1NldFJlY3RSZ24oUmduSGFuZGxlLCBzaG9ydCwgc2hvcnQsIHNob3J0LCBzaG9ydCk7
Cit2b2lkIE1hY1VuaW9uUmduKFJnbkhhbmRsZSwgUmduSGFuZGxlLCBSZ25IYW5kbGUpOwordm9p
ZCBNb3ZlUG9ydFRvKHNob3J0LCBzaG9ydCk7Cit2b2lkIE9mZnNldFJlY3QoUmVjdCosIHNob3J0
LCBzaG9ydCk7Cit2b2lkIE9mZnNldFJnbihSZ25IYW5kbGUsIHNob3J0LCBzaG9ydCk7Cit2b2lk
IFBhaW50UmVjdChjb25zdCBSZWN0Kik7Cit2b2lkIFBlbk5vcm1hbCgpOwordm9pZCBQb3J0U2l6
ZShzaG9ydCwgc2hvcnQpOwordm9pZCBSZWN0UmduKFJnbkhhbmRsZSwgY29uc3QgUmVjdCopOwor
dm9pZCBTZWN0UmduKFJnbkhhbmRsZSwgUmduSGFuZGxlLCBSZ25IYW5kbGUpOwordm9pZCBTZXRH
V29ybGQoQ0dyYWZQdHIsIEdESGFuZGxlKTsKK3ZvaWQgU2V0T3JpZ2luKHNob3J0LCBzaG9ydCk7
Cit2b2lkIFNldFBvcnQoR3JhZlB0cik7Cit2b2lkIFNldFBvcnRDbGlwUmVnaW9uKENHcmFmUHRy
LCBSZ25IYW5kbGUpOwordm9pZCBTZXRQb3J0VmlzaWJsZVJlZ2lvbihDR3JhZlB0ciwgUmduSGFu
ZGxlKTsKKworV1RGX0VYVEVSTl9DX0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJL
aXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQppbmRleCA1MjljNGI1MzM5
YTFjODg0ZDI1ZTBlMmI0ZTBiNTA5MmVhMjlkNDE4Li5kZDUzMzcwMjQ3ZjBhNmI3NGEwMWJmY2M4
YWE5NmZhNmZmZjM0NDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3Mv
bWFjL1BsdWdpblByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNz
L21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbXBvcnQgPG1hY2gvbWFjaF92bS5oPgogI2ltcG9y
dCA8bWFjaC92bV9zdGF0aXN0aWNzLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KKyNpbXBv
cnQgPHBhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oPgogI2ltcG9ydCA8c3lzZXhpdHMuaD4KICNp
bXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAg
LTk2LDcgKzk3LDcgQEAgc3RhdGljIGJvb2wgd2luZG93Q292ZXJzQW55U2NyZWVuKFdpbmRvd1Jl
ZiB3aW5kb3cpCiAKIHN0YXRpYyBDR1dpbmRvd0lEIGNnV2luZG93SUQoV2luZG93UmVmIHdpbmRv
dykKIHsKLSAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDR1dpbmRvd0lEPihXS0dldE5hdGl2
ZVdpbmRvd0Zyb21XaW5kb3dSZWYod2luZG93KSk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8Q0dXaW5kb3dJRD4oR2V0TmF0aXZlV2luZG93RnJvbVdpbmRvd1JlZih3aW5kb3cpKTsKIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KaW5kZXggMjAxYjNk
Y2Q4Mzk5NDg2YjhlNGUyZDkwYzc1OWYyYTk1MWVkNDMyOS4uYTMxMjBlNjI1MzgzYmViMmFmNzA3
MDI3MGY0N2Y4NTg5OTMwYzIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5t
bQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zNyw2ICszNyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1w
b3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgor
I2ltcG9ydCA8cGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIApAQCAtOTg4LDYg
Kzk4OSwyMSBAQCBzdGF0aWMgYm9vbCBjb252ZXJ0U3RyaW5nVG9LZXlDb2RlcyhTdHJpbmdWaWV3
IHN0cmluZywgU2NyaXB0Q29kZSBzY3JpcHRDb2RlLCBWZQogfQogI2VuZGlmCiAKKyNpZm5kZWYg
TlBfTk9fQ0FSQk9OCitzdGF0aWMgU2NyaXB0Q29kZSBzY3JpcHRDb2RlRnJvbUN1cnJlbnRLZXli
b2FyZElucHV0U291cmNlKCkKK3sKKyAgICBTY3JpcHRDb2RlIHNjcmlwdENvZGUgPSBzbVJvbWFu
OworICAgIGF1dG8gaW5wdXRTb3VyY2UgPSBhZG9wdENGKFRJU0NvcHlDdXJyZW50S2V5Ym9hcmRJ
bnB1dFNvdXJjZSgpKTsKKworICAgIENGVHlwZVJlZiBzY3JpcHRDb2RlTnVtYmVyID0gVFNNR2V0
SW5wdXRTb3VyY2VQcm9wZXJ0eSgoVFNNSW5wdXRTb3VyY2VSZWYpaW5wdXRTb3VyY2UuZ2V0KCks
IGtUU01JbnB1dFNvdXJjZVByb3BlcnR5U2NyaXB0Q29kZSk7CisgICAgQVNTRVJUKENGR2V0VHlw
ZUlEKHNjcmlwdENvZGVOdW1iZXIpID09IENGTnVtYmVyR2V0VHlwZUlEKCkpOworICAgIGlmIChz
Y3JpcHRDb2RlTnVtYmVyKQorICAgICAgICBDRk51bWJlckdldFZhbHVlKChDRk51bWJlclJlZilz
Y3JpcHRDb2RlTnVtYmVyLCBrQ0ZOdW1iZXJTSW50MTZUeXBlLCAmc2NyaXB0Q29kZSk7CisKKyAg
ICByZXR1cm4gc2NyaXB0Q29kZTsKK30KKyNlbmRpZgorCiB2b2lkIE5ldHNjYXBlUGx1Z2luOjpz
ZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKIHsKICAgICBpZiAo
IW1fcGx1Z2luV2FudHNMZWdhY3lDb2NvYVRleHRJbnB1dCkgewpAQCAtMTAxMSw3ICsxMDI3LDcg
QEAgdm9pZCBOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5n
JiB0ZXh0SW5wdXQpCiAgICAgfQogI2lmbmRlZiBOUF9OT19DQVJCT04KICAgICBjYXNlIE5QRXZl
bnRNb2RlbENhcmJvbjogewotICAgICAgICBTY3JpcHRDb2RlIHNjcmlwdENvZGUgPSBXS0dldFNj
cmlwdENvZGVGcm9tQ3VycmVudEtleWJvYXJkSW5wdXRTb3VyY2UoKTsKKyAgICAgICAgU2NyaXB0
Q29kZSBzY3JpcHRDb2RlID0gc2NyaXB0Q29kZUZyb21DdXJyZW50S2V5Ym9hcmRJbnB1dFNvdXJj
ZSgpOwogICAgICAgICBWZWN0b3I8VUludDg+IGtleUNvZGVzOwogCiAgICAgICAgIGlmICghY29u
dmVydFN0cmluZ1RvS2V5Q29kZXModGV4dElucHV0LCBzY3JpcHRDb2RlLCBrZXlDb2RlcykpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJLaXRMZWdhY3kueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBkNGJlZWVhZGVmMWE3ODhhNDkyNGE0YjYwOTE5NGM3MjQz
N2QwZGVjLi5jMjI0MzA1OTZkNjU5MjMzM2NjZGMzNWU2MDk4NDk2MTZiZDcwZTQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE0OSw3ICsxNDksNiBAQAogCQk1OThBRDkyODEyMDFDRjMyMDBB
QkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OThBRDkyNzEyMDFDRjMyMDBBQkFF
NEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW0gKi87IH07CiAJCTU5OEFE
OTJBMTIwMUNGM0IwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9ja0lu
dGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
OThBRDkyOTEyMDFDRjNCMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1v
Y2tJbnRlcm5hbC5oICovOyB9OwogCQk1OThBREE0NjEyMDIyNzUwMDBBQkFFNEUgLyogV2ViRGV2
aWNlT3JpZW50YXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTk4QURBNDUxMjAyMjc1MDAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQk1Qzc3MDY3MjFEMTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0aWJp
bGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3
NzA2NzExRDExMUIyMjAwMTI3MDBGIC8qIFF1aWNrRHJhd0NvbXBhdGliaWxpdHkuaCAqLzsgfTsK
IAkJNUQ3QkY4MTQwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQ3QkY4MTIwQzJBMUQ5MDAwOENF
MDZEIC8qIFdlYkluc3BlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTVEN0JGODE1MEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNwZWN0b3Iu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDdCRjgx
MzBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLm1tICovOyB9OwogCQk1REU4M0E3QTBE
MEY3Rjk0MDBDQUQxMkEgLyogV2ViSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsLm5pYiBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNURFODNBNzQwRDBGN0Y5
NDAwQ0FEMTJBIC8qIFdlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5uaWIgKi87IH07CkBAIC0z
MTksNyArMzE4LDYgQEAKIAkJOTM5ODEwRkYwODI0QkYwMTAwOERGMDM4IC8qIENhcmJvbldpbmRv
d0ZyYW1lLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
N0VCRUU5NTAzRjlEQkExMDNDQTBERTYgLyogQ2FyYm9uV2luZG93RnJhbWUubSAqLzsgfTsKIAkJ
OTM5ODExMDAwODI0QkYwMTAwOERGMDM4IC8qIEhJVmlld0FkYXB0ZXIubSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY3RUJFRTlCMDNGOURCQTEwM0NBMERF
NiAvKiBISVZpZXdBZGFwdGVyLm0gKi87IHNldHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1X
bm8tZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiOyB9OyB9OwogCQk5Mzk4MTEwMTA4MjRCRjAxMDA4
REYwMzggLyogQ2FyYm9uVXRpbHMubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY3OUI5NzQ5MDQwMTk5MzQwMzY5MDlEMiAvKiBDYXJib25VdGlscy5tICov
OyB9OwotCQk5Mzk4MTEwMjA4MjRCRjAxMDA4REYwMzggLyogSElXZWJWaWV3Lm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjdFQkVFQUIwM0Y5REJBMTAz
Q0EwREU2IC8qIEhJV2ViVmlldy5tbSAqLzsgc2V0dGluZ3MgPSB7Q09NUElMRVJfRkxBR1MgPSAi
LVduby1kZXByZWNhdGVkLWRlY2xhcmF0aW9ucyI7IH07IH07CiAJCTkzOTgxMTAzMDgyNEJGMDEw
MDhERjAzOCAvKiBXZWJLaXRFcnJvcnMubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzNzMwRjk4MDNGQjFFNjYwMDA0NzM2RSAvKiBXZWJLaXRFcnJvcnMu
bSAqLzsgfTsKIAkJOTM5ODExMDYwODI0QkYwMTAwOERGMDM4IC8qIFdlYkZyYW1lVmlldy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQThCNTJGMDQy
ODJCNTkwMENBMkQzQSAvKiBXZWJGcmFtZVZpZXcubW0gKi87IH07CiAJCTkzOTgxMTA3MDgyNEJG
MDEwMDhERjAzOCAvKiBXZWJWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTFBOEI1N0EwNDI4MzRGNzAwQ0EyRDNBIC8qIFdlYlZpZXcubW0gKi87
IH07CkBAIC02ODAsNiArNjc4LDcgQEAKIAkJOTNFQjE3OEQwOUY4OEQ0NjAwOTFGOEZGIC8qIFdl
YlN5c3RlbUludGVyZmFjZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzRUIxNzhDMDlGODhENDYwMDkxRjhGRiAvKiBXZWJTeXN0ZW1JbnRlcmZhY2Uu
bW0gKi87IH07CiAJCTkzRUIxNzhGMDlGODhENTEwMDkxRjhGRiAvKiBXZWJTeXN0ZW1JbnRlcmZh
Y2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRUIx
NzhFMDlGODhENTEwMDkxRjhGRiAvKiBXZWJTeXN0ZW1JbnRlcmZhY2UuaCAqLzsgfTsKIAkJOTNG
REU5MzMwRDc5Q0FGMzAwNzRGMDI5IC8qIFdlYkhpc3RvcnlJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGREU5MzIwRDc5Q0FGMzAwNzRG
MDI5IC8qIFdlYkhpc3RvcnlJbnRlcm5hbC5oICovOyB9OworCQlBMTAyNjU4MzFGNTY1NDAzMDBC
NEM4NDQgLyogSElXZWJWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTEwMjY1ODIxRjU2NTQwMzAwQjRDODQ0IC8qIEhJV2ViVmlldy5tbSAqLzsg
fTsKIAkJQTEwQzFEMTgxODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGb3JtRGVsZWdhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMEMxRDEw
MTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLmggKi87IH07CiAJCUEx
MEMxRDE5MTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLm0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBDMUQxMTE4MjAyRjlD
MDAzNjg4M0EgLyogV2ViRGVmYXVsdEZvcm1EZWxlZ2F0ZS5tICovOyB9OwogCQlBMTBDMUQxQTE4
MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVmYXVsdEZyYW1lTG9hZERlbGVnYXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBDMUQxMjE4MjAyRjlDMDAz
Njg4M0EgLyogV2ViRGVmYXVsdEZyYW1lTG9hZERlbGVnYXRlLmggKi87IH07CkBAIC05ODgsNyAr
OTg3LDYgQEAKIAkJNTk4QUQ5MjcxMjAxQ0YzMjAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJNb2NrLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU5OEFEOTI5MTIwMUNGM0IwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyTW9ja0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrSW50ZXJuYWwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk4QURBNDUxMjAyMjc1MDAwQUJBRTRFIC8qIFdlYkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk1Qzc3MDY3MTFEMTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWlja0RyYXdDb21wYXRpYmlsaXR5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEN0JGODEyMEMyQTFEOTAwMDhDRTA2
RCAvKiBXZWJJbnNwZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
Ykluc3BlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDdCRjgxMzBDMkEx
RDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdlYkluc3BlY3Rvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNURFODNBNzUwRDBGN0Y5NDAwQ0FEMTJBIC8qIEVuZ2xpc2ggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLm5pYjsgbmFtZSA9IEVu
Z2xpc2g7IHBhdGggPSBFbmdsaXNoLmxwcm9qL1dlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5u
aWI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTE0MjAsNiArMTQxOCw3IEBACiAJ
CTkzRkRFOTMyMEQ3OUNBRjMwMDc0RjAyOSAvKiBXZWJIaXN0b3J5SW50ZXJuYWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSGlzdG9yeUludGVybmFsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlDQUU5RDA3MDI1MkE0MTMwRUNBMTZFQSAvKiBXZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTlDRjBFMjQ5MDIxMzYxQjAwRUNB
MTZFQSAvKiBXZWJGcmFtZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGcmFtZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CisJCUExMDI2NTgyMUY1NjU0MDMw
MEI0Qzg0NCAvKiBISVdlYlZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBISVdlYlZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEMx
RDEwMTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkRlZmF1bHRGb3JtRGVsZWdhdGUuaDsgcGF0aCA9
IGlvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRGb3JtRGVsZWdhdGUuaDsgc291cmNlVHJl
ZSA9IFNPVVJDRV9ST09UOyB9OwogCQlBMTBDMUQxMTE4MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVm
YXVsdEZvcm1EZWxlZ2F0ZS5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IG5hbWUgPSBX
ZWJEZWZhdWx0Rm9ybURlbGVnYXRlLm07IHBhdGggPSBpb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJE
ZWZhdWx0Rm9ybURlbGVnYXRlLm07IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJQTEw
QzFEMTIxODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGcmFtZUxvYWREZWxlZ2F0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJEZWZhdWx0RnJhbWVMb2FkRGVsZWdh
dGUuaDsgcGF0aCA9IGlvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRGcmFtZUxvYWREZWxl
Z2F0ZS5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CkBAIC0xNTk3LDcgKzE1OTYsNiBA
QAogCQlGN0VCRUU5QTAzRjlEQkExMDNDQTBERTYgLyogSElWaWV3QWRhcHRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBISVZpZXdBZGFwdGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwogCQlGN0VCRUU5QjAzRjlEQkExMDNDQTBERTYgLyogSElWaWV3QWRhcHRlci5tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IHBhdGggPSBISVZpZXdBZGFw
dGVyLm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQlGN0VCRUVBQTAzRjlEQkExMDNDQTBERTYgLyogSElXZWJWaWV3LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhJV2ViVmlldy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJ
RjdFQkVFQUIwM0Y5REJBMTAzQ0EwREU2IC8qIEhJV2ViVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBm
aWxlRW5jb2RpbmcgPSAzMDsgcGF0aCA9IEhJV2ViVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdXNlc1RhYnMgPSAwOyB9OwogCQlGODM0QUFENTBFNjRCMUM3MDBFMjczN0MgLyogV2Vi
VGV4dEl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlRleHRJ
dGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGODM0QUFENjBFNjRCMUM3
MDBFMjczN0MgLyogV2ViVGV4dEl0ZXJhdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV2ViVGV4dEl0ZXJhdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGOENBMTVCNTAyOUEzOUQ5MDEwMDAxMjIgLyogV2ViQXV0aGVudGljYXRpb25QYW5l
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTc2OSw3ICsxNzY3LDYgQEAKIAkJCWNoaWxkcmVu
ID0gKAogCQkJCUExMEMxRDIwMTgyMDJGQUYwMDM2ODgzQSAvKiBpb3MgKi8sCiAJCQkJMjlBRUY5
NUQxMzRDNzU1NDAwRkU1MDk2IC8qIE91dGxvb2tRdWlya3NVc2VyU2NyaXB0LmpzICovLAotCQkJ
CTVDNzcwNjcxMUQxMTFCMjIwMDEyNzAwRiAvKiBRdWlja0RyYXdDb21wYXRpYmlsaXR5LmggKi8s
CiAJCQkJNTI0MUFERjMwQjFCQzQ4QTAwNDAxMkJEIC8qIFdlYkNhY2hlLmggKi8sCiAJCQkJNTI0
MUFERjQwQjFCQzQ4QTAwNDAxMkJEIC8qIFdlYkNhY2hlLm1tICovLAogCQkJCUY1OUVBRTNFMDI1
M0M3RUUwMTg2MzVDQSAvKiBXZWJDb3JlU3RhdGlzdGljcy5oICovLApAQCAtMjY3Miw3ICsyNjY5
LDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJRjdFQkVFQUEw
M0Y5REJBMTAzQ0EwREU2IC8qIEhJV2ViVmlldy5oICovLAotCQkJCUY3RUJFRUFCMDNGOURCQTEw
M0NBMERFNiAvKiBISVdlYlZpZXcubW0gKi8sCisJCQkJQTEwMjY1ODIxRjU2NTQwMzAwQjRDODQ0
IC8qIEhJV2ViVmlldy5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gIkMgQVBJIjsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yOTM2LDcgKzI5MzMsNiBAQAogCQkJCTdDMDFDQjg1MTcz
NDM1QzkwMEM1RDgwNyAvKiBQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMkRC
RTlGMEYyNTFFM0EwMDM2RjhBNiAvKiBQcm94eUluc3RhbmNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMTY5ODM2MjExMzQ2RDFCMDA4OTQxMTUgLyogUHJveHlSdW50aW1lT2JqZWN0LmggaW4gSGVh
ZGVycyAqLywKLQkJCQk1Qzc3MDY3MjFEMTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0
aWJpbGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEwQzFENjIxODIwMzAwRTAwMzY4ODNBIC8q
IFNlYXJjaFBvcHVwTWVudUlPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MwMUNCODcxNzM0MzVD
OTAwQzVEODA3IC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2
QjMxMzIxQTUxRjNBOTAwNDIyOTc1IC8qIFN0b3JhZ2VBcmVhSW1wbC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNTEzLDcgKzM1MDksNyBAQAogCQkJCTkzRDQzNzlBMUQ1N0FCRUYwMEFCODVFQSAvKiBF
eGNlcHRpb25IYW5kbGVycy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNjA1MTkzMTc1MDJBNUQw
MEJDNjJGNSAvKiBIaXN0b3J5UHJvcGVydHlMaXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5
ODExMDAwODI0QkYwMTAwOERGMDM4IC8qIEhJVmlld0FkYXB0ZXIubSBpbiBTb3VyY2VzICovLAot
CQkJCTkzOTgxMTAyMDgyNEJGMDEwMDhERjAzOCAvKiBISVdlYlZpZXcubW0gaW4gU291cmNlcyAq
LywKKwkJCQlBMTAyNjU4MzFGNTY1NDAzMDBCNEM4NDQgLyogSElXZWJWaWV3Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUE4REVENTEwRUU4OEI4QTAwRjI1MDIyIC8qIEhvc3RlZE5ldHNjYXBlUGx1
Z2luU3RyZWFtLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEwQzFEMzMxODIwMkZDNTAwMzY4ODNB
IC8qIE1lbW9yeU1lYXN1cmUubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUFGNUNFQjBFRERFMUZF
MDA4RDg4M0QgLyogTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbSBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvblV0aWxzLm0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uVXRpbHMubQppbmRleCBjNTg2
MjNkNDA3MWRlYjg0NzhmMjA5ZWNiODg3ZGIzZTJlZWM2ODUxLi5mYWQyZjYwZmVkN2RiNDE4MzE0
NGIzZjI5OTczOTk0ZTMyY2UwYWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DYXJib24vQ2FyYm9uVXRpbHMubQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJi
b24vQ2FyYm9uVXRpbHMubQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
NS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ2FyYm9uVXRpbHMu
aCIKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8cGFsL3NwaS9j
b2NvYS9Gb3VuZGF0aW9uU1BJLmg+CiAKIGV4dGVybiBDR0ltYWdlUmVmIF9OU0NyZWF0ZUltYWdl
UmVmKCB1bnNpZ25lZCBjaGFyICpjb25zdCBiaXRtYXBEYXRhWzVdLCBpbnQgcGl4ZWxzV2lkZSwg
aW50IHBpeGVsc0hpZ2gsIGludCBiaXRzUGVyU2FtcGxlLCBpbnQgc2FtcGxlc1BlclBpeGVsLCBp
bnQgYml0c1BlclBpeGVsLCBpbnQgYnl0ZXNQZXJSb3csIEJPT0wgaXNQbGFuYXIsIEJPT0wgaGFz
QWxwaGEsIE5TU3RyaW5nICpjb2xvclNwYWNlTmFtZSwgQ0dDb2xvclNwYWNlUmVmIGN1c3RvbUNv
bG9yU3BhY2UsIGlkIHNvdXJjZU9iaik7CiAKQEAgLTQxLDYgKzQyLDE0IEBACiAKIHZvaWQgICAg
ICAgICAgICAgICAgICAgIEhJV2ViVmlld1JlZ2lzdGVyQ2xhc3MoIHZvaWQgKTsKIAorc3RhdGlj
IHVuc2lnbmVkIGdldE5TQXV0b3JlbGVhc2VQb29sQ291bnQodm9pZCkKK3sKKyAgICB2b2lkKiB2
ID0gTlNQdXNoQXV0b3JlbGVhc2VQb29sKDApOworICAgIHVpbnRwdHJfdCBudW1Qb29scyA9ICh1
aW50cHRyX3QpdjsKKyAgICBOU1BvcEF1dG9yZWxlYXNlUG9vbCh2KTsKKyAgICByZXR1cm4gbnVt
UG9vbHM7Cit9CisKIHZvaWQKIFdlYkluaXRGb3JDYXJib24oKQogewpAQCAtNTYsNyArNjUsNyBA
QAogICAgICAgICBOU0FwcGxpY2F0aW9uTG9hZCgpOwogICAgICAgICAgICAgICAgIAogICAgICAg
ICBzUG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NXaXRoWm9uZTpOVUxMXSBpbml0XTsK
LSAgICAgICAgbnVtUG9vbHMgPSBXS0dldE5TQXV0b3JlbGVhc2VQb29sQ291bnQoKTsKKyAgICAg
ICAgbnVtUG9vbHMgPSBnZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KCk7CiAgICAgICAgIAogICAg
ICAgICBwb29sTG9vcCA9IEdldEN1cnJlbnRFdmVudExvb3AgKCk7CiAKQEAgLTgyLDEyICs5MSwx
MiBAQAogICAgICAgICBDRlN0cmluZ1JlZiBtb2RlID0gQ0ZSdW5Mb29wQ29weUN1cnJlbnRNb2Rl
KCAoQ0ZSdW5Mb29wUmVmKUdldENGUnVuTG9vcEZyb21FdmVudExvb3AoIEdldEN1cnJlbnRFdmVu
dExvb3AoKSApKTsKICAgICAgICAgRXZlbnRMb29wUmVmIHRoaXNMb29wID0gR2V0Q3VycmVudEV2
ZW50TG9vcCAoKTsKICAgICAgICAgaWYgKCBDRkVxdWFsKCBtb2RlLCBrQ0ZSdW5Mb29wRGVmYXVs
dE1vZGUgKSAmJiB0aGlzTG9vcCA9PSBwb29sTG9vcCkgewotICAgICAgICAgICAgdW5zaWduZWQg
Y3VycmVudE51bVBvb2xzID0gV0tHZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KCktMTsgICAgICAg
ICAgICAKKyAgICAgICAgICAgIHVuc2lnbmVkIGN1cnJlbnROdW1Qb29scyA9IGdldE5TQXV0b3Jl
bGVhc2VQb29sQ291bnQoKS0xOyAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGN1cnJlbnRO
dW1Qb29scyA9PSBudW1Qb29scyl7CiAgICAgICAgICAgICAgICAgW3NQb29sIGRyYWluXTsKICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBzUG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBv
b2wgYWxsb2NXaXRoWm9uZTpOVUxMXSBpbml0XTsKLSAgICAgICAgICAgICAgICBudW1Qb29scyA9
IFdLR2V0TlNBdXRvcmVsZWFzZVBvb2xDb3VudCgpOworICAgICAgICAgICAgICAgIG51bVBvb2xz
ID0gZ2V0TlNBdXRvcmVsZWFzZVBvb2xDb3VudCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgICAgIENGUmVsZWFzZSggbW9kZSApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQppbmRleCA2MDA5ZGZjZDg3MDcz
NGUzMDJiOTQ4NTE5MDlhY2E2Yzk5YThlZTNmLi4xYmQ1M2U4OTA3ZDdmNzA5MzQ0ODJhMGY1MGQ3
ODdmZWRiNDM3NDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24v
Q2FyYm9uV2luZG93QWRhcHRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJi
b24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzMsNiArNzMsOCBAQAogI2ltcG9ydCA8YXNzZXJ0
Lmg+CiAKICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KKyNpbXBvcnQgPHBh
bC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNXaW5kb3dT
UEkuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8
d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CkBAIC04MSw2ICs4Myw5
IEBACiAjaW1wb3J0ICJXZWJOU09iamVjdEV4dHJhcy5oIgogI2ltcG9ydCAiV2ViVHlwZXNJbnRl
cm5hbC5oIgogCitleHRlcm4gY29uc3QgT1NUeXBlIE5TQXBwS2l0UHJvcGVydHlDcmVhdG9yOwor
ZXh0ZXJuIGNvbnN0IE9TVHlwZSBOU0NhcmJvbldpbmRvd1Byb3BlcnR5VGFnOworCiBAaW50ZXJm
YWNlIE5TV2luZG93KEhJV2ViRnJhbWVWaWV3KQogLSAoaWQpX2luaXRDb250ZW50Oihjb25zdCBO
U1JlY3QgKiljb250ZW50UmVjdCBzdHlsZU1hc2s6KHVuc2lnbmVkIGludClhU3R5bGUgYmFja2lu
ZzooTlNCYWNraW5nU3RvcmVUeXBlKWJ1ZmZlcmluZ1R5cGUgZGVmZXI6KEJPT0wpZmxhZyBjb250
ZW50VmlldzphVmlldzsKIC0gKHZvaWQpX29sZFBsYWNlV2luZG93OihOU1JlY3QpZnJhbWVSZWN0
OwpAQCAtMTExLDcgKzExNiw3IEBAIEBpbXBsZW1lbnRhdGlvbiBDYXJib25XaW5kb3dBZGFwdGVy
CiArIChDbGFzcylmcmFtZVZpZXdDbGFzc0ZvclN0eWxlTWFzazoodW5zaWduZWQgaW50KXN0eWxl
IHsKIAogICAgIC8vIFRoZXJlJ3Mgb25seSBvbmUgYXBwcm9wcmlhdGUgd2luZG93IHN0eWxlLCBh
bmQgb25seSBvbmUgYXBwcm9wcmlhdGUgd2luZG93IGZyYW1lIGNsYXNzLgotICAgIGFzc2VydChz
dHlsZSAmIFdLQ2FyYm9uV2luZG93TWFzaygpKTsKKyAgICBhc3NlcnQoc3R5bGUgJiBfTlNDYXJi
b25XaW5kb3dNYXNrKTsKICAgICByZXR1cm4gW0NhcmJvbldpbmRvd0ZyYW1lIGNsYXNzXTsKIAog
fQpAQCAtMTU2LDcgKzE2MSw3IEBAIC0gKGlkKWluaXRXaXRoQ2FyYm9uV2luZG93UmVmOihXaW5k
b3dSZWYpaW5XaW5kb3dSZWYgdGFraW5nT3duZXJzaGlwOihCT09MKWluV2luCiAJX2NhcmJvbiA9
IGluQ2FyYm9uOwogCiAgICAgLy8gRmluZCBvdXQgdGhlIHdpbmRvdydzIENvcmVHcmFwaGljcyB3
aW5kb3cgcmVmZXJlbmNlLgotICAgIG5hdGl2ZVdpbmRvdyA9IFdLR2V0TmF0aXZlV2luZG93RnJv
bVdpbmRvd1JlZihpbldpbmRvd1JlZik7CisgICAgbmF0aXZlV2luZG93ID0gKHZvaWQqKUdldE5h
dGl2ZVdpbmRvd0Zyb21XaW5kb3dSZWYoaW5XaW5kb3dSZWYpOwogCiAgICAgLy8gRmluZCBvdXQg
dGhlIHdpbmRvdydzIENhcmJvbiB3aW5kb3cgYXR0cmlidXRlcy4KICAgICBHZXRXaW5kb3dBdHRy
aWJ1dGVzKGluV2luZG93UmVmLCAmd2luZG93QXR0cmlidXRlcyk7CkBAIC0xNzUsNyArMTgwLDcg
QEAgLSAoaWQpaW5pdFdpdGhDYXJib25XaW5kb3dSZWY6KFdpbmRvd1JlZilpbldpbmRvd1JlZiB0
YWtpbmdPd25lcnNoaXA6KEJPT0wpaW5XaW4KICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
IAogICAgIC8vIEZpZ3VyZSBvdXQgdGhlIHdpbmRvdydzIHN0eWxlIG1hc2suCi0gICAgc3R5bGVN
YXNrID0gV0tDYXJib25XaW5kb3dNYXNrKCk7CisgICAgc3R5bGVNYXNrID0gX05TQ2FyYm9uV2lu
ZG93TWFzazsKICAgICBpZiAod2luZG93QXR0cmlidXRlcyAmIGtXaW5kb3dDbG9zZUJveEF0dHJp
YnV0ZSkKICAgICAgICAgc3R5bGVNYXNrIHw9IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGU7CiAg
ICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBrV2luZG93UmVzaXphYmxlQXR0cmlidXRlKQpAQCAt
MjQyLDcgKzI0Nyw3IEBAIC0gKGlkKWluaXRXaXRoQ2FyYm9uV2luZG93UmVmOihXaW5kb3dSZWYp
aW5XaW5kb3dSZWYgdGFraW5nT3duZXJzaGlwOihCT09MKWluV2luCiAgICAgLy8gUHV0IGEgcG9p
bnRlciB0byB0aGlzIENvY29hIE5TV2luZG93IGluIGEgQ2FyYm9uIHdpbmRvdyBwcm9wZXJ0eSB0
YWcuCiAgICAgLy8gUmlnaHQgbm93LCB0aGlzIGlzIGp1c3QgdXNlZCBieSBOU1ZpZXdDYXJib25D
b250cm9sLiAgTS5QLiBOb3RpY2UgLSAxMC85LzAwCiAgICAgd2luZG93QXNQcm9wZXJ0eSA9IHNl
bGY7Ci0gICAgb3NTdGF0dXMgPSBTZXRXaW5kb3dQcm9wZXJ0eShfd2luZG93UmVmLCBXS0NhcmJv
bldpbmRvd1Byb3BlcnR5Q3JlYXRvcigpLCBXS0NhcmJvbldpbmRvd1Byb3BlcnR5VGFnKCksIHNp
emVvZihOU1dpbmRvdyAqKSwgJndpbmRvd0FzUHJvcGVydHkpOworICAgIG9zU3RhdHVzID0gU2V0
V2luZG93UHJvcGVydHkoX3dpbmRvd1JlZiwgTlNBcHBLaXRQcm9wZXJ0eUNyZWF0b3IsIE5TQ2Fy
Ym9uV2luZG93UHJvcGVydHlUYWcsIHNpemVvZihOU1dpbmRvdyAqKSwgJndpbmRvd0FzUHJvcGVy
dHkpOwogICAgIGlmIChvc1N0YXR1cyE9bm9FcnIpIHsKICAgICAgICAgW3NlbGYgcmVsZWFzZV07
CiAgICAgICAgIHJldHVybiBuaWw7CkBAIC01NTQsNyArNTU5LDcgQEAgLSAodm9pZClfb2xkUGxh
Y2VXaW5kb3c6KE5TUmVjdClmcmFtZVJlY3QgewogCiAgICAgLy8gVGVsbCBDYXJib24gdG8gdXBk
YXRlIGl0cyB2YXJpb3VzIHJlZ2lvbnMuCiAgICAgLy8gRGVzcGl0ZSBpdHMgbmFtZSwgdGhpcyBm
dW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIGVhcmx5IGFuZCBvZnRlbiwgZXZlbiBpZiB0aGUgd2lu
ZG93IGlzbid0IHZpc2libGUgeWV0LiAgMjcwMjY0OC4gIE0uUC4gTm90aWNlIC0gNy8yNC8wMQot
ICAgIG9zU3RhdHVzID0gV0tTeW5jV2luZG93V2l0aENHQWZ0ZXJNb3ZlKF93aW5kb3dSZWYpOwor
ICAgIG9zU3RhdHVzID0gX1N5bmNXaW5kb3dXaXRoQ0dBZnRlck1vdmUoX3dpbmRvd1JlZik7CiAg
ICAgaWYgKG9zU3RhdHVzIT1ub0VycikgTlNMb2coQCJBIENhcmJvbiB3aW5kb3cncyBib3VuZHMg
Y291bGRuJ3QgYmUgc3luY2hyb25pemVkICglaSkuIiwgKGludClvc1N0YXR1cyk7CiAKIH0KQEAg
LTYxNCw3ICs2MTksNyBAQCAtICh2b2lkKV93aW5kb3dNb3ZlZFRvUmVjdDooTlNSZWN0KWFjdHVh
bEZyYW1lIHsKIAogICAgIC8vIExldCBDYXJib24ga25vdyB0aGF0IHRoZSB3aW5kb3cgaGFzIGJl
ZW4gbW92ZWQsIHVubGVzcyB0aGlzIG1ldGhvZCBpcyBiZWluZyBjYWxsZWQgImVhcmx5LiIKICAg
ICBpZiAoX3dGbGFncy52aXNpYmxlKSB7Ci0gICAgICAgIG9zU3RhdHVzID0gV0tTeW5jV2luZG93
V2l0aENHQWZ0ZXJNb3ZlKF93aW5kb3dSZWYpOworICAgICAgICBvc1N0YXR1cyA9IF9TeW5jV2lu
ZG93V2l0aENHQWZ0ZXJNb3ZlKF93aW5kb3dSZWYpOwogICAgICAgICBpZiAob3NTdGF0dXMhPW5v
RXJyKSBOU0xvZyhAIkEgQ2FyYm9uIHdpbmRvdydzIGJvdW5kcyBjb3VsZG4ndCBiZSBzeW5jaHJv
bml6ZWQgKCVpKS4iLCAoaW50KW9zU3RhdHVzKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DYXJib24vSElWaWV3QWRhcHRlci5tCmluZGV4IGNkMjA4Zjc5MGMwNWFkOTE0
NDUwYTZmOGI2MWZlMTYxZWM5YWY4OTQuLjM1NTM3MDc1MmRlYTA2Nzk1YjM1OGU5ZGI4MTc4ZmJh
MWNkOTcwM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVZp
ZXdBZGFwdGVyLm0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJVmlld0Fk
YXB0ZXIubQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zMCw4ICszMCw4IEBACiAKICNpbXBvcnQgIkhJVmlld0FkYXB0ZXIuaCIK
IAotI2ltcG9ydCAiUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5oIgogI2ltcG9ydCAiV2ViTlNPYmpl
Y3RFeHRyYXMuaCIKKyNpbXBvcnQgPHBhbC9zcGkvbWFjL1F1aWNrRHJhd1NQSS5oPgogI2ltcG9y
dCA8d3RmL0Fzc2VydGlvbnMuaD4KIAogc3RhdGljIHZvaWQgU2V0Vmlld05lZWRzRGlzcGxheShI
SVZpZXdSZWYgaW5WaWV3LCBSZ25IYW5kbGUgaW5SZWdpb24sIEJvb2xlYW4gaW5OZWVkc0Rpc3Bs
YXkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJV2ViVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0KaW5kZXgg
MGFlMDE0NzAyZmQzOTFjY2U1ODI2YTRhMDFhMDhmZmYyYzA0YmU2Yy4uMzQ1ODVjMjUyYzNiMThj
YWNkNmUwN2FkNWU5NDQ4Nzc5ZDhiZTQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2FyYm9uL0hJV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
YXJib24vSElXZWJWaWV3Lm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zMiwxMCArMzIsMTEgQEAKIAogI2ltcG9ydCAiQ2FyYm9uV2lu
ZG93QWRhcHRlci5oIgogI2ltcG9ydCAiSElWaWV3QWRhcHRlci5oIgotI2ltcG9ydCAiUXVpY2tE
cmF3Q29tcGF0aWJpbGl0eS5oIgogI2ltcG9ydCAiV2ViSFRNTFZpZXdJbnRlcm5hbC5oIgogI2lt
cG9ydCAiV2ViS2l0LmgiCiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBv
cnQgPHBhbC9zcGkvbWFjL05TRXZlbnRTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL1F1aWNr
RHJhd1NQSS5oPgogI2ltcG9ydCA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+CiAKIEBpbnRlcmZh
Y2UgTlNXaW5kb3cgKEFwcEtpdFNlY3JldHNISVdlYlZpZXdLbm93cykKQEAgLTMwNiw5ICszMDcs
MTIgQEAgRHJhdyggSElXZWJWaWV3KiBpblZpZXcsIFJnbkhhbmRsZSBsaW1pdFJnbiwgQ0dDb250
ZXh0UmVmIGluQ29udGV4dCApCiAgICAgICAgIEdyYWZQdHIgcG9ydDsKICAgICAgICAgUmVjdCBw
b3J0UmVjdDsKIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgICAgICBH
ZXRQb3J0KCAmcG9ydCApOwogICAgICAgICBHZXRQb3J0Qm91bmRzKCBwb3J0LCAmcG9ydFJlY3Qg
KTsKICAgICAgICAgQ3JlYXRlQ0dDb250ZXh0Rm9yUG9ydCggcG9ydCwgJmluQ29udGV4dCApOwor
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICAgICAgICAgU3luY0NHQ29udGV4dE9yaWdp
bldpdGhQb3J0KCBpbkNvbnRleHQsIHBvcnQgKTsKICAgICAgICAgQ0dDb250ZXh0VHJhbnNsYXRl
Q1RNKCBpbkNvbnRleHQsIDAsIChwb3J0UmVjdC5ib3R0b20gLSBwb3J0UmVjdC50b3ApICk7CiAg
ICAgICAgIENHQ29udGV4dFNjYWxlQ1RNKCBpbkNvbnRleHQsIDEsIC0xICk7CkBAIC00MzYsNiAr
NDQwLDY0IEBAIEdldFdpbmRvd1JlZiggSElXZWJWaWV3KiBpblZpZXcgKQogICAgICAgIHJldHVy
biBHZXRDb250cm9sT3duZXIoIGluVmlldy0+ZlZpZXdSZWYgKTsKIH0KIAorc3RhdGljIE5TRXZl
bnQgKgorQ3JlYXRlTlNFdmVudEFkb3B0aW5nQ0dFdmVudCggQ0dFdmVudFJlZiBjZ0V2ZW50LCBF
dmVudFJlZiBldmVudFJlZiApCit7CisgICAgTlNFdmVudCAqcmVzdWx0ID0gW1tOU0V2ZW50IGFs
bG9jXSBfaW5pdFdpdGhDR0V2ZW50OmNnRXZlbnQgZXZlbnRSZWY6ZXZlbnRSZWZdOworICAgIENG
UmVsZWFzZShjZ0V2ZW50KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgQm9vbGVh
bgorQ29weUV2ZW50Q0dFdmVudCggRXZlbnRSZWYgZXZlbnQsIENHRXZlbnRSZWYqIGNnRXZlbnQg
KQoreworICAgIGlmICgoKmNnRXZlbnQgPSBDb3B5RXZlbnRDR0V2ZW50KGV2ZW50KSkpCisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIAorICAgIC8vIFRoaXMgZXZlbnQgbWlnaHQgbm90IGhhdmUg
YmVlbiBjcmVhdGVkIGRpcmVjdGx5IGZyb20gYSBDR1MgZXZlbnQsIGFuZCBtaWdodCBub3QKKyAg
ICAvLyBoYXZlIGEgQ0dFdmVudFJlZiBhc3NvY2lhdGVkIHdpdGggaXQuIEluIHRoYXQgY2FzZSwg
dHJ5IHVzaW5nIHRoZSBldmVudCBtb3N0CisgICAgLy8gcmVjZW50bHkgZGlzcGF0Y2hlZCBieSB0
aGUgZXZlbnQgZGlzcGF0Y2hlciwgd2hpY2ggaXMgbGlrZWx5IHRvIGJlIHRoZSBvcmlnaW5hbAor
ICAgIC8vIHVzZXItaW5wdXQgZXZlbnQgY29udGFpbmluZyBhIENHRXZlbnRSZWYuCisgICAgZXZl
bnQgPSBHZXRDdXJyZW50RXZlbnQoKTsKKyAgICBpZiAoZXZlbnQgJiYgKCpjZ0V2ZW50ID0gQ29w
eUV2ZW50Q0dFdmVudChldmVudCkpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK3N0YXRpYyBOU0V2ZW50ICoKK0NyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uQ2xp
Y2tFdmVudCggRXZlbnRSZWYgaW5FdmVudCwgV2luZG93UmVmIHdpbmRvd1JlZiApCit7CisgICAg
RXZlbnRSZWYgbmV3RXZlbnQ7CisgICAgUG9pbnQgd2hlcmU7CisgICAgT1NTdGF0dXMgZXJyOwor
ICAgIFVJbnQzMiBtb2RpZmllcnM7CisgICAgUmVjdCB3aW5kUmVjdDsKKyAgICAKKyAgICBDR0V2
ZW50UmVmIGNnRXZlbnQgPSBOVUxMOworICAgIGlmICghQ29weUV2ZW50Q0dFdmVudChpbkV2ZW50
LCAmY2dFdmVudCkpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgCisgICAgLy8gV2UgbmVlZCB0
byBtYWtlIHRoZSBldmVudCBiZSBhIGtFdmVudE1vdXNlRG93biBldmVudCwgb3IgdGhlIHdlYmtp
dCBtaWdodCB0cmlwIHVwIHdoZW4KKyAgICAvLyB3ZSBjbGljayBvbiBhIE5ldHNjYXBlIHBsdWdp
bi4gSXQgY2FsbHMgQ29udmVydEV2ZW50UmVmVG9FdmVudFJlY29yZCwgYXNzdW1pbmcKKyAgICAv
LyB0aGF0IG1vdXNlRG93biB3YXMgcGFzc2VkIGFuIGV2ZW50IHdpdGggYSByZWFsIG1vdXNlIGRv
d24gZXZlbnRSZWYuIFdlIGp1c3QgbmVlZCBhCisgICAgLy8gbWluaW1hbCBvbmUgaGVyZS4KKyAg
ICAKKyAgICBlcnIgPSBDcmVhdGVFdmVudChOVUxMLCBrRXZlbnRDbGFzc01vdXNlLCBrRXZlbnRN
b3VzZURvd24sIEdldEV2ZW50VGltZShpbkV2ZW50KSwgMCwgJm5ld0V2ZW50KTsKKyAgICBpZiAo
ZXJyICE9IG5vRXJyKQorICAgICAgICByZXR1cm4gbmlsOworICAgIAorICAgIEdldEV2ZW50UGFy
YW1ldGVyKGluRXZlbnQsIGtFdmVudFBhcmFtV2luZG93TW91c2VMb2NhdGlvbiwgdHlwZVFEUG9p
bnQsIE5VTEwsIHNpemVvZihQb2ludCksIE5VTEwsICZ3aGVyZSk7CisgICAgR2V0V2luZG93Qm91
bmRzKHdpbmRvd1JlZiwga1dpbmRvd1N0cnVjdHVyZVJnbiwgJndpbmRSZWN0KTsKKyAgICB3aGVy
ZS5oICs9IHdpbmRSZWN0LmxlZnQ7CisgICAgd2hlcmUudiArPSB3aW5kUmVjdC50b3A7CisgICAg
CisgICAgR2V0RXZlbnRQYXJhbWV0ZXIoaW5FdmVudCwga0V2ZW50UGFyYW1LZXlNb2RpZmllcnMs
IHR5cGVVSW50MzIsIE5VTEwsIHNpemVvZihVSW50MzIpLCBOVUxMLCAmbW9kaWZpZXJzKTsKKyAg
ICBTZXRFdmVudFBhcmFtZXRlcihuZXdFdmVudCwga0V2ZW50UGFyYW1Nb3VzZUxvY2F0aW9uLCB0
eXBlUURQb2ludCwgc2l6ZW9mKFBvaW50KSwgJndoZXJlKTsKKyAgICBTZXRFdmVudFBhcmFtZXRl
cihuZXdFdmVudCwga0V2ZW50UGFyYW1LZXlNb2RpZmllcnMsIHR5cGVVSW50MzIsIHNpemVvZihV
SW50MzIpLCAmbW9kaWZpZXJzKTsKKyAgICAKKyAgICByZXR1cm4gQ3JlYXRlTlNFdmVudEFkb3B0
aW5nQ0dFdmVudChjZ0V2ZW50LCBuZXdFdmVudCk7Cit9CisKIC8vLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogLy8gQ2xpY2sKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDQzLDcg
KzUwNSw3IEBAIEdldFdpbmRvd1JlZiggSElXZWJWaWV3KiBpblZpZXcgKQogc3RhdGljIE9TU3Rh
dHVzCiBDbGljayhISVdlYlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCkKIHsKLSAgICBO
U0V2ZW50ICpraXRFdmVudCA9IFdLQ3JlYXRlTlNFdmVudFdpdGhDYXJib25DbGlja0V2ZW50KGlu
RXZlbnQsIEdldFdpbmRvd1JlZihpblZpZXcpKTsKKyAgICBOU0V2ZW50ICpraXRFdmVudCA9IENy
ZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uQ2xpY2tFdmVudChpbkV2ZW50LCBHZXRXaW5kb3dSZWYoaW5W
aWV3KSk7CiAKICAgICBpZiAoIWluVmlldy0+ZklzQ29tcG9zaXRlZCkKICAgICAgICAgU3RhcnRV
cGRhdGVPYnNlcnZlcihpblZpZXcpOwpAQCAtNDU4LDYgKzUyMCwxNiBAQCBDbGljayhISVdlYlZp
ZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCkKICAgICByZXR1cm4gbm9FcnI7CiB9CiAKK3N0
YXRpYyBOU0V2ZW50ICoKK0NyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZlbnQoIEV2ZW50UmVmIGlu
RXZlbnQgKQoreworICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgZXZlbnRXaXRoRXZlbnRS
ZWY6aW5FdmVudF07CisgICAgaWYgKCFldmVudCkKKyAgICAgICAgZXZlbnQgPSBbTlNFdmVudCBl
dmVudFdpdGhFdmVudFJlZjpHZXRDdXJyZW50RXZlbnQoKV07CisKKyAgICByZXR1cm4gW2V2ZW50
IHJldGFpbl07Cit9CisKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gTW91c2VVcAog
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00NjUsMTUgKzUzNywzMiBAQCBDbGljayhI
SVdlYlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCkKIHN0YXRpYyBPU1N0YXR1cwogTW91
c2VVcCggSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQgKQogewotCU5TRXZlbnQq
IGtpdEV2ZW50ID0gV0tDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkV2ZW50KGluRXZlbnQpOworICAg
IE5TRXZlbnQqIGtpdEV2ZW50ID0gQ3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVudChpbkV2ZW50
KTsKIAogICAgIFtpblZpZXctPmZLaXRXaW5kb3cgc2VuZEV2ZW50OmtpdEV2ZW50XTsKLQkKKwog
ICAgIFtraXRFdmVudCByZWxlYXNlXTsKLSAgICAKKwogCXJldHVybiBub0VycjsKIH0KIAorc3Rh
dGljIE5TRXZlbnQgKgorQ3JlYXRlTlNFdmVudFdpdGhDYXJib25Nb3VzZU1vdmVFdmVudCggRXZl
bnRSZWYgaW5FdmVudCwgTlNXaW5kb3cgKndpbmRvdyApCit7CisgICAgTlNFdmVudCoga2l0RXZl
bnQgPSBbTlNFdmVudCBldmVudFdpdGhFdmVudFJlZjppbkV2ZW50XTsKKworICAgIC8vIEZJWE1F
OiBXb3JrcyBhcm91bmQgYnVnIDM1ODU2NDQuIENhbiByZW1vdmUgaXQgb25jZSB0aGF0IGJ1ZyBp
cyBmaXhlZC4KKyAgICAvLyBXZSBwcmVmbGlnaHQgaGVyZSBhbmQgZG9uJ3QgZG8gYW55IHdvcmsg
d2hlbiB0aGUgd2luZG93IGlzIGFscmVhZHkgY29ycmVjdAorICAgIC8vIGJlY2F1c2UgX2V2ZW50
UmVsYXRpdmVUb1dpbmRvdyB3aWxsIG1hbGZ1bmN0aW9uIGlmIHRoZSBldmVudCdzIHdpbmRvdyBt
ZXRob2QKKyAgICAvLyBoYXMgYmVlbiBoaWphY2tlZCBieSB0aGUgYnVnIHdvcmthcm91bmQgdXNl
ZCBieSBDb250cmlidXRlLiBJdCdzIGZpbmUgdG8ganVzdAorICAgIC8vIGxlYXZlIHRoZSBldmVu
dCBhbG9uZSBpZiB0aGUgd2luZG93IGlzIGFscmVhZHkgY29ycmVjdC4KKworICAgIGlmIChba2l0
RXZlbnQgd2luZG93XSAhPSB3aW5kb3cpCisgICAgICAgIGtpdEV2ZW50ID0gW2tpdEV2ZW50IF9l
dmVudFJlbGF0aXZlVG9XaW5kb3c6d2luZG93XTsKKworICAgIHJldHVybiBba2l0RXZlbnQgcmV0
YWluXTsKK30KKwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBNb3VzZU1vdmVkCiAv
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ4MSw3ICs1NzAsNyBAQCBNb3VzZVVwKCBI
SVdlYlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCApCiBzdGF0aWMgT1NTdGF0dXMKIE1v
dXNlTW92ZWQoIEhJV2ViVmlldyogaW5WaWV3LCBFdmVudFJlZiBpbkV2ZW50ICkKIHsKLSAgICBO
U0V2ZW50ICpraXRFdmVudCA9IFdLQ3JlYXRlTlNFdmVudFdpdGhDYXJib25Nb3VzZU1vdmVFdmVu
dChpbkV2ZW50LCBpblZpZXctPmZLaXRXaW5kb3cpOworICAgIE5TRXZlbnQgKmtpdEV2ZW50ID0g
Q3JlYXRlTlNFdmVudFdpdGhDYXJib25Nb3VzZU1vdmVFdmVudChpbkV2ZW50LCBpblZpZXctPmZL
aXRXaW5kb3cpOwogICAgIFtpblZpZXctPmZLaXRXaW5kb3cgc2VuZEV2ZW50OmtpdEV2ZW50XTsK
IAlba2l0RXZlbnQgcmVsZWFzZV07CiAKQEAgLTQ5NSwxMiArNTg0LDEyIEBAIE1vdXNlTW92ZWQo
IEhJV2ViVmlldyogaW5WaWV3LCBFdmVudFJlZiBpbkV2ZW50ICkKIHN0YXRpYyBPU1N0YXR1cwog
TW91c2VEcmFnZ2VkKCBISVdlYlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCApCiB7Ci0J
TlNFdmVudCoga2l0RXZlbnQgPSBXS0NyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZlbnQoaW5FdmVu
dCk7CisgICAgTlNFdmVudCoga2l0RXZlbnQgPSBDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkV2ZW50
KGluRXZlbnQpOwogCiAgICAgW2luVmlldy0+ZktpdFdpbmRvdyBzZW5kRXZlbnQ6a2l0RXZlbnRd
OwogCi0JW2tpdEV2ZW50IHJlbGVhc2VdOwotCQorICAgIFtraXRFdmVudCByZWxlYXNlXTsKKwog
CXJldHVybiBub0VycjsKIH0KIApAQCAtNTExLDEyICs2MDAsMTIgQEAgTW91c2VEcmFnZ2VkKCBI
SVdlYlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCApCiBzdGF0aWMgT1NTdGF0dXMKIE1v
dXNlV2hlZWxNb3ZlZCggSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQgKQogewot
CU5TRXZlbnQqIGtpdEV2ZW50ID0gV0tDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkV2ZW50KGluRXZl
bnQpOworICAgIE5TRXZlbnQqIGtpdEV2ZW50ID0gQ3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVu
dChpbkV2ZW50KTsKIAogICAgIFtpblZpZXctPmZLaXRXaW5kb3cgc2VuZEV2ZW50OmtpdEV2ZW50
XTsKIAotCVtraXRFdmVudCByZWxlYXNlXTsKLQkKKyAgICBba2l0RXZlbnQgcmVsZWFzZV07CisK
IAlyZXR1cm4gbm9FcnI7CiB9CiAKQEAgLTY4NCw3ICs3NzMsNyBAQCBXaW5kb3dIYW5kbGVyKCBF
dmVudEhhbmRsZXJDYWxsUmVmIGluQ2FsbFJlZiwgRXZlbnRSZWYgaW5FdmVudCwgdm9pZCogaW5V
c2VyRGF0YQogCQkJCQlOU1Jlc3BvbmRlciogcmVzcG9uZGVyID0gW2tpdFdpbmRvdyBmaXJzdFJl
c3BvbmRlcl07CiAJCQkJCWlmICggcmVzcG9uZGVyICE9IGtpdFdpbmRvdyApCiAJCQkJCXsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGtpdEV2ZW50ID0gV0tDcmVhdGVOU0V2ZW50V2l0aENhcmJv
bkV2ZW50KGluRXZlbnQpOworICAgICAgICAgICAgICAgICAgICAgICAga2l0RXZlbnQgPSBDcmVh
dGVOU0V2ZW50V2l0aENhcmJvbkV2ZW50KGluRXZlbnQpOwogCQkJCQkJCiAJCQkJCQlba2l0V2lu
ZG93IHNlbmRFdmVudDpraXRFdmVudF07CiAJCQkJCQlba2l0RXZlbnQgcmVsZWFzZV07CkBAIC0x
MjY1LDcgKzEzNTQsNyBAQCBISVdlYlZpZXdFdmVudEhhbmRsZXIoCiAKIAkJY2FzZSBrRXZlbnRD
bGFzc0tleWJvYXJkOgogCQkJewotCQkJCU5TRXZlbnQqIGtpdEV2ZW50ID0gV0tDcmVhdGVOU0V2
ZW50V2l0aENhcmJvbkV2ZW50KGluRXZlbnQpOworICAgICAgICAgICAgICAgIE5TRXZlbnQqIGtp
dEV2ZW50ID0gQ3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVudChpbkV2ZW50KTsKIAkJCQlbdmll
dy0+ZktpdFdpbmRvdyBzZW5kU3VwZXJFdmVudDpraXRFdmVudF07CiAJCQkJW2tpdEV2ZW50IHJl
bGVhc2VdOwogCQkJCXJlc3VsdCA9IG5vRXJyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvTWlzYy9RdWlja0RyYXdDb21wYXRpYmlsaXR5LmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9NaXNjL1F1aWNrRHJhd0NvbXBhdGliaWxpdHkuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggY2ZmNTUzZmMwYjAzZDMwNTc4MzA4ZGE0ZTNlZTNlMmJkNGU4OGJjMy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9NaXNjL1F1aWNrRHJhd0NvbXBhdGliaWxpdHkuaAorKysgL2Rldi9udWxsCkBA
IC0xLDkxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFF1aWNrRHJhd0NvbXBhdGliaWxp
dHlfaAotI2RlZmluZSBRdWlja0RyYXdDb21wYXRpYmlsaXR5X2gKLQotI2lmbmRlZiBfX0xQNjRf
XwotCi0jaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+Ci0KLSNpZiBkZWZpbmVkKFFEX0hFQURFUlNf
QVJFX1BSSVZBVEUpICYmIFFEX0hFQURFUlNfQVJFX1BSSVZBVEUKLQotI2lmZGVmIF9fY3BsdXNw
bHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi0jZGVmaW5lIE1hY1NldFJlY3QgU2V0UmVjdAot
I2RlZmluZSBNYWNTZXRSZWN0UmduIFNldFJlY3RSZ24KLSNkZWZpbmUgTWFjVW5pb25SZ24gVW5p
b25SZ24KLQotZXh0ZXJuIEJvb2xlYW4gRW1wdHlSZ24oUmduSGFuZGxlKTsKLWV4dGVybiBPU1N0
YXR1cyBDcmVhdGVDR0NvbnRleHRGb3JQb3J0KENHcmFmUHRyLCBDR0NvbnRleHRSZWYqKTsKLWV4
dGVybiBPU1N0YXR1cyBTeW5jQ0dDb250ZXh0T3JpZ2luV2l0aFBvcnQoQ0dDb250ZXh0UmVmLCBD
R3JhZlB0cik7Ci1leHRlcm4gUGl4TWFwSGFuZGxlIEdldFBvcnRQaXhNYXAoQ0dyYWZQdHIpOwot
ZXh0ZXJuIFFERXJyIE5ld0dXb3JsZEZyb21QdHIoR1dvcmxkUHRyKiwgVUludDMyLCBjb25zdCBS
ZWN0KiwgQ1RhYkhhbmRsZSwgR0RIYW5kbGUsIEdXb3JsZEZsYWdzLCBQdHIsIFNJbnQzMik7Ci1l
eHRlcm4gUmVjdCogR2V0UG9ydEJvdW5kcyhDR3JhZlB0ciwgUmVjdCopOwotZXh0ZXJuIFJlY3Qq
IEdldFJlZ2lvbkJvdW5kcyhSZ25IYW5kbGUsIFJlY3QqKTsKLWV4dGVybiBSZ25IYW5kbGUgR2V0
UG9ydENsaXBSZWdpb24oQ0dyYWZQdHIsIFJnbkhhbmRsZSk7Ci1leHRlcm4gUmduSGFuZGxlIEdl
dFBvcnRWaXNpYmxlUmVnaW9uKENHcmFmUHRyLCBSZ25IYW5kbGUpOwotZXh0ZXJuIFJnbkhhbmRs
ZSBOZXdSZ24oKTsKLWV4dGVybiB2b2lkIEJhY2tDb2xvcihsb25nKTsKLWV4dGVybiB2b2lkIERp
c3Bvc2VHV29ybGQoR1dvcmxkUHRyKTsKLWV4dGVybiB2b2lkIERpc3Bvc2VSZ24oUmduSGFuZGxl
KTsKLWV4dGVybiB2b2lkIEZvcmVDb2xvcihsb25nKTsKLWV4dGVybiB2b2lkIEdldEdXb3JsZChD
R3JhZlB0ciosIEdESGFuZGxlKik7Ci1leHRlcm4gdm9pZCBHZXRQb3J0KEdyYWZQdHIqKTsKLWV4
dGVybiB2b2lkIEdsb2JhbFRvTG9jYWwoUG9pbnQqKTsKLWV4dGVybiB2b2lkIE1hY1NldFJlY3Qo
UmVjdCosIHNob3J0LCBzaG9ydCwgc2hvcnQsIHNob3J0KTsKLWV4dGVybiB2b2lkIE1hY1NldFJl
Y3RSZ24oUmduSGFuZGxlLCBzaG9ydCwgc2hvcnQsIHNob3J0LCBzaG9ydCk7Ci1leHRlcm4gdm9p
ZCBNYWNVbmlvblJnbihSZ25IYW5kbGUsIFJnbkhhbmRsZSwgUmduSGFuZGxlKTsKLWV4dGVybiB2
b2lkIE1vdmVQb3J0VG8oc2hvcnQsIHNob3J0KTsKLWV4dGVybiB2b2lkIE9mZnNldFJlY3QoUmVj
dCosIHNob3J0LCBzaG9ydCk7Ci1leHRlcm4gdm9pZCBPZmZzZXRSZ24oUmduSGFuZGxlLCBzaG9y
dCwgc2hvcnQpOwotZXh0ZXJuIHZvaWQgUGFpbnRSZWN0KGNvbnN0IFJlY3QqKTsKLWV4dGVybiB2
b2lkIFBlbk5vcm1hbCgpOwotZXh0ZXJuIHZvaWQgUG9ydFNpemUoc2hvcnQsIHNob3J0KTsKLWV4
dGVybiB2b2lkIFJlY3RSZ24oUmduSGFuZGxlLCBjb25zdCBSZWN0Kik7Ci1leHRlcm4gdm9pZCBT
ZWN0UmduKFJnbkhhbmRsZSwgUmduSGFuZGxlLCBSZ25IYW5kbGUpOwotZXh0ZXJuIHZvaWQgU2V0
R1dvcmxkKENHcmFmUHRyLCBHREhhbmRsZSk7Ci1leHRlcm4gdm9pZCBTZXRPcmlnaW4oc2hvcnQs
IHNob3J0KTsKLWV4dGVybiB2b2lkIFNldFBvcnQoR3JhZlB0cik7Ci1leHRlcm4gdm9pZCBTZXRQ
b3J0Q2xpcFJlZ2lvbihDR3JhZlB0ciwgUmduSGFuZGxlKTsKLWV4dGVybiB2b2lkIFNldFBvcnRW
aXNpYmxlUmVnaW9uKENHcmFmUHRyLCBSZ25IYW5kbGUpOwotCi1lbnVtIHsKLSAgICBibGFja0Nv
bG9yID0gMzMsCi0gICAgd2hpdGVDb2xvciA9IDMwLAotICAgIGdyZWVuQ29sb3IgPSAzNDEsCi19
OwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLy8gZGVmaW5lZChR
RF9IRUFERVJTX0FSRV9QUklWQVRFKSAmJiBRRF9IRUFERVJTX0FSRV9QUklWQVRFCi0KLSNlbmRp
ZiAvLyBfX0xQNjRfXwotCi0jZW5kaWYgLy8gUXVpY2tEcmF3Q29tcGF0aWJpbGl0eV9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2lu
RXZlbnRIYW5kbGVyQ2FyYm9uLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9X
ZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbi5tbQppbmRleCA2ODU2N2IzMzk0ZGQ4
MWFlOWY1MTk3NDE4OTk0ZGJkMjhmM2ViMjdiLi4zZmNiNDY3ZmQ3ODc4NDMxYTE0ZmU3OTk3ODQ3
N2MyNTg5NWZhZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5z
L1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib24u
bW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE3IEFwcGxlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzAsNiArMzAsOCBAQAogI2ltcG9ydCAiV2ViTmV0c2NhcGVQbHVnaW5WaWV3LmgiCiAjaW1w
b3J0ICJXZWJLaXRMb2dnaW5nLmgiCiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIK
KyNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9t
YWMvTlNFdmVudFNQSS5oPgogCiAvLyBTZW5kIG51bGwgZXZlbnRzIDUwIHRpbWVzIGEgc2Vjb25k
IHdoZW4gYWN0aXZlLCBzbyBwbHVnLWlucyBsaWtlIEZsYXNoIGdldCBoaWdoIGZyYW1lIHJhdGVz
LgogI2RlZmluZSBOdWxsRXZlbnRJbnRlcnZhbEFjdGl2ZSAgICAgICAgIDAuMDIKQEAgLTg1LDcg
Kzg3LDcgQEAgc3RhdGljIEV2ZW50TW9kaWZpZXJzIG1vZGlmaWVyc0ZvckV2ZW50KE5TRXZlbnQg
KmV2ZW50KQogCiBzdGF0aWMgdm9pZCBnZXRDYXJib25FdmVudChFdmVudFJlY29yZCAqY2FyYm9u
RXZlbnQsIE5TRXZlbnQgKmNvY29hRXZlbnQpCiB7Ci0gICAgaWYgKFdLQ29udmVydE5TRXZlbnRU
b0NhcmJvbkV2ZW50KGNhcmJvbkV2ZW50LCBjb2NvYUV2ZW50KSkKKyAgICBpZiAoW2NvY29hRXZl
bnQgX2V2ZW50UmVmXSAmJiBDb252ZXJ0RXZlbnRSZWZUb0V2ZW50UmVjb3JkKChFdmVudFJlZilb
Y29jb2FFdmVudCBfZXZlbnRSZWZdLCBjYXJib25FdmVudCkpCiAgICAgICAgIHJldHVybjsKICAg
ICAKICAgICBOU1BvaW50IHdoZXJlID0gW1tjb2NvYUV2ZW50IHdpbmRvd10gY29udmVydEJhc2VU
b1NjcmVlbjpbY29jb2FFdmVudCBsb2NhdGlvbkluV2luZG93XV07CkBAIC0yMTAsNyArMjEyLDcg
QEAgdm9pZCBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbjo6bW91c2VNb3ZlZChO
U0V2ZW50KiB0aGVFdmVudCkKIHZvaWQgV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJi
b246OmtleURvd24oTlNFdmVudCAqdGhlRXZlbnQpCiB7CiAgICAgbV9zdXNwZW5kS2V5VXBFdmVu
dHMgPSB0cnVlOwotICAgIFdLU2VuZEtleUV2ZW50VG9UU00odGhlRXZlbnQpOworICAgIFRTTVBy
b2Nlc3NSYXdLZXlFdmVudCgoRXZlbnRSZWYpW3RoZUV2ZW50IF9ldmVudFJlZl0pOwogfQogCiB2
b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjpzeW50aGV0aWNLZXlEb3du
V2l0aENvbW1hbmRNb2RpZmllcihpbnQga2V5Q29kZSwgY2hhciBjaGFyYWN0ZXIpCkBAIC0yMzgs
NyArMjQwLDcgQEAgc3RhdGljIFVJbnQzMiBrZXlNZXNzYWdlRm9yRXZlbnQoTlNFdmVudCAqZXZl
bnQpCiAgICAgCiB2b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjprZXlV
cChOU0V2ZW50KiB0aGVFdmVudCkKIHsKLSAgICBXS1NlbmRLZXlFdmVudFRvVFNNKHRoZUV2ZW50
KTsKKyAgICBUU01Qcm9jZXNzUmF3S2V5RXZlbnQoKEV2ZW50UmVmKVt0aGVFdmVudCBfZXZlbnRS
ZWZdKTsKICAgICAKICAgICAvLyBUU00gd29uJ3Qgc2VuZCBrZXlVcCBldmVudHMgc28gd2UgaGF2
ZSB0byBzZW5kIHRoZW0gb3Vyc2VsdmVzLgogICAgIC8vIE9ubHkgc2VuZCBrZXlVcCBldmVudHMg
YWZ0ZXIgd2UgcmVjZWl2ZSB0aGUgVFNNIGNhbGxiYWNrIGJlY2F1c2UgdGhpcyBpcyB3aGF0IHBs
dWctaW4gZXhwZWN0IGZyb20gT1MgOS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJD
b2NvYS5tbQppbmRleCBkZTIwMTg5YTM3ZGMwOTI4NzgyZTg2MWIyYTY5YTAzYzc2MDhlMTc4Li5m
ODAwMzRmMWVkNzM2OTdiNjExMGZiZmFlYWU5N2YwMjM5ZDQwOTFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVy
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2Fw
ZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDgtMjAxNyBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5LDggQEAKIAogI2ltcG9ydCAiV2Vi
S2l0U3lzdGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0ICJXZWJOZXRzY2FwZVBsdWdpblZpZXcuaCIK
KyNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9t
YWMvTlNFdmVudFNQSS5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgogCiBXZWJOZXRzY2FwZVBs
dWdpbkV2ZW50SGFuZGxlckNvY29hOjpXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29h
KFdlYk5ldHNjYXBlUGx1Z2luVmlldyogcGx1Z2luVmlldykKQEAgLTEyOCw3ICsxMzAsNyBAQCB2
b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6OmtleURvd24oTlNFdmVudCAq
ZXZlbnQpCiAjaWZuZGVmIF9fTFA2NF9fCiAgICAgLy8gSWYgdGhlIHBsdWctaW4gZGlkIG5vdCBo
YW5kbGUgdGhlIGV2ZW50LCBwYXNzIGl0IG9uIHRvIHRoZSBJbnB1dCBNYW5hZ2VyLgogICAgIGlm
IChyZXR2YWwpCi0gICAgICAgIFdLU2VuZEtleUV2ZW50VG9UU00oZXZlbnQpOworICAgICAgICBU
U01Qcm9jZXNzUmF3S2V5RXZlbnQoKEV2ZW50UmVmKVtldmVudCBfZXZlbnRSZWZdKTsKICNlbHNl
CiAgICAgVU5VU0VEX1BBUkFNKHJldHZhbCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXgg
Zjk2MWVmZTFlMjhjNDhiYjY1NGM1MWYzNmNhMDczMjgzY2M0NTdhMS4uYzY4MGZmN2VlMzFjOTNi
OGZiNDkyMjk3ZTRlN2FkOTE0MWE0ZGRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzAsNyArMzAsNiBAQAogCiAjaW1wb3J0ICJXZWJOZXRzY2FwZVBsdWdpblZpZXcuaCIKIAotI2lt
cG9ydCAiUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5oIgogI2ltcG9ydCAiV2ViRGF0YVNvdXJjZUlu
dGVybmFsLmgiCiAjaW1wb3J0ICJXZWJEZWZhdWx0VUlEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiV2Vi
RnJhbWVJbnRlcm5hbC5oIgpAQCAtNzUsNiArNzQsNyBAQAogI2ltcG9ydCA8V2ViS2l0TGVnYWN5
L0RPTVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9XZWJVSURlbGVnYXRlLmg+CiAj
aW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL1F1aWNrRHJhd1NQ
SS5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDxy
dW50aW1lL0pTTG9jay5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTkxNSw3ICs5
MTUsNyBAQCAtKHZvaWQpdGVsbFF1aWNrVGltZVRvQ2hpbGwKICAgICBDR3JhZlB0ciBwb3J0ID0g
R2V0V2luZG93UG9ydCh3aW5kb3dSZWYpOwogICAgIDo6UmVjdCBib3VuZHM7CiAgICAgR2V0UG9y
dEJvdW5kcyhwb3J0LCAmYm91bmRzKTsKLSAgICBXS0NhbGxEcmF3aW5nTm90aWZpY2F0aW9uKHBv
cnQsICZib3VuZHMpOworICAgIENhbGxEcmF3aW5nTm90aWZpY2F0aW9ucyhwb3J0LCAmYm91bmRz
LCBrQml0c1Byb2MpOwogI2VuZGlmIC8qIE5QX05PX1FVSUNLRFJBVyAqLwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319341</attachid>
            <date>2017-08-29 22:19:22 -0700</date>
            <delta_ts>2017-08-30 00:09:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176087-20170829221921.patch</filename>
            <type>text/plain</type>
            <size>57026</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCAwMTRhMTll
YWU0ZmNhYTAzYzk2NDYwYmRjMjliNDYxYjZhYjUwYTE2Li5kYjdmODRiZGYyYjFjZGIwZmNhMTZm
ODRiNGM4YWE0MzkxYjQ1YTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAog
MjAxNy0wOC0yOSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKKyAgICAgICAgW01h
Y10gVXBzdHJlYW0gQ2FyYm9uLXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDg3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFBB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvRm91
bmRhdGlvblNQSS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMv
TlNXaW5kb3dTUEkuaC4KKyAgICAgICAgKiBwYWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TV2luZG93U1BJLmguCisg
ICAgICAgICogcGFsL3NwaS9tYWMvTlNFdmVudFNQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFj
L05TV2luZG93U1BJLmg6CisgICAgICAgICogcGFsL3NwaS9tYWMvUXVpY2tEcmF3U1BJLmg6IEFk
ZGVkLgorCisyMDE3LTA4LTI5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKwogICAg
ICAgICBbWGNvZGVdIEZpeCB1cCBmaWxlIGFuZCBncm91cCBwYXRocyBpbiBQQUwueGNvZGVwcm9q
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwNzMK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAyZDMyNWU1OTU3MmI4ZTE5OTNiN2JmMTA1NDE1ZmY2ZmY4YmQ0MjVlLi5i
NmY2OGQ5ZWEyMjc5Zjk4YWQyOWVkMTJmNjY2MzM2MGVjMjgwMTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDE3LTA4LTI5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbTWFjXSBVcHN0cmVhbSBDYXJib24tcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzYwODcKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisg
ICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbToKKyAgICAgICAg
KFdlYktpdDo6Y2dXaW5kb3dJRCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6c2NyaXB0Q29k
ZUZyb21DdXJyZW50S2V5Ym9hcmRJbnB1dFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luOjpzZW5kQ29tcGxleFRleHRJbnB1dCk6CisKIDIwMTctMDgtMjkgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyBsb2dpYyBkb2VzIG5vdCB1bmRlcnN0YW5kIGN1c3RvbSBXZWJzaXRlRGF0YSBzdG9yZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggNTBiNjkyOTIyNzM2ODAwMDliNmFmN2QyNjNmMmNkZWJh
NzUyMGYwYS4uMzUwOWY4NmNjZWFkOTdjNzdmYzE2MmRhMmZjMTBmM2QzNjg4MGI5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wOC0yOSAgQW5keSBFc3RlcyAg
PGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gVXBzdHJlYW0gQ2FyYm9uLXJlbGF0
ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFdlYktpdExlZ2FjeS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCiAyMDE3LTA4LTI5ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRA
c29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBVc2UgZmluZF9wYWNrYWdlIGZvciB6bGliCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNGEzMDkxNzNjOTY5MGVlYzdhNjE0NGZiNTM0
YTI0ZjhiOTk4NDJjZi4uYjgzYWRjYmI2ZjgwNzllZTE5OGU2MjQ4ZTc4OWE3MmJiMzc5YWFlZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ2IEBACiAyMDE3LTA4LTI5
ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBbTWFjXSBVcHN0cmVh
bSBDYXJib24tcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwODcKKworICAgICAg
ICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJv
blV0aWxzLm06CisgICAgICAgIChnZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KToKKyAgICAgICAg
KFdlYkluaXRGb3JDYXJib24pOgorICAgICAgICAoUG9vbENsZWFuZXIpOgorICAgICAgICAqIENh
cmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tOgorICAgICAgICAoK1tDYXJib25XaW5kb3dBZGFw
dGVyIGZyYW1lVmlld0NsYXNzRm9yU3R5bGVNYXNrOl0pOgorICAgICAgICAoLVtDYXJib25XaW5k
b3dBZGFwdGVyIGluaXRXaXRoQ2FyYm9uV2luZG93UmVmOnRha2luZ093bmVyc2hpcDpkaXNhYmxl
T3JkZXJpbmc6Y2FyYm9uOl0pOgorICAgICAgICAoLVtDYXJib25XaW5kb3dBZGFwdGVyIF9vbGRQ
bGFjZVdpbmRvdzpdKToKKyAgICAgICAgKC1bQ2FyYm9uV2luZG93QWRhcHRlciBfd2luZG93TW92
ZWRUb1JlY3Q6XSk6CisgICAgICAgICogQ2FyYm9uL0hJVmlld0FkYXB0ZXIubToKKyAgICAgICAg
KiBDYXJib24vSElXZWJWaWV3Lm1tOgorICAgICAgICAoRHJhdyk6CisgICAgICAgIChDcmVhdGVO
U0V2ZW50QWRvcHRpbmdDR0V2ZW50KToKKyAgICAgICAgKENvcHlFdmVudENHRXZlbnQpOgorICAg
ICAgICAoQ3JlYXRlTlNFdmVudFdpdGhDYXJib25DbGlja0V2ZW50KToKKyAgICAgICAgKENsaWNr
KToKKyAgICAgICAgKENyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZlbnQpOgorICAgICAgICAoTW91
c2VVcCk6CisgICAgICAgIChDcmVhdGVOU0V2ZW50V2l0aENhcmJvbk1vdXNlTW92ZUV2ZW50KToK
KyAgICAgICAgKE1vdXNlTW92ZWQpOgorICAgICAgICAoTW91c2VEcmFnZ2VkKToKKyAgICAgICAg
KE1vdXNlV2hlZWxNb3ZlZCk6CisgICAgICAgIChXaW5kb3dIYW5kbGVyKToKKyAgICAgICAgKEhJ
V2ViVmlld0V2ZW50SGFuZGxlcik6CisgICAgICAgICogTWlzYy9RdWlja0RyYXdDb21wYXRpYmls
aXR5Lmg6IFJlbW92ZWQuCisgICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50
SGFuZGxlckNhcmJvbi5tbToKKyAgICAgICAgKGdldENhcmJvbkV2ZW50KToKKyAgICAgICAgKFdl
Yk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjprZXlEb3duKToKKyAgICAgICAgKFdl
Yk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjprZXlVcCk6CisgICAgICAgICogUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tOgorICAgICAgICAoV2Vi
TmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYTo6a2V5RG93bik6CisgICAgICAgICogUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgtW1dlYk5ldHNjYXBlUGx1
Z2luVmlldyB0ZWxsUXVpY2tUaW1lVG9DaGlsbF0pOgorCisyMDE3LTA4LTI5ICBBbmR5IEVzdGVz
ICA8YWVzdGVzQGFwcGxlLmNvbT4KKwogICAgICAgICBbTWFjXSBVcHN0cmVhbSBXS1NldE1ldGFk
YXRhVVJMKCkgZnJvbSBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjA0NgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWZkZTcwYmFmMDU4NzQz
M2Y0NzBhMzNlZmY4YWVmZjhhYWY1MzVlNi4uZmQzZWJjNmMxYWVjNDYyMzNiMjI3OWFhODNlYjMz
Yjg3NmRhMjEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtOTcsNiArOTcsOSBAQAogCQkxQzA5RDA1MzFFMzFDNDQxMDA3MjVG
MTggLyogQ3J5cHRvRGlnZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQzA5RDA1MjFFMzFDNDQxMDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0LmggKi87
IH07CiAJCTFDMDlEMDU2MUUzMUM0NjUwMDcyNUYxOCAvKiBDcnlwdG9EaWdlc3RDb21tb25Dcnlw
dG8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMw
OUQwNTUxRTMxQzQ2NTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAgKi87
IH07CiAJCTFDMDlEMDU4MUUzMUM1N0UwMDcyNUYxOCAvKiBjb25maWcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMDlEMDU3MUUzMUM1N0UwMDcyNUYx
OCAvKiBjb25maWcuaCAqLzsgfTsKKwkJQTEwMjY1ODcxRjU2NzQ2MTAwQjRDODQ0IC8qIEZvdW5k
YXRpb25TUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMDI2NTg2MUY1Njc0NjEwMEI0Qzg0NCAvKiBGb3VuZGF0aW9uU1BJLmggKi87IH07CisJCUEx
MDI2NTg5MUY1Njc0N0EwMEI0Qzg0NCAvKiBISVRvb2xib3hTUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMDI2NTg4MUY1Njc0N0EwMEI0Qzg0NCAv
KiBISVRvb2xib3hTUEkuaCAqLzsgfTsKKwkJQTEwMjY1OEIxRjU2NzQ4QzAwQjRDODQ0IC8qIFF1
aWNrRHJhd1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTEwMjY1OEExRjU2NzQ4QzAwQjRDODQ0IC8qIFF1aWNrRHJhd1NQSS5oICovOyB9OwogCQlB
MUY1NURDRjFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRjU1RENFMUY1NTI4RUMwMEVEQjc1RiAv
KiBNZXRhZGF0YVNQSS5oICovOyB9OwogCQlBMzBENDEyMTFGMEREMEVBMDBCNzE5NTQgLyogS2ls
bFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEz
MEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oICovOyB9OwogCQlBMzBENDEyMjFG
MEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmdOb25lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxs
UmluZ05vbmUuY3BwICovOyB9OwpAQCAtMjA5LDYgKzIxMiw5IEBACiAJCTFDMDlEMDYzMUUzMUVD
MzEwMDcyNUYxOCAvKiBCYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0
aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDNjdDRUEx
MUUzMkVEQTgwMEY4MEYyRSAvKiBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQueGNjb25maWc7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUM2N0NFQTIxRTMyRUUyNjAwRjgwRjJFIC8qIFZlcnNpb24ueGNj
b25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gVmVyc2lvbi54Y2NvbmZpZzsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTEwMjY1ODYxRjU2NzQ2MTAwQjRDODQ0IC8q
IEZvdW5kYXRpb25TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm91bmRh
dGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTAyNjU4ODFGNTY3NDdB
MDBCNEM4NDQgLyogSElUb29sYm94U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEhJVG9vbGJveFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTAyNjU4
QTFGNTY3NDhDMDBCNEM4NDQgLyogUXVpY2tEcmF3U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFF1aWNrRHJhd1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBMUY1NURDRTFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWV0YWRhdGFTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUUx
RjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEtpbGxSaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMEQ0MTFG
MUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZ05vbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gS2lsbFJpbmdOb25lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI4MSw2ICsyODcsNyBAQAogCQkJCTBDMkRBMTIzMUYzQkVCNDkwMERCQzMxNyAv
KiBDRk5TVVJMQ29ubmVjdGlvblNQSS5oICovLAogCQkJCTBDMkRBMTI0MUYzQkVCNDkwMERCQzMx
NyAvKiBDb3JlVGV4dFNQSS5oICovLAogCQkJCTBDMkRBMTI1MUYzQkVCNDkwMERCQzMxNyAvKiBE
YXRhRGV0ZWN0b3JzQ29yZVNQSS5oICovLAorCQkJCUExMDI2NTg2MUY1Njc0NjEwMEI0Qzg0NCAv
KiBGb3VuZGF0aW9uU1BJLmggKi8sCiAJCQkJMEMyREExMjYxRjNCRUI0OTAwREJDMzE3IC8qIElP
UE1MaWJTUEkuaCAqLywKIAkJCQkwQzJEQTEyNzFGM0JFQjQ5MDBEQkMzMTcgLyogSU9QU0xpYlNQ
SS5oICovLAogCQkJCTBDMkRBMTI4MUYzQkVCNDkwMERCQzMxNyAvKiBJT1JldHVyblNQSS5oICov
LApAQCAtMzMxLDYgKzMzOCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwQzc3ODU3MDFGNDUx
MzBGMDBGNEVCQjYgLyogQVZGb3VuZGF0aW9uU1BJLmggKi8sCiAJCQkJMEM3Nzg1NzExRjQ1MTMw
RjAwRjRFQkI2IC8qIERhdGFEZXRlY3RvcnNTUEkuaCAqLywKKwkJCQlBMTAyNjU4ODFGNTY3NDdB
MDBCNEM4NDQgLyogSElUb29sYm94U1BJLmggKi8sCiAJCQkJMEM3Nzg1NzIxRjQ1MTMwRjAwRjRF
QkI2IC8qIExvb2t1cFNQSS5oICovLAogCQkJCTBDNzc4NTczMUY0NTEzMEYwMEY0RUJCNiAvKiBN
ZWRpYVJlbW90ZVNQSS5oICovLAogCQkJCUExRjU1RENFMUY1NTI4RUMwMEVEQjc1RiAvKiBNZXRh
ZGF0YVNQSS5oICovLApAQCAtMzUzLDYgKzM2MSw3IEBACiAJCQkJMEM3Nzg1ODQxRjQ1MTMwRjAw
RjRFQkI2IC8qIE5TV2luZG93U1BJLmggKi8sCiAJCQkJMEM3Nzg1ODUxRjQ1MTMwRjAwRjRFQkI2
IC8qIFBJUFNQSS5oICovLAogCQkJCTBDNzc4NTg2MUY0NTEzMEYwMEY0RUJCNiAvKiBRVEtpdFNQ
SS5oICovLAorCQkJCUExMDI2NThBMUY1Njc0OEMwMEI0Qzg0NCAvKiBRdWlja0RyYXdTUEkuaCAq
LywKIAkJCQkwQzc3ODU4NzFGNDUxMzBGMDBGNEVCQjYgLyogUXVpY2tMb29rTWFjU1BJLmggKi8s
CiAJCQkJMEM3Nzg1ODgxRjQ1MTMwRjAwRjRFQkI2IC8qIFRVQ2FsbFNQSS5oICovLAogCQkJKTsK
QEAgLTQ5OSw3ICs1MDgsOSBAQAogCQkJCTBDNzc4NThBMUY0NTEzMEYwMEY0RUJCNiAvKiBEYXRh
RGV0ZWN0b3JzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxQTFGNDNBNEM3MDAyRUFD
MDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEOUU3MzFF
RUY1QUY2MDBEQkMzMTcgLyogRXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLywKKwkJCQlBMTAy
NjU4NzFGNTY3NDYxMDBCNEM4NDQgLyogRm91bmRhdGlvblNQSS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEM1QUY5MUIxRjQzQTRDNzAwMkVBQzAyIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUExMDI2NTg5MUY1Njc0N0EwMEI0Qzg0NCAvKiBISVRvb2xib3hTUEku
aCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTFGMUYzQkU5RTAwMERCQzMxNyAvKiBJbWFnZUlP
U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0MjFGM0JFQjQ5MDBEQkMzMTcgLyogSU9Q
TUxpYlNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNDMxRjNCRUI0OTAwREJDMzE3IC8q
IElPUFNMaWJTUEkuaCBpbiBIZWFkZXJzICovLApAQCAtNTUxLDYgKzU2Miw3IEBACiAJCQkJMEMy
REExNTYxRjNCRUI0OTAwREJDMzE3IC8qIHB0aHJlYWRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBDNzc4NTlGMUY0NTEzMEYwMEY0RUJCNiAvKiBRVEtpdFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEMyREExNTcxRjNCRUI0OTAwREJDMzE3IC8qIFF1YXJ0ekNvcmVTUEkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUExMDI2NThCMUY1Njc0OEMwMEI0Qzg0NCAvKiBRdWlja0RyYXdTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBDNzc4NUEwMUY0NTEzMEYwMEY0RUJCNiAvKiBRdWlja0xvb2tNYWNT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTIwMUY0M0E0QzcwMDJFQUMwMiAvKiBRdWlj
a0xvb2tTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU4MUYzQkVCNDkwMERCQzMxNyAv
KiBTZXJ2ZXJzU1BJLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NvY29hL0ZvdW5kYXRpb25TUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NvY29hL0ZvdW5kYXRpb25TUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODQxNzVkMTJiOWUzYzdi
ZGYyNmQyZWJiNTMwMzY4ZWE3N2VlZTBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY29jb2EvRm91bmRhdGlvblNQSS5oCkBAIC0wLDAgKzEsNDEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisK
KyNpbmNsdWRlIDxGb3VuZGF0aW9uL05TUHJpdmF0ZURlY2xzLmg+CisKKyNlbmRpZgorCit0eXBl
ZGVmIHZvaWQqIE5TQXV0b3JlbGVhc2VQb29sTWFyazsKKworV1RGX0VYVEVSTl9DX0JFR0lOCisK
K05TQXV0b3JlbGVhc2VQb29sTWFyayBOU1B1c2hBdXRvcmVsZWFzZVBvb2woTlNVSW50ZWdlciBj
YXBhY2l0eSk7Cit2b2lkIE5TUG9wQXV0b3JlbGVhc2VQb29sKE5TQXV0b3JlbGVhc2VQb29sTWFy
ayk7CisKK1dURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21h
Yy9ISVRvb2xib3hTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTA4NmQ1MWUyYzgzY2NiNmUxMjk2OWY1Y2Y1
OTQ0Y2JjMDQzODVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvbWFjL0hJVG9vbGJveFNQSS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbmNsdWRlIDxISVRv
b2xib3gvSElUb29sYm94UHJpdi5oPgorCisjZW5kaWYKKwordHlwZWRlZiBzdHJ1Y3QgX19UU01J
bnB1dFNvdXJjZSogVFNNSW5wdXRTb3VyY2VSZWY7CisKK1dURl9FWFRFUk5fQ19CRUdJTgorCitP
U1N0YXR1cyBfU3luY1dpbmRvd1dpdGhDR0FmdGVyTW92ZShXaW5kb3dSZWYpOworQ0dXaW5kb3dJ
RCBHZXROYXRpdmVXaW5kb3dGcm9tV2luZG93UmVmKFdpbmRvd1JlZik7CitPU1N0YXR1cyBUU01Q
cm9jZXNzUmF3S2V5RXZlbnQoRXZlbnRSZWYpOworRXZlbnRSZWYgR2V0Q3VycmVudEV2ZW50KCk7
CisKK1dURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL21hYy9OU0V2ZW50U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNF
dmVudFNQSS5oCmluZGV4IDg1NzdjZTU4M2VhMWMyMjhkNDRjYmYyNDg1NWY3MGZjZGNmMmYxMTgu
LmMxNjBiODRmMjNmODBhOThjOGYxNTFiM2FlZGFiNDBmOThmYjFjZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU0V2ZW50U1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvbWFjL05TRXZlbnRTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsNiArMjcsOCBAQAogCiAjaWYg
UExBVEZPUk0oTUFDKQogCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiAjaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKIAogI2ltcG9ydCA8QXBwS2l0L05TRXZlbnRfUHJpdmF0ZS5oPgpAQCAt
MzcsNiArMzksMTQgQEAgZW51bSB7CiAgICAgTlNFdmVudFN3aXBlVHJhY2tpbmdDb25zdW1lTW91
c2VFdmVudHMgPSAweDEgPDwgMgogfTsKIAorQGludGVyZmFjZSBOU0V2ZW50ICgpCistIChudWxs
YWJsZSBOU0V2ZW50ICopX2luaXRXaXRoQ0dFdmVudDoobnVsbGFibGUgQ0dFdmVudFJlZiljZ0V2
ZW50IGV2ZW50UmVmOihudWxsYWJsZSB2b2lkKilldmVudFJlZjsKKy0gKG51bGxhYmxlIHZvaWQq
KV9ldmVudFJlZiBOU19SRVRVUk5TX0lOTkVSX1BPSU5URVI7CistIChOU0V2ZW50ICopX2V2ZW50
UmVsYXRpdmVUb1dpbmRvdzooTlNXaW5kb3cgKil3aW5kb3c7CitAZW5kCisKICNlbmRpZgogCitO
U19BU1NVTUVfTk9OTlVMTF9FTkQKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL21hYy9OU1dpbmRvd1NQSS5oCmluZGV4IDAyYzMzZjcxMzU1N2VhZGM1ZDA2MTI3ZDk5Mjkw
N2E2NjY0YzI2NmQuLmJhYjg0MDBmMDQ5ZDk0YjkyZGVmZWE5YWU5NTMxNjJmZjIxNTg5NDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1dpbmRvd1NQSS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1dpbmRvd1NQSS5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQxLDYgKzQx
LDEwIEBACiAKIEBlbmQKIAorZW51bSB7CisgICAgX05TQ2FyYm9uV2luZG93TWFzayA9IDEgPDwg
MjUsCit9OworCiAjZW5kaWYKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9RdWlja0RyYXdTUEkuaCBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9RdWlja0RyYXdTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWQyZGNj
ZDJkMTBiZmZlM2NiNTUwOGJhZGNhNjVhMzZlNjEwNTdkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL1F1aWNrRHJhd1NQSS5oCkBAIC0wLDAgKzEsOTMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWZuZGVmIF9fTFA2NF9fCisK
KyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW5jbHVkZSA8UUQvUXVpY2tkcmF3UHJp
di5oPgorCisjZWxzZQorCisjZGVmaW5lIE1hY1NldFJlY3QgU2V0UmVjdAorI2RlZmluZSBNYWNT
ZXRSZWN0UmduIFNldFJlY3RSZ24KKyNkZWZpbmUgTWFjVW5pb25SZ24gVW5pb25SZ24KKworZW51
bSB7CisgICAgYmxhY2tDb2xvciA9IDMzLAorICAgIHdoaXRlQ29sb3IgPSAzMCwKKyAgICBncmVl
bkNvbG9yID0gMzQxLAorfTsKKworZW51bSB7CisgICAga0JpdHNQcm9jID0gOCwKK307CisKKyNl
bmRpZgorCit0eXBlZGVmIGxvbmcgUUREcmF3aW5nVHlwZTsKKworV1RGX0VYVEVSTl9DX0JFR0lO
CisKK0Jvb2xlYW4gRW1wdHlSZ24oUmduSGFuZGxlKTsKK09TU3RhdHVzIENyZWF0ZUNHQ29udGV4
dEZvclBvcnQoQ0dyYWZQdHIsIENHQ29udGV4dFJlZiopOworT1NTdGF0dXMgU3luY0NHQ29udGV4
dE9yaWdpbldpdGhQb3J0KENHQ29udGV4dFJlZiwgQ0dyYWZQdHIpOworUGl4TWFwSGFuZGxlIEdl
dFBvcnRQaXhNYXAoQ0dyYWZQdHIpOworUURFcnIgTmV3R1dvcmxkRnJvbVB0cihHV29ybGRQdHIq
LCBVSW50MzIsIGNvbnN0IFJlY3QqLCBDVGFiSGFuZGxlLCBHREhhbmRsZSwgR1dvcmxkRmxhZ3Ms
IFB0ciwgU0ludDMyKTsKK1JlY3QqIEdldFBvcnRCb3VuZHMoQ0dyYWZQdHIsIFJlY3QqKTsKK1Jl
Y3QqIEdldFJlZ2lvbkJvdW5kcyhSZ25IYW5kbGUsIFJlY3QqKTsKK1JnbkhhbmRsZSBHZXRQb3J0
Q2xpcFJlZ2lvbihDR3JhZlB0ciwgUmduSGFuZGxlKTsKK1JnbkhhbmRsZSBHZXRQb3J0VmlzaWJs
ZVJlZ2lvbihDR3JhZlB0ciwgUmduSGFuZGxlKTsKK1JnbkhhbmRsZSBOZXdSZ24oKTsKK3ZvaWQg
QmFja0NvbG9yKGxvbmcpOwordm9pZCBDYWxsRHJhd2luZ05vdGlmaWNhdGlvbnMoQ0dyYWZQdHIs
IGNvbnN0IFJlY3QqLCBRRERyYXdpbmdUeXBlKTsKK3ZvaWQgRGlzcG9zZUdXb3JsZChHV29ybGRQ
dHIpOwordm9pZCBEaXNwb3NlUmduKFJnbkhhbmRsZSk7Cit2b2lkIEZvcmVDb2xvcihsb25nKTsK
K3ZvaWQgR2V0R1dvcmxkKENHcmFmUHRyKiwgR0RIYW5kbGUqKTsKK3ZvaWQgR2V0UG9ydChHcmFm
UHRyKik7Cit2b2lkIEdsb2JhbFRvTG9jYWwoUG9pbnQqKTsKK3ZvaWQgTWFjU2V0UmVjdChSZWN0
Kiwgc2hvcnQsIHNob3J0LCBzaG9ydCwgc2hvcnQpOwordm9pZCBNYWNTZXRSZWN0UmduKFJnbkhh
bmRsZSwgc2hvcnQsIHNob3J0LCBzaG9ydCwgc2hvcnQpOwordm9pZCBNYWNVbmlvblJnbihSZ25I
YW5kbGUsIFJnbkhhbmRsZSwgUmduSGFuZGxlKTsKK3ZvaWQgTW92ZVBvcnRUbyhzaG9ydCwgc2hv
cnQpOwordm9pZCBPZmZzZXRSZWN0KFJlY3QqLCBzaG9ydCwgc2hvcnQpOwordm9pZCBPZmZzZXRS
Z24oUmduSGFuZGxlLCBzaG9ydCwgc2hvcnQpOwordm9pZCBQYWludFJlY3QoY29uc3QgUmVjdCop
Owordm9pZCBQZW5Ob3JtYWwoKTsKK3ZvaWQgUG9ydFNpemUoc2hvcnQsIHNob3J0KTsKK3ZvaWQg
UmVjdFJnbihSZ25IYW5kbGUsIGNvbnN0IFJlY3QqKTsKK3ZvaWQgU2VjdFJnbihSZ25IYW5kbGUs
IFJnbkhhbmRsZSwgUmduSGFuZGxlKTsKK3ZvaWQgU2V0R1dvcmxkKENHcmFmUHRyLCBHREhhbmRs
ZSk7Cit2b2lkIFNldE9yaWdpbihzaG9ydCwgc2hvcnQpOwordm9pZCBTZXRQb3J0KEdyYWZQdHIp
Owordm9pZCBTZXRQb3J0Q2xpcFJlZ2lvbihDR3JhZlB0ciwgUmduSGFuZGxlKTsKK3ZvaWQgU2V0
UG9ydFZpc2libGVSZWdpb24oQ0dyYWZQdHIsIFJnbkhhbmRsZSk7CisKK1dURl9FWFRFUk5fQ19F
TkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFj
L1BsdWdpblByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1Bs
dWdpblByb2Nlc3NNYWMubW0KaW5kZXggNTI5YzRiNTMzOWExYzg4NGQyNWUwZTJiNGUwYjUwOTJl
YTI5ZDQxOC4uZGQ1MzM3MDI0N2YwYTZiNzRhMDFiZmNjOGFhOTZmYTZmZmYzNDQxOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5t
bQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC00Niw2ICs0Niw3IEBA
CiAjaW1wb3J0IDxtYWNoL21hY2hfdm0uaD4KICNpbXBvcnQgPG1hY2gvdm1fc3RhdGlzdGljcy5o
PgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9ISVRvb2xi
b3hTUEkuaD4KICNpbXBvcnQgPHN5c2V4aXRzLmg+CiAjaW1wb3J0IDx3dGYvSGFzaFNldC5oPgog
I2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC05Niw3ICs5Nyw3IEBAIHN0YXRpYyBi
b29sIHdpbmRvd0NvdmVyc0FueVNjcmVlbihXaW5kb3dSZWYgd2luZG93KQogCiBzdGF0aWMgQ0dX
aW5kb3dJRCBjZ1dpbmRvd0lEKFdpbmRvd1JlZiB3aW5kb3cpCiB7Ci0gICAgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8Q0dXaW5kb3dJRD4oV0tHZXROYXRpdmVXaW5kb3dGcm9tV2luZG93UmVmKHdp
bmRvdykpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PENHV2luZG93SUQ+KEdldE5hdGl2
ZVdpbmRvd0Zyb21XaW5kb3dSZWYod2luZG93KSk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1
Z2luTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFj
L05ldHNjYXBlUGx1Z2luTWFjLm1tCmluZGV4IDIwMWIzZGNkODM5OTQ4NmI4ZTRlMmQ5MGM3NTlm
MmE5NTFlZDQzMjkuLmEzMTIwZTYyNTM4M2JlYjJhZjcwNzAyNzBmNDdmODU4OTkzMGMyMDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9O
ZXRzY2FwZVBsdWdpbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9y
dCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJm
YWNlLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJ
VG9vbGJveFNQSS5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3
dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKQEAgLTk4OCw2ICs5ODksMjEgQEAgc3RhdGljIGJvb2wg
Y29udmVydFN0cmluZ1RvS2V5Q29kZXMoU3RyaW5nVmlldyBzdHJpbmcsIFNjcmlwdENvZGUgc2Ny
aXB0Q29kZSwgVmUKIH0KICNlbmRpZgogCisjaWZuZGVmIE5QX05PX0NBUkJPTgorc3RhdGljIFNj
cmlwdENvZGUgc2NyaXB0Q29kZUZyb21DdXJyZW50S2V5Ym9hcmRJbnB1dFNvdXJjZSgpCit7Cisg
ICAgU2NyaXB0Q29kZSBzY3JpcHRDb2RlID0gc21Sb21hbjsKKyAgICBhdXRvIGlucHV0U291cmNl
ID0gYWRvcHRDRihUSVNDb3B5Q3VycmVudEtleWJvYXJkSW5wdXRTb3VyY2UoKSk7CisKKyAgICBD
RlR5cGVSZWYgc2NyaXB0Q29kZU51bWJlciA9IFRTTUdldElucHV0U291cmNlUHJvcGVydHkoKFRT
TUlucHV0U291cmNlUmVmKWlucHV0U291cmNlLmdldCgpLCBrVFNNSW5wdXRTb3VyY2VQcm9wZXJ0
eVNjcmlwdENvZGUpOworICAgIEFTU0VSVChDRkdldFR5cGVJRChzY3JpcHRDb2RlTnVtYmVyKSA9
PSBDRk51bWJlckdldFR5cGVJRCgpKTsKKyAgICBpZiAoc2NyaXB0Q29kZU51bWJlcikKKyAgICAg
ICAgQ0ZOdW1iZXJHZXRWYWx1ZSgoQ0ZOdW1iZXJSZWYpc2NyaXB0Q29kZU51bWJlciwga0NGTnVt
YmVyU0ludDE2VHlwZSwgJnNjcmlwdENvZGUpOworCisgICAgcmV0dXJuIHNjcmlwdENvZGU7Cit9
CisjZW5kaWYKKwogdm9pZCBOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhUZXh0SW5wdXQoY29u
c3QgU3RyaW5nJiB0ZXh0SW5wdXQpCiB7CiAgICAgaWYgKCFtX3BsdWdpbldhbnRzTGVnYWN5Q29j
b2FUZXh0SW5wdXQpIHsKQEAgLTEwMTEsNyArMTAyNyw3IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46
OnNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQogICAgIH0KICNp
Zm5kZWYgTlBfTk9fQ0FSQk9OCiAgICAgY2FzZSBOUEV2ZW50TW9kZWxDYXJib246IHsKLSAgICAg
ICAgU2NyaXB0Q29kZSBzY3JpcHRDb2RlID0gV0tHZXRTY3JpcHRDb2RlRnJvbUN1cnJlbnRLZXli
b2FyZElucHV0U291cmNlKCk7CisgICAgICAgIFNjcmlwdENvZGUgc2NyaXB0Q29kZSA9IHNjcmlw
dENvZGVGcm9tQ3VycmVudEtleWJvYXJkSW5wdXRTb3VyY2UoKTsKICAgICAgICAgVmVjdG9yPFVJ
bnQ4PiBrZXlDb2RlczsKIAogICAgICAgICBpZiAoIWNvbnZlcnRTdHJpbmdUb0tleUNvZGVzKHRl
eHRJbnB1dCwgc2NyaXB0Q29kZSwga2V5Q29kZXMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9XZWJLaXRMZWdhY3kueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
ZDRiZWVlYWRlZjFhNzg4YTQ5MjRhNGI2MDkxOTRjNzI0MzdkMGRlYy4uYzIyNDMwNTk2ZDY1OTIz
MzNjY2RjMzVlNjA5ODQ5NjE2YmQ3MGU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9XZWJLaXRMZWdhY3kueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDks
NyArMTQ5LDYgQEAKIAkJNTk4QUQ5MjgxMjAxQ0YzMjAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJNb2NrLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTk4QUQ5MjcxMjAxQ0YzMjAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJNb2NrLm1tICovOyB9OwogCQk1OThBRDkyQTEyMDFDRjNCMDBBQkFFNEUgLyog
V2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2tJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk4QUQ5MjkxMjAxQ0YzQjAwQUJBRTRF
IC8qIFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrSW50ZXJuYWwuaCAqLzsgfTsKIAkJ
NTk4QURBNDYxMjAyMjc1MDAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5OEFEQTQ1
MTIwMjI3NTAwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNUM3NzA2NzIxRDEx
MUIyMjAwMTI3MDBGIC8qIFF1aWNrRHJhd0NvbXBhdGliaWxpdHkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNzcwNjcxMUQxMTFCMjIwMDEyNzAwRiAv
KiBRdWlja0RyYXdDb21wYXRpYmlsaXR5LmggKi87IH07CiAJCTVEN0JGODE0MEMyQTFEOTAwMDhD
RTA2RCAvKiBXZWJJbnNwZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVEN0JGODEyMEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNwZWN0b3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1RDdCRjgx
NTBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQ3QkY4MTMwQzJBMUQ5MDAwOENFMDZEIC8qIFdl
Ykluc3BlY3Rvci5tbSAqLzsgfTsKIAkJNURFODNBN0EwRDBGN0Y5NDAwQ0FEMTJBIC8qIFdlYkph
dmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5uaWIgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVERTgzQTc0MEQwRjdGOTQwMENBRDEyQSAvKiBXZWJKYXZhU2Ny
aXB0VGV4dElucHV0UGFuZWwubmliICovOyB9OwpAQCAtMzE5LDcgKzMxOCw2IEBACiAJCTkzOTgx
MEZGMDgyNEJGMDEwMDhERjAzOCAvKiBDYXJib25XaW5kb3dGcmFtZS5tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjdFQkVFOTUwM0Y5REJBMTAzQ0EwREU2
IC8qIENhcmJvbldpbmRvd0ZyYW1lLm0gKi87IH07CiAJCTkzOTgxMTAwMDgyNEJGMDEwMDhERjAz
OCAvKiBISVZpZXdBZGFwdGVyLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGN0VCRUU5QjAzRjlEQkExMDNDQTBERTYgLyogSElWaWV3QWRhcHRlci5tICov
OyBzZXR0aW5ncyA9IHtDT01QSUxFUl9GTEFHUyA9ICItV25vLWRlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIjsgfTsgfTsKIAkJOTM5ODExMDEwODI0QkYwMTAwOERGMDM4IC8qIENhcmJvblV0aWxzLm0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNzlCOTc0OTA0
MDE5OTM0MDM2OTA5RDIgLyogQ2FyYm9uVXRpbHMubSAqLzsgfTsKLQkJOTM5ODExMDIwODI0QkYw
MTAwOERGMDM4IC8qIEhJV2ViVmlldy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY3RUJFRUFCMDNGOURCQTEwM0NBMERFNiAvKiBISVdlYlZpZXcubW0g
Ki87IHNldHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1Xbm8tZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiOyB9OyB9OwogCQk5Mzk4MTEwMzA4MjRCRjAxMDA4REYwMzggLyogV2ViS2l0RXJyb3Jz
Lm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzczMEY5
ODAzRkIxRTY2MDAwNDczNkUgLyogV2ViS2l0RXJyb3JzLm0gKi87IH07CiAJCTkzOTgxMTA2MDgy
NEJGMDEwMDhERjAzOCAvKiBXZWJGcmFtZVZpZXcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUE4QjUyRjA0MjgyQjU5MDBDQTJEM0EgLyogV2ViRnJh
bWVWaWV3Lm1tICovOyB9OwogCQk5Mzk4MTEwNzA4MjRCRjAxMDA4REYwMzggLyogV2ViVmlldy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQThCNTdB
MDQyODM0RjcwMENBMkQzQSAvKiBXZWJWaWV3Lm1tICovOyB9OwpAQCAtNjgwLDYgKzY3OCw3IEBA
CiAJCTkzRUIxNzhEMDlGODhENDYwMDkxRjhGRiAvKiBXZWJTeXN0ZW1JbnRlcmZhY2UubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0VCMTc4QzA5Rjg4
RDQ2MDA5MUY4RkYgLyogV2ViU3lzdGVtSW50ZXJmYWNlLm1tICovOyB9OwogCQk5M0VCMTc4RjA5
Rjg4RDUxMDA5MUY4RkYgLyogV2ViU3lzdGVtSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0VCMTc4RTA5Rjg4RDUxMDA5MUY4RkYgLyog
V2ViU3lzdGVtSW50ZXJmYWNlLmggKi87IH07CiAJCTkzRkRFOTMzMEQ3OUNBRjMwMDc0RjAyOSAv
KiBXZWJIaXN0b3J5SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzRkRFOTMyMEQ3OUNBRjMwMDc0RjAyOSAvKiBXZWJIaXN0b3J5SW50ZXJu
YWwuaCAqLzsgfTsKKwkJQTEwMjY1ODMxRjU2NTQwMzAwQjRDODQ0IC8qIEhJV2ViVmlldy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMDI2NTgyMUY1
NjU0MDMwMEI0Qzg0NCAvKiBISVdlYlZpZXcubW0gKi87IH07CiAJCUExMEMxRDE4MTgyMDJGOUMw
MDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBDMUQxMDE4MjAyRjlDMDAzNjg4M0EgLyogV2Vi
RGVmYXVsdEZvcm1EZWxlZ2F0ZS5oICovOyB9OwogCQlBMTBDMUQxOTE4MjAyRjlDMDAzNjg4M0Eg
LyogV2ViRGVmYXVsdEZvcm1EZWxlZ2F0ZS5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTEwQzFEMTExODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRG
b3JtRGVsZWdhdGUubSAqLzsgfTsKIAkJQTEwQzFEMUExODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRl
ZmF1bHRGcmFtZUxvYWREZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTEwQzFEMTIxODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGcmFt
ZUxvYWREZWxlZ2F0ZS5oICovOyB9OwpAQCAtOTg4LDcgKzk4Nyw2IEBACiAJCTU5OEFEOTI3MTIw
MUNGMzIwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9jay5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkRldmljZU9yaWVudGF0aW9u
UHJvdmlkZXJNb2NrLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OThBRDkyOTEy
MDFDRjNCMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2tJbnRlcm5h
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyTW9ja0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5
OEFEQTQ1MTIwMjI3NTAwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRldmljZU9yaWVudGF0aW9uUHJv
dmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUM3NzA2NzExRDExMUIyMjAw
MTI3MDBGIC8qIFF1aWNrRHJhd0NvbXBhdGliaWxpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1RDdCRjgxMjBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJbnNwZWN0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQ3QkY4MTMwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3Bl
Y3Rvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJJbnNw
ZWN0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVERTgzQTc1MEQwRjdGOTQw
MENBRDEyQSAvKiBFbmdsaXNoICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gd3JhcHBlci5uaWI7IG5hbWUgPSBFbmdsaXNoOyBwYXRoID0gRW5nbGlzaC5s
cHJvai9XZWJKYXZhU2NyaXB0VGV4dElucHV0UGFuZWwubmliOyBzb3VyY2VUcmVlID0gU09VUkNF
X1JPT1Q7IH07CkBAIC0xNDIwLDYgKzE0MTgsNyBAQAogCQk5M0ZERTkzMjBENzlDQUYzMDA3NEYw
MjkgLyogV2ViSGlzdG9yeUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkhpc3RvcnlJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
Q0FFOUQwNzAyNTJBNDEzMEVDQTE2RUEgLyogV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwogCQk5Q0YwRTI0OTAyMTM2MUIwMEVDQTE2RUEgLyogV2ViRnJhbWVQcml2YXRl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
RnJhbWVQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OworCQlBMTAyNjU4MjFGNTY1NDAzMDBCNEM4NDQgLyogSElXZWJWaWV3Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSElXZWJWaWV3Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBDMUQxMDE4MjAyRjlDMDAzNjg4M0EgLyog
V2ViRGVmYXVsdEZvcm1EZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLmg7IHBhdGggPSBpb3MvRGVmYXVsdERlbGVnYXRlcy9X
ZWJEZWZhdWx0Rm9ybURlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJ
QTEwQzFEMTExODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGb3JtRGVsZWdhdGUubSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBuYW1lID0gV2ViRGVmYXVsdEZvcm1EZWxlZ2F0ZS5t
OyBwYXRoID0gaW9zL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdEZvcm1EZWxlZ2F0ZS5tOyBz
b3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUExMEMxRDEyMTgyMDJGOUMwMDM2ODgzQSAv
KiBXZWJEZWZhdWx0RnJhbWVMb2FkRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV2ViRGVmYXVsdEZyYW1lTG9hZERlbGVnYXRlLmg7IHBhdGggPSBpb3MvRGVmYXVs
dERlbGVnYXRlcy9XZWJEZWZhdWx0RnJhbWVMb2FkRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9IFNP
VVJDRV9ST09UOyB9OwpAQCAtMTU5Nyw3ICsxNTk2LDYgQEAKIAkJRjdFQkVFOUEwM0Y5REJBMTAz
Q0EwREU2IC8qIEhJVmlld0FkYXB0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSElWaWV3QWRhcHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjdFQkVFOUIwM0Y5REJBMTAz
Q0EwREU2IC8qIEhJVmlld0FkYXB0ZXIubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gSElWaWV3QWRhcHRlci5tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjdFQkVFQUEwM0Y5REJB
MTAzQ0EwREU2IC8qIEhJV2ViVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBISVdlYlZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUY3RUJFRUFCMDNGOURCQTEwM0NBMERF
NiAvKiBISVdlYlZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRG
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgZmlsZUVuY29kaW5nID0gMzA7IHBhdGgg
PSBISVdlYlZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHVzZXNUYWJzID0gMDsgfTsK
IAkJRjgzNEFBRDUwRTY0QjFDNzAwRTI3MzdDIC8qIFdlYlRleHRJdGVyYXRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJUZXh0SXRlcmF0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjgzNEFBRDYwRTY0QjFDNzAwRTI3MzdDIC8qIFdlYlRleHRJdGVy
YXRvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlRleHRJ
dGVyYXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjhDQTE1QjUwMjlBMzlE
OTAxMDAwMTIyIC8qIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aGVudGljYXRpb25QYW5lbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
QEAgLTE3NjksNyArMTc2Nyw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlBMTBDMUQyMDE4MjAy
RkFGMDAzNjg4M0EgLyogaW9zICovLAogCQkJCTI5QUVGOTVEMTM0Qzc1NTQwMEZFNTA5NiAvKiBP
dXRsb29rUXVpcmtzVXNlclNjcmlwdC5qcyAqLywKLQkJCQk1Qzc3MDY3MTFEMTExQjIyMDAxMjcw
MEYgLyogUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5oICovLAogCQkJCTUyNDFBREYzMEIxQkM0OEEw
MDQwMTJCRCAvKiBXZWJDYWNoZS5oICovLAogCQkJCTUyNDFBREY0MEIxQkM0OEEwMDQwMTJCRCAv
KiBXZWJDYWNoZS5tbSAqLywKIAkJCQlGNTlFQUUzRTAyNTNDN0VFMDE4NjM1Q0EgLyogV2ViQ29y
ZVN0YXRpc3RpY3MuaCAqLywKQEAgLTI2NzIsNyArMjY2OSw3IEBACiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUY3RUJFRUFBMDNGOURCQTEwM0NBMERFNiAvKiBISVdl
YlZpZXcuaCAqLywKLQkJCQlGN0VCRUVBQjAzRjlEQkExMDNDQTBERTYgLyogSElXZWJWaWV3Lm1t
ICovLAorCQkJCUExMDI2NTgyMUY1NjU0MDMwMEI0Qzg0NCAvKiBISVdlYlZpZXcubW0gKi8sCiAJ
CQkpOwogCQkJbmFtZSA9ICJDIEFQSSI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
MjkzNiw3ICsyOTMzLDYgQEAKIAkJCQk3QzAxQ0I4NTE3MzQzNUM5MDBDNUQ4MDcgLyogUG9wdXBN
ZW51TWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTJEQkU5RjBGMjUxRTNBMDAzNkY4QTYgLyog
UHJveHlJbnN0YW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE2OTgzNjIxMTM0NkQxQjAwODk0
MTE1IC8qIFByb3h5UnVudGltZU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNUM3NzA2NzIx
RDExMUIyMjAwMTI3MDBGIC8qIFF1aWNrRHJhd0NvbXBhdGliaWxpdHkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUExMEMxRDYyMTgyMDMwMEUwMDM2ODgzQSAvKiBTZWFyY2hQb3B1cE1lbnVJT1MuaCBp
biBIZWFkZXJzICovLAogCQkJCTdDMDFDQjg3MTczNDM1QzkwMEM1RDgwNyAvKiBTZWFyY2hQb3B1
cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNkIzMTMyMUE1MUYzQTkwMDQyMjk3NSAv
KiBTdG9yYWdlQXJlYUltcGwuaCBpbiBIZWFkZXJzICovLApAQCAtMzUxMyw3ICszNTA5LDcgQEAK
IAkJCQk5M0Q0Mzc5QTFENTdBQkVGMDBBQjg1RUEgLyogRXhjZXB0aW9uSGFuZGxlcnMubW0gaW4g
U291cmNlcyAqLywKIAkJCQkxQTYwNTE5MzE3NTAyQTVEMDBCQzYyRjUgLyogSGlzdG9yeVByb3Bl
cnR5TGlzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzOTgxMTAwMDgyNEJGMDEwMDhERjAzOCAv
KiBISVZpZXdBZGFwdGVyLm0gaW4gU291cmNlcyAqLywKLQkJCQk5Mzk4MTEwMjA4MjRCRjAxMDA4
REYwMzggLyogSElXZWJWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQTEwMjY1ODMxRjU2NTQw
MzAwQjRDODQ0IC8qIEhJV2ViVmlldy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBOERFRDUxMEVF
ODhCOEEwMEYyNTAyMiAvKiBIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUExMEMxRDMzMTgyMDJGQzUwMDM2ODgzQSAvKiBNZW1vcnlNZWFzdXJlLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUFBRjVDRUIwRURERTFGRTAwOEQ4ODNEIC8qIE5ldHNjYXBlUGx1
Z2luSG9zdE1hbmFnZXIubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25VdGlscy5tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2FyYm9uL0NhcmJvblV0aWxzLm0KaW5kZXggYzU4NjIzZDQwNzFkZWI4NDc4ZjIwOWVjYjg4
N2RiM2UyZWVjNjg1MS4uZmFkMmY2MGZlZDdkYjQxODMxNDRiM2YyOTk3Mzk5NGUzMmNlMGFlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvblV0aWxzLm0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvblV0aWxzLm0KQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDYg
KzMwLDcgQEAKIAogI2luY2x1ZGUgIkNhcmJvblV0aWxzLmgiCiAjaW1wb3J0IDxXZWJLaXRTeXN0
ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvRm91bmRhdGlvblNQSS5oPgog
CiBleHRlcm4gQ0dJbWFnZVJlZiBfTlNDcmVhdGVJbWFnZVJlZiggdW5zaWduZWQgY2hhciAqY29u
c3QgYml0bWFwRGF0YVs1XSwgaW50IHBpeGVsc1dpZGUsIGludCBwaXhlbHNIaWdoLCBpbnQgYml0
c1BlclNhbXBsZSwgaW50IHNhbXBsZXNQZXJQaXhlbCwgaW50IGJpdHNQZXJQaXhlbCwgaW50IGJ5
dGVzUGVyUm93LCBCT09MIGlzUGxhbmFyLCBCT09MIGhhc0FscGhhLCBOU1N0cmluZyAqY29sb3JT
cGFjZU5hbWUsIENHQ29sb3JTcGFjZVJlZiBjdXN0b21Db2xvclNwYWNlLCBpZCBzb3VyY2VPYmop
OwogCkBAIC00MSw2ICs0MiwxNCBAQAogCiB2b2lkICAgICAgICAgICAgICAgICAgICBISVdlYlZp
ZXdSZWdpc3RlckNsYXNzKCB2b2lkICk7CiAKK3N0YXRpYyB1bnNpZ25lZCBnZXROU0F1dG9yZWxl
YXNlUG9vbENvdW50KHZvaWQpCit7CisgICAgdm9pZCogdiA9IE5TUHVzaEF1dG9yZWxlYXNlUG9v
bCgwKTsKKyAgICB1aW50cHRyX3QgbnVtUG9vbHMgPSAodWludHB0cl90KXY7CisgICAgTlNQb3BB
dXRvcmVsZWFzZVBvb2wodik7CisgICAgcmV0dXJuIG51bVBvb2xzOworfQorCiB2b2lkCiBXZWJJ
bml0Rm9yQ2FyYm9uKCkKIHsKQEAgLTU2LDcgKzY1LDcgQEAKICAgICAgICAgTlNBcHBsaWNhdGlv
bkxvYWQoKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgc1Bvb2wgPSBbW05TQXV0b3JlbGVh
c2VQb29sIGFsbG9jV2l0aFpvbmU6TlVMTF0gaW5pdF07Ci0gICAgICAgIG51bVBvb2xzID0gV0tH
ZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KCk7CisgICAgICAgIG51bVBvb2xzID0gZ2V0TlNBdXRv
cmVsZWFzZVBvb2xDb3VudCgpOwogICAgICAgICAKICAgICAgICAgcG9vbExvb3AgPSBHZXRDdXJy
ZW50RXZlbnRMb29wICgpOwogCkBAIC04MiwxMiArOTEsMTIgQEAKICAgICAgICAgQ0ZTdHJpbmdS
ZWYgbW9kZSA9IENGUnVuTG9vcENvcHlDdXJyZW50TW9kZSggKENGUnVuTG9vcFJlZilHZXRDRlJ1
bkxvb3BGcm9tRXZlbnRMb29wKCBHZXRDdXJyZW50RXZlbnRMb29wKCkgKSk7CiAgICAgICAgIEV2
ZW50TG9vcFJlZiB0aGlzTG9vcCA9IEdldEN1cnJlbnRFdmVudExvb3AgKCk7CiAgICAgICAgIGlm
ICggQ0ZFcXVhbCggbW9kZSwga0NGUnVuTG9vcERlZmF1bHRNb2RlICkgJiYgdGhpc0xvb3AgPT0g
cG9vbExvb3ApIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIGN1cnJlbnROdW1Qb29scyA9IFdLR2V0
TlNBdXRvcmVsZWFzZVBvb2xDb3VudCgpLTE7ICAgICAgICAgICAgCisgICAgICAgICAgICB1bnNp
Z25lZCBjdXJyZW50TnVtUG9vbHMgPSBnZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KCktMTsgICAg
ICAgICAgICAKICAgICAgICAgICAgIGlmIChjdXJyZW50TnVtUG9vbHMgPT0gbnVtUG9vbHMpewog
ICAgICAgICAgICAgICAgIFtzUG9vbCBkcmFpbl07CiAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgc1Bvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jV2l0aFpvbmU6TlVMTF0g
aW5pdF07Ci0gICAgICAgICAgICAgICAgbnVtUG9vbHMgPSBXS0dldE5TQXV0b3JlbGVhc2VQb29s
Q291bnQoKTsKKyAgICAgICAgICAgICAgICBudW1Qb29scyA9IGdldE5TQXV0b3JlbGVhc2VQb29s
Q291bnQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBDRlJlbGVhc2UoIG1v
ZGUgKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25X
aW5kb3dBZGFwdGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldp
bmRvd0FkYXB0ZXIubW0KaW5kZXggNjAwOWRmY2Q4NzA3MzRlMzAyYjk0ODUxOTA5YWNhNmM5OWE4
ZWUzZi4uMWJkNTNlODkwN2Q3ZjcwOTM0NDgyYTBmNTBkNzg3ZmVkYjQzNzQwMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIu
bW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTczLDYgKzczLDggQEAKICNpbXBvcnQgPGFzc2VydC5oPgogCiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYkNvcmVPYmpDRXh0cmFzLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9ISVRvb2xib3hTUEku
aD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TV2luZG93U1BJLmg+CiAjaW1wb3J0IDxydW50aW1l
L0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1w
b3J0IDx3dGYvUnVuTG9vcC5oPgpAQCAtODEsNiArODMsOSBAQAogI2ltcG9ydCAiV2ViTlNPYmpl
Y3RFeHRyYXMuaCIKICNpbXBvcnQgIldlYlR5cGVzSW50ZXJuYWwuaCIKIAorZXh0ZXJuIGNvbnN0
IE9TVHlwZSBOU0FwcEtpdFByb3BlcnR5Q3JlYXRvcjsKK2V4dGVybiBjb25zdCBPU1R5cGUgTlND
YXJib25XaW5kb3dQcm9wZXJ0eVRhZzsKKwogQGludGVyZmFjZSBOU1dpbmRvdyhISVdlYkZyYW1l
VmlldykKIC0gKGlkKV9pbml0Q29udGVudDooY29uc3QgTlNSZWN0ICopY29udGVudFJlY3Qgc3R5
bGVNYXNrOih1bnNpZ25lZCBpbnQpYVN0eWxlIGJhY2tpbmc6KE5TQmFja2luZ1N0b3JlVHlwZSli
dWZmZXJpbmdUeXBlIGRlZmVyOihCT09MKWZsYWcgY29udGVudFZpZXc6YVZpZXc7CiAtICh2b2lk
KV9vbGRQbGFjZVdpbmRvdzooTlNSZWN0KWZyYW1lUmVjdDsKQEAgLTExMSw3ICsxMTYsNyBAQCBA
aW1wbGVtZW50YXRpb24gQ2FyYm9uV2luZG93QWRhcHRlcgogKyAoQ2xhc3MpZnJhbWVWaWV3Q2xh
c3NGb3JTdHlsZU1hc2s6KHVuc2lnbmVkIGludClzdHlsZSB7CiAKICAgICAvLyBUaGVyZSdzIG9u
bHkgb25lIGFwcHJvcHJpYXRlIHdpbmRvdyBzdHlsZSwgYW5kIG9ubHkgb25lIGFwcHJvcHJpYXRl
IHdpbmRvdyBmcmFtZSBjbGFzcy4KLSAgICBhc3NlcnQoc3R5bGUgJiBXS0NhcmJvbldpbmRvd01h
c2soKSk7CisgICAgYXNzZXJ0KHN0eWxlICYgX05TQ2FyYm9uV2luZG93TWFzayk7CiAgICAgcmV0
dXJuIFtDYXJib25XaW5kb3dGcmFtZSBjbGFzc107CiAKIH0KQEAgLTE1Niw3ICsxNjEsNyBAQCAt
IChpZClpbml0V2l0aENhcmJvbldpbmRvd1JlZjooV2luZG93UmVmKWluV2luZG93UmVmIHRha2lu
Z093bmVyc2hpcDooQk9PTClpbldpbgogCV9jYXJib24gPSBpbkNhcmJvbjsKIAogICAgIC8vIEZp
bmQgb3V0IHRoZSB3aW5kb3cncyBDb3JlR3JhcGhpY3Mgd2luZG93IHJlZmVyZW5jZS4KLSAgICBu
YXRpdmVXaW5kb3cgPSBXS0dldE5hdGl2ZVdpbmRvd0Zyb21XaW5kb3dSZWYoaW5XaW5kb3dSZWYp
OworICAgIG5hdGl2ZVdpbmRvdyA9ICh2b2lkKilHZXROYXRpdmVXaW5kb3dGcm9tV2luZG93UmVm
KGluV2luZG93UmVmKTsKIAogICAgIC8vIEZpbmQgb3V0IHRoZSB3aW5kb3cncyBDYXJib24gd2lu
ZG93IGF0dHJpYnV0ZXMuCiAgICAgR2V0V2luZG93QXR0cmlidXRlcyhpbldpbmRvd1JlZiwgJndp
bmRvd0F0dHJpYnV0ZXMpOwpAQCAtMTc1LDcgKzE4MCw3IEBAIC0gKGlkKWluaXRXaXRoQ2FyYm9u
V2luZG93UmVmOihXaW5kb3dSZWYpaW5XaW5kb3dSZWYgdGFraW5nT3duZXJzaGlwOihCT09MKWlu
V2luCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICAvLyBGaWd1cmUgb3V0IHRo
ZSB3aW5kb3cncyBzdHlsZSBtYXNrLgotICAgIHN0eWxlTWFzayA9IFdLQ2FyYm9uV2luZG93TWFz
aygpOworICAgIHN0eWxlTWFzayA9IF9OU0NhcmJvbldpbmRvd01hc2s7CiAgICAgaWYgKHdpbmRv
d0F0dHJpYnV0ZXMgJiBrV2luZG93Q2xvc2VCb3hBdHRyaWJ1dGUpCiAgICAgICAgIHN0eWxlTWFz
ayB8PSBOU1dpbmRvd1N0eWxlTWFza0Nsb3NhYmxlOwogICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVz
ICYga1dpbmRvd1Jlc2l6YWJsZUF0dHJpYnV0ZSkKQEAgLTI0Miw3ICsyNDcsNyBAQCAtIChpZClp
bml0V2l0aENhcmJvbldpbmRvd1JlZjooV2luZG93UmVmKWluV2luZG93UmVmIHRha2luZ093bmVy
c2hpcDooQk9PTClpbldpbgogICAgIC8vIFB1dCBhIHBvaW50ZXIgdG8gdGhpcyBDb2NvYSBOU1dp
bmRvdyBpbiBhIENhcmJvbiB3aW5kb3cgcHJvcGVydHkgdGFnLgogICAgIC8vIFJpZ2h0IG5vdywg
dGhpcyBpcyBqdXN0IHVzZWQgYnkgTlNWaWV3Q2FyYm9uQ29udHJvbC4gIE0uUC4gTm90aWNlIC0g
MTAvOS8wMAogICAgIHdpbmRvd0FzUHJvcGVydHkgPSBzZWxmOwotICAgIG9zU3RhdHVzID0gU2V0
V2luZG93UHJvcGVydHkoX3dpbmRvd1JlZiwgV0tDYXJib25XaW5kb3dQcm9wZXJ0eUNyZWF0b3Io
KSwgV0tDYXJib25XaW5kb3dQcm9wZXJ0eVRhZygpLCBzaXplb2YoTlNXaW5kb3cgKiksICZ3aW5k
b3dBc1Byb3BlcnR5KTsKKyAgICBvc1N0YXR1cyA9IFNldFdpbmRvd1Byb3BlcnR5KF93aW5kb3dS
ZWYsIE5TQXBwS2l0UHJvcGVydHlDcmVhdG9yLCBOU0NhcmJvbldpbmRvd1Byb3BlcnR5VGFnLCBz
aXplb2YoTlNXaW5kb3cgKiksICZ3aW5kb3dBc1Byb3BlcnR5KTsKICAgICBpZiAob3NTdGF0dXMh
PW5vRXJyKSB7CiAgICAgICAgIFtzZWxmIHJlbGVhc2VdOwogICAgICAgICByZXR1cm4gbmlsOwpA
QCAtNTU0LDcgKzU1OSw3IEBAIC0gKHZvaWQpX29sZFBsYWNlV2luZG93OihOU1JlY3QpZnJhbWVS
ZWN0IHsKIAogICAgIC8vIFRlbGwgQ2FyYm9uIHRvIHVwZGF0ZSBpdHMgdmFyaW91cyByZWdpb25z
LgogICAgIC8vIERlc3BpdGUgaXRzIG5hbWUsIHRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxl
ZCBlYXJseSBhbmQgb2Z0ZW4sIGV2ZW4gaWYgdGhlIHdpbmRvdyBpc24ndCB2aXNpYmxlIHlldC4g
IDI3MDI2NDguICBNLlAuIE5vdGljZSAtIDcvMjQvMDEKLSAgICBvc1N0YXR1cyA9IFdLU3luY1dp
bmRvd1dpdGhDR0FmdGVyTW92ZShfd2luZG93UmVmKTsKKyAgICBvc1N0YXR1cyA9IF9TeW5jV2lu
ZG93V2l0aENHQWZ0ZXJNb3ZlKF93aW5kb3dSZWYpOwogICAgIGlmIChvc1N0YXR1cyE9bm9FcnIp
IE5TTG9nKEAiQSBDYXJib24gd2luZG93J3MgYm91bmRzIGNvdWxkbid0IGJlIHN5bmNocm9uaXpl
ZCAoJWkpLiIsIChpbnQpb3NTdGF0dXMpOwogCiB9CkBAIC02MTQsNyArNjE5LDcgQEAgLSAodm9p
ZClfd2luZG93TW92ZWRUb1JlY3Q6KE5TUmVjdClhY3R1YWxGcmFtZSB7CiAKICAgICAvLyBMZXQg
Q2FyYm9uIGtub3cgdGhhdCB0aGUgd2luZG93IGhhcyBiZWVuIG1vdmVkLCB1bmxlc3MgdGhpcyBt
ZXRob2QgaXMgYmVpbmcgY2FsbGVkICJlYXJseS4iCiAgICAgaWYgKF93RmxhZ3MudmlzaWJsZSkg
ewotICAgICAgICBvc1N0YXR1cyA9IFdLU3luY1dpbmRvd1dpdGhDR0FmdGVyTW92ZShfd2luZG93
UmVmKTsKKyAgICAgICAgb3NTdGF0dXMgPSBfU3luY1dpbmRvd1dpdGhDR0FmdGVyTW92ZShfd2lu
ZG93UmVmKTsKICAgICAgICAgaWYgKG9zU3RhdHVzIT1ub0VycikgTlNMb2coQCJBIENhcmJvbiB3
aW5kb3cncyBib3VuZHMgY291bGRuJ3QgYmUgc3luY2hyb25pemVkICglaSkuIiwgKGludClvc1N0
YXR1cyk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJi
b24vSElWaWV3QWRhcHRlci5tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJVmll
d0FkYXB0ZXIubQppbmRleCBjZDIwOGY3OTBjMDVhZDkxNDQ1MGE2ZjhiNjFmZTE2MWVjOWFmODk0
Li4zNTUzNzA3NTJkZWEwNjc5NWIzNThlOWRiODE3OGZiYTFjZDk3MDNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vSElWaWV3QWRhcHRlci5tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0KQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsOCArMzAs
OCBAQAogCiAjaW1wb3J0ICJISVZpZXdBZGFwdGVyLmgiCiAKLSNpbXBvcnQgIlF1aWNrRHJhd0Nv
bXBhdGliaWxpdHkuaCIKICNpbXBvcnQgIldlYk5TT2JqZWN0RXh0cmFzLmgiCisjaW1wb3J0IDxw
YWwvc3BpL21hYy9RdWlja0RyYXdTUEkuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAK
IHN0YXRpYyB2b2lkIFNldFZpZXdOZWVkc0Rpc3BsYXkoSElWaWV3UmVmIGluVmlldywgUmduSGFu
ZGxlIGluUmVnaW9uLCBCb29sZWFuIGluTmVlZHNEaXNwbGF5KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DYXJib24vSElXZWJWaWV3Lm1tCmluZGV4IDBhZTAxNDcwMmZkMzkxY2NlNTgyNmE0
YTAxYTA4ZmZmMmMwNGJlNmMuLjM0NTg1YzI1MmMzYjE4Y2FjZDZlMDdhZDVlOTQ0ODc3OWQ4YmU0
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVdlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJV2ViVmlldy5tbQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIs
MTAgKzMyLDExIEBACiAKICNpbXBvcnQgIkNhcmJvbldpbmRvd0FkYXB0ZXIuaCIKICNpbXBvcnQg
IkhJVmlld0FkYXB0ZXIuaCIKLSNpbXBvcnQgIlF1aWNrRHJhd0NvbXBhdGliaWxpdHkuaCIKICNp
bXBvcnQgIldlYkhUTUxWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYktpdC5oIgogI2ltcG9y
dCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0V2ZW50
U1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9RdWlja0RyYXdTUEkuaD4KICNpbXBvcnQgPHd0
Zi9PYmpjUnVudGltZUV4dHJhcy5oPgogCiBAaW50ZXJmYWNlIE5TV2luZG93IChBcHBLaXRTZWNy
ZXRzSElXZWJWaWV3S25vd3MpCkBAIC0zMDYsOSArMzA3LDEyIEBAIERyYXcoIEhJV2ViVmlldyog
aW5WaWV3LCBSZ25IYW5kbGUgbGltaXRSZ24sIENHQ29udGV4dFJlZiBpbkNvbnRleHQgKQogICAg
ICAgICBHcmFmUHRyIHBvcnQ7CiAgICAgICAgIFJlY3QgcG9ydFJlY3Q7CiAKKyNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAgICAgR2V0UG9ydCggJnBvcnQgKTsKICAgICAg
ICAgR2V0UG9ydEJvdW5kcyggcG9ydCwgJnBvcnRSZWN0ICk7CiAgICAgICAgIENyZWF0ZUNHQ29u
dGV4dEZvclBvcnQoIHBvcnQsICZpbkNvbnRleHQgKTsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCiAgICAgICAgIFN5bmNDR0NvbnRleHRPcmlnaW5XaXRoUG9ydCggaW5Db250ZXh0LCBw
b3J0ICk7CiAgICAgICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTSggaW5Db250ZXh0LCAwLCAocG9y
dFJlY3QuYm90dG9tIC0gcG9ydFJlY3QudG9wKSApOwogICAgICAgICBDR0NvbnRleHRTY2FsZUNU
TSggaW5Db250ZXh0LCAxLCAtMSApOwpAQCAtNDM2LDYgKzQ0MCw2NCBAQCBHZXRXaW5kb3dSZWYo
IEhJV2ViVmlldyogaW5WaWV3ICkKICAgICAgICByZXR1cm4gR2V0Q29udHJvbE93bmVyKCBpblZp
ZXctPmZWaWV3UmVmICk7CiB9CiAKK3N0YXRpYyBOU0V2ZW50ICoKK0NyZWF0ZU5TRXZlbnRBZG9w
dGluZ0NHRXZlbnQoIENHRXZlbnRSZWYgY2dFdmVudCwgRXZlbnRSZWYgZXZlbnRSZWYgKQorewor
ICAgIE5TRXZlbnQgKnJlc3VsdCA9IFtbTlNFdmVudCBhbGxvY10gX2luaXRXaXRoQ0dFdmVudDpj
Z0V2ZW50IGV2ZW50UmVmOmV2ZW50UmVmXTsKKyAgICBDRlJlbGVhc2UoY2dFdmVudCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIEJvb2xlYW4KK0NvcHlFdmVudENHRXZlbnQoIEV2
ZW50UmVmIGV2ZW50LCBDR0V2ZW50UmVmKiBjZ0V2ZW50ICkKK3sKKyAgICBpZiAoKCpjZ0V2ZW50
ID0gQ29weUV2ZW50Q0dFdmVudChldmVudCkpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAK
KyAgICAvLyBUaGlzIGV2ZW50IG1pZ2h0IG5vdCBoYXZlIGJlZW4gY3JlYXRlZCBkaXJlY3RseSBm
cm9tIGEgQ0dTIGV2ZW50LCBhbmQgbWlnaHQgbm90CisgICAgLy8gaGF2ZSBhIENHRXZlbnRSZWYg
YXNzb2NpYXRlZCB3aXRoIGl0LiBJbiB0aGF0IGNhc2UsIHRyeSB1c2luZyB0aGUgZXZlbnQgbW9z
dAorICAgIC8vIHJlY2VudGx5IGRpc3BhdGNoZWQgYnkgdGhlIGV2ZW50IGRpc3BhdGNoZXIsIHdo
aWNoIGlzIGxpa2VseSB0byBiZSB0aGUgb3JpZ2luYWwKKyAgICAvLyB1c2VyLWlucHV0IGV2ZW50
IGNvbnRhaW5pbmcgYSBDR0V2ZW50UmVmLgorICAgIGV2ZW50ID0gR2V0Q3VycmVudEV2ZW50KCk7
CisgICAgaWYgKGV2ZW50ICYmICgqY2dFdmVudCA9IENvcHlFdmVudENHRXZlbnQoZXZlbnQpKSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgTlNF
dmVudCAqCitDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkNsaWNrRXZlbnQoIEV2ZW50UmVmIGluRXZl
bnQsIFdpbmRvd1JlZiB3aW5kb3dSZWYgKQoreworICAgIEV2ZW50UmVmIG5ld0V2ZW50OworICAg
IFBvaW50IHdoZXJlOworICAgIE9TU3RhdHVzIGVycjsKKyAgICBVSW50MzIgbW9kaWZpZXJzOwor
ICAgIFJlY3Qgd2luZFJlY3Q7CisgICAgCisgICAgQ0dFdmVudFJlZiBjZ0V2ZW50ID0gTlVMTDsK
KyAgICBpZiAoIUNvcHlFdmVudENHRXZlbnQoaW5FdmVudCwgJmNnRXZlbnQpKQorICAgICAgICBy
ZXR1cm4gbmlsOworICAgIAorICAgIC8vIFdlIG5lZWQgdG8gbWFrZSB0aGUgZXZlbnQgYmUgYSBr
RXZlbnRNb3VzZURvd24gZXZlbnQsIG9yIHRoZSB3ZWJraXQgbWlnaHQgdHJpcCB1cCB3aGVuCisg
ICAgLy8gd2UgY2xpY2sgb24gYSBOZXRzY2FwZSBwbHVnaW4uIEl0IGNhbGxzIENvbnZlcnRFdmVu
dFJlZlRvRXZlbnRSZWNvcmQsIGFzc3VtaW5nCisgICAgLy8gdGhhdCBtb3VzZURvd24gd2FzIHBh
c3NlZCBhbiBldmVudCB3aXRoIGEgcmVhbCBtb3VzZSBkb3duIGV2ZW50UmVmLiBXZSBqdXN0IG5l
ZWQgYQorICAgIC8vIG1pbmltYWwgb25lIGhlcmUuCisgICAgCisgICAgZXJyID0gQ3JlYXRlRXZl
bnQoTlVMTCwga0V2ZW50Q2xhc3NNb3VzZSwga0V2ZW50TW91c2VEb3duLCBHZXRFdmVudFRpbWUo
aW5FdmVudCksIDAsICZuZXdFdmVudCk7CisgICAgaWYgKGVyciAhPSBub0VycikKKyAgICAgICAg
cmV0dXJuIG5pbDsKKyAgICAKKyAgICBHZXRFdmVudFBhcmFtZXRlcihpbkV2ZW50LCBrRXZlbnRQ
YXJhbVdpbmRvd01vdXNlTG9jYXRpb24sIHR5cGVRRFBvaW50LCBOVUxMLCBzaXplb2YoUG9pbnQp
LCBOVUxMLCAmd2hlcmUpOworICAgIEdldFdpbmRvd0JvdW5kcyh3aW5kb3dSZWYsIGtXaW5kb3dT
dHJ1Y3R1cmVSZ24sICZ3aW5kUmVjdCk7CisgICAgd2hlcmUuaCArPSB3aW5kUmVjdC5sZWZ0Owor
ICAgIHdoZXJlLnYgKz0gd2luZFJlY3QudG9wOworICAgIAorICAgIEdldEV2ZW50UGFyYW1ldGVy
KGluRXZlbnQsIGtFdmVudFBhcmFtS2V5TW9kaWZpZXJzLCB0eXBlVUludDMyLCBOVUxMLCBzaXpl
b2YoVUludDMyKSwgTlVMTCwgJm1vZGlmaWVycyk7CisgICAgU2V0RXZlbnRQYXJhbWV0ZXIobmV3
RXZlbnQsIGtFdmVudFBhcmFtTW91c2VMb2NhdGlvbiwgdHlwZVFEUG9pbnQsIHNpemVvZihQb2lu
dCksICZ3aGVyZSk7CisgICAgU2V0RXZlbnRQYXJhbWV0ZXIobmV3RXZlbnQsIGtFdmVudFBhcmFt
S2V5TW9kaWZpZXJzLCB0eXBlVUludDMyLCBzaXplb2YoVUludDMyKSwgJm1vZGlmaWVycyk7Cisg
ICAgCisgICAgcmV0dXJuIENyZWF0ZU5TRXZlbnRBZG9wdGluZ0NHRXZlbnQoY2dFdmVudCwgbmV3
RXZlbnQpOworfQorCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIENsaWNrCiAvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ0Myw3ICs1MDUsNyBAQCBHZXRXaW5kb3dSZWYo
IEhJV2ViVmlldyogaW5WaWV3ICkKIHN0YXRpYyBPU1N0YXR1cwogQ2xpY2soSElXZWJWaWV3KiBp
blZpZXcsIEV2ZW50UmVmIGluRXZlbnQpCiB7Ci0gICAgTlNFdmVudCAqa2l0RXZlbnQgPSBXS0Ny
ZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uQ2xpY2tFdmVudChpbkV2ZW50LCBHZXRXaW5kb3dSZWYoaW5W
aWV3KSk7CisgICAgTlNFdmVudCAqa2l0RXZlbnQgPSBDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkNs
aWNrRXZlbnQoaW5FdmVudCwgR2V0V2luZG93UmVmKGluVmlldykpOwogCiAgICAgaWYgKCFpblZp
ZXctPmZJc0NvbXBvc2l0ZWQpCiAgICAgICAgIFN0YXJ0VXBkYXRlT2JzZXJ2ZXIoaW5WaWV3KTsK
QEAgLTQ1OCw2ICs1MjAsMTYgQEAgQ2xpY2soSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGlu
RXZlbnQpCiAgICAgcmV0dXJuIG5vRXJyOwogfQogCitzdGF0aWMgTlNFdmVudCAqCitDcmVhdGVO
U0V2ZW50V2l0aENhcmJvbkV2ZW50KCBFdmVudFJlZiBpbkV2ZW50ICkKK3sKKyAgICBOU0V2ZW50
ICpldmVudCA9IFtOU0V2ZW50IGV2ZW50V2l0aEV2ZW50UmVmOmluRXZlbnRdOworICAgIGlmICgh
ZXZlbnQpCisgICAgICAgIGV2ZW50ID0gW05TRXZlbnQgZXZlbnRXaXRoRXZlbnRSZWY6R2V0Q3Vy
cmVudEV2ZW50KCldOworCisgICAgcmV0dXJuIFtldmVudCByZXRhaW5dOworfQorCiAvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIE1vdXNlVXAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQpAQCAtNDY1LDE1ICs1MzcsMzIgQEAgQ2xpY2soSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50
UmVmIGluRXZlbnQpCiBzdGF0aWMgT1NTdGF0dXMKIE1vdXNlVXAoIEhJV2ViVmlldyogaW5WaWV3
LCBFdmVudFJlZiBpbkV2ZW50ICkKIHsKLQlOU0V2ZW50KiBraXRFdmVudCA9IFdLQ3JlYXRlTlNF
dmVudFdpdGhDYXJib25FdmVudChpbkV2ZW50KTsKKyAgICBOU0V2ZW50KiBraXRFdmVudCA9IENy
ZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZlbnQoaW5FdmVudCk7CiAKICAgICBbaW5WaWV3LT5mS2l0
V2luZG93IHNlbmRFdmVudDpraXRFdmVudF07Ci0JCisKICAgICBba2l0RXZlbnQgcmVsZWFzZV07
Ci0gICAgCisKIAlyZXR1cm4gbm9FcnI7CiB9CiAKK3N0YXRpYyBOU0V2ZW50ICoKK0NyZWF0ZU5T
RXZlbnRXaXRoQ2FyYm9uTW91c2VNb3ZlRXZlbnQoIEV2ZW50UmVmIGluRXZlbnQsIE5TV2luZG93
ICp3aW5kb3cgKQoreworICAgIE5TRXZlbnQqIGtpdEV2ZW50ID0gW05TRXZlbnQgZXZlbnRXaXRo
RXZlbnRSZWY6aW5FdmVudF07CisKKyAgICAvLyBGSVhNRTogV29ya3MgYXJvdW5kIGJ1ZyAzNTg1
NjQ0LiBDYW4gcmVtb3ZlIGl0IG9uY2UgdGhhdCBidWcgaXMgZml4ZWQuCisgICAgLy8gV2UgcHJl
ZmxpZ2h0IGhlcmUgYW5kIGRvbid0IGRvIGFueSB3b3JrIHdoZW4gdGhlIHdpbmRvdyBpcyBhbHJl
YWR5IGNvcnJlY3QKKyAgICAvLyBiZWNhdXNlIF9ldmVudFJlbGF0aXZlVG9XaW5kb3cgd2lsbCBt
YWxmdW5jdGlvbiBpZiB0aGUgZXZlbnQncyB3aW5kb3cgbWV0aG9kCisgICAgLy8gaGFzIGJlZW4g
aGlqYWNrZWQgYnkgdGhlIGJ1ZyB3b3JrYXJvdW5kIHVzZWQgYnkgQ29udHJpYnV0ZS4gSXQncyBm
aW5lIHRvIGp1c3QKKyAgICAvLyBsZWF2ZSB0aGUgZXZlbnQgYWxvbmUgaWYgdGhlIHdpbmRvdyBp
cyBhbHJlYWR5IGNvcnJlY3QuCisKKyAgICBpZiAoW2tpdEV2ZW50IHdpbmRvd10gIT0gd2luZG93
KQorICAgICAgICBraXRFdmVudCA9IFtraXRFdmVudCBfZXZlbnRSZWxhdGl2ZVRvV2luZG93Ondp
bmRvd107CisKKyAgICByZXR1cm4gW2tpdEV2ZW50IHJldGFpbl07Cit9CisKIC8vLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogLy8gTW91c2VNb3ZlZAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCkBAIC00ODEsNyArNTcwLDcgQEAgTW91c2VVcCggSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50
UmVmIGluRXZlbnQgKQogc3RhdGljIE9TU3RhdHVzCiBNb3VzZU1vdmVkKCBISVdlYlZpZXcqIGlu
VmlldywgRXZlbnRSZWYgaW5FdmVudCApCiB7Ci0gICAgTlNFdmVudCAqa2l0RXZlbnQgPSBXS0Ny
ZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uTW91c2VNb3ZlRXZlbnQoaW5FdmVudCwgaW5WaWV3LT5mS2l0
V2luZG93KTsKKyAgICBOU0V2ZW50ICpraXRFdmVudCA9IENyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9u
TW91c2VNb3ZlRXZlbnQoaW5FdmVudCwgaW5WaWV3LT5mS2l0V2luZG93KTsKICAgICBbaW5WaWV3
LT5mS2l0V2luZG93IHNlbmRFdmVudDpraXRFdmVudF07CiAJW2tpdEV2ZW50IHJlbGVhc2VdOwog
CkBAIC00OTUsMTIgKzU4NCwxMiBAQCBNb3VzZU1vdmVkKCBISVdlYlZpZXcqIGluVmlldywgRXZl
bnRSZWYgaW5FdmVudCApCiBzdGF0aWMgT1NTdGF0dXMKIE1vdXNlRHJhZ2dlZCggSElXZWJWaWV3
KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQgKQogewotCU5TRXZlbnQqIGtpdEV2ZW50ID0gV0tD
cmVhdGVOU0V2ZW50V2l0aENhcmJvbkV2ZW50KGluRXZlbnQpOworICAgIE5TRXZlbnQqIGtpdEV2
ZW50ID0gQ3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVudChpbkV2ZW50KTsKIAogICAgIFtpblZp
ZXctPmZLaXRXaW5kb3cgc2VuZEV2ZW50OmtpdEV2ZW50XTsKIAotCVtraXRFdmVudCByZWxlYXNl
XTsKLQkKKyAgICBba2l0RXZlbnQgcmVsZWFzZV07CisKIAlyZXR1cm4gbm9FcnI7CiB9CiAKQEAg
LTUxMSwxMiArNjAwLDEyIEBAIE1vdXNlRHJhZ2dlZCggSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50
UmVmIGluRXZlbnQgKQogc3RhdGljIE9TU3RhdHVzCiBNb3VzZVdoZWVsTW92ZWQoIEhJV2ViVmll
dyogaW5WaWV3LCBFdmVudFJlZiBpbkV2ZW50ICkKIHsKLQlOU0V2ZW50KiBraXRFdmVudCA9IFdL
Q3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVudChpbkV2ZW50KTsKKyAgICBOU0V2ZW50KiBraXRF
dmVudCA9IENyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZlbnQoaW5FdmVudCk7CiAKICAgICBbaW5W
aWV3LT5mS2l0V2luZG93IHNlbmRFdmVudDpraXRFdmVudF07CiAKLQlba2l0RXZlbnQgcmVsZWFz
ZV07Ci0JCisgICAgW2tpdEV2ZW50IHJlbGVhc2VdOworCiAJcmV0dXJuIG5vRXJyOwogfQogCkBA
IC02ODQsNyArNzczLDcgQEAgV2luZG93SGFuZGxlciggRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkNh
bGxSZWYsIEV2ZW50UmVmIGluRXZlbnQsIHZvaWQqIGluVXNlckRhdGEKIAkJCQkJTlNSZXNwb25k
ZXIqIHJlc3BvbmRlciA9IFtraXRXaW5kb3cgZmlyc3RSZXNwb25kZXJdOwogCQkJCQlpZiAoIHJl
c3BvbmRlciAhPSBraXRXaW5kb3cgKQogCQkJCQl7Ci0gICAgICAgICAgICAgICAgICAgICAgICBr
aXRFdmVudCA9IFdLQ3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVudChpbkV2ZW50KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGtpdEV2ZW50ID0gQ3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVu
dChpbkV2ZW50KTsKIAkJCQkJCQogCQkJCQkJW2tpdFdpbmRvdyBzZW5kRXZlbnQ6a2l0RXZlbnRd
OwogCQkJCQkJW2tpdEV2ZW50IHJlbGVhc2VdOwpAQCAtMTI2NSw3ICsxMzU0LDcgQEAgSElXZWJW
aWV3RXZlbnRIYW5kbGVyKAogCiAJCWNhc2Uga0V2ZW50Q2xhc3NLZXlib2FyZDoKIAkJCXsKLQkJ
CQlOU0V2ZW50KiBraXRFdmVudCA9IFdLQ3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVudChpbkV2
ZW50KTsKKyAgICAgICAgICAgICAgICBOU0V2ZW50KiBraXRFdmVudCA9IENyZWF0ZU5TRXZlbnRX
aXRoQ2FyYm9uRXZlbnQoaW5FdmVudCk7CiAJCQkJW3ZpZXctPmZLaXRXaW5kb3cgc2VuZFN1cGVy
RXZlbnQ6a2l0RXZlbnRdOwogCQkJCVtraXRFdmVudCByZWxlYXNlXTsKIAkJCQlyZXN1bHQgPSBu
b0VycjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvUXVpY2tEcmF3
Q29tcGF0aWJpbGl0eS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9RdWlja0RyYXdD
b21wYXRpYmlsaXR5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNmZjU1M2ZjMGIw
M2QzMDU3ODMwOGRhNGUzZWUzZTJiZDRlODhiYzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9RdWlja0Ry
YXdDb21wYXRpYmlsaXR5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2lmbmRlZiBRdWlja0RyYXdDb21wYXRpYmlsaXR5X2gKLSNkZWZpbmUgUXVpY2tEcmF3
Q29tcGF0aWJpbGl0eV9oCi0KLSNpZm5kZWYgX19MUDY0X18KLQotI2ltcG9ydCA8Q2FyYm9uL0Nh
cmJvbi5oPgotCi0jaWYgZGVmaW5lZChRRF9IRUFERVJTX0FSRV9QUklWQVRFKSAmJiBRRF9IRUFE
RVJTX0FSRV9QUklWQVRFCi0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5k
aWYKLQotI2RlZmluZSBNYWNTZXRSZWN0IFNldFJlY3QKLSNkZWZpbmUgTWFjU2V0UmVjdFJnbiBT
ZXRSZWN0UmduCi0jZGVmaW5lIE1hY1VuaW9uUmduIFVuaW9uUmduCi0KLWV4dGVybiBCb29sZWFu
IEVtcHR5UmduKFJnbkhhbmRsZSk7Ci1leHRlcm4gT1NTdGF0dXMgQ3JlYXRlQ0dDb250ZXh0Rm9y
UG9ydChDR3JhZlB0ciwgQ0dDb250ZXh0UmVmKik7Ci1leHRlcm4gT1NTdGF0dXMgU3luY0NHQ29u
dGV4dE9yaWdpbldpdGhQb3J0KENHQ29udGV4dFJlZiwgQ0dyYWZQdHIpOwotZXh0ZXJuIFBpeE1h
cEhhbmRsZSBHZXRQb3J0UGl4TWFwKENHcmFmUHRyKTsKLWV4dGVybiBRREVyciBOZXdHV29ybGRG
cm9tUHRyKEdXb3JsZFB0ciosIFVJbnQzMiwgY29uc3QgUmVjdCosIENUYWJIYW5kbGUsIEdESGFu
ZGxlLCBHV29ybGRGbGFncywgUHRyLCBTSW50MzIpOwotZXh0ZXJuIFJlY3QqIEdldFBvcnRCb3Vu
ZHMoQ0dyYWZQdHIsIFJlY3QqKTsKLWV4dGVybiBSZWN0KiBHZXRSZWdpb25Cb3VuZHMoUmduSGFu
ZGxlLCBSZWN0Kik7Ci1leHRlcm4gUmduSGFuZGxlIEdldFBvcnRDbGlwUmVnaW9uKENHcmFmUHRy
LCBSZ25IYW5kbGUpOwotZXh0ZXJuIFJnbkhhbmRsZSBHZXRQb3J0VmlzaWJsZVJlZ2lvbihDR3Jh
ZlB0ciwgUmduSGFuZGxlKTsKLWV4dGVybiBSZ25IYW5kbGUgTmV3UmduKCk7Ci1leHRlcm4gdm9p
ZCBCYWNrQ29sb3IobG9uZyk7Ci1leHRlcm4gdm9pZCBEaXNwb3NlR1dvcmxkKEdXb3JsZFB0cik7
Ci1leHRlcm4gdm9pZCBEaXNwb3NlUmduKFJnbkhhbmRsZSk7Ci1leHRlcm4gdm9pZCBGb3JlQ29s
b3IobG9uZyk7Ci1leHRlcm4gdm9pZCBHZXRHV29ybGQoQ0dyYWZQdHIqLCBHREhhbmRsZSopOwot
ZXh0ZXJuIHZvaWQgR2V0UG9ydChHcmFmUHRyKik7Ci1leHRlcm4gdm9pZCBHbG9iYWxUb0xvY2Fs
KFBvaW50Kik7Ci1leHRlcm4gdm9pZCBNYWNTZXRSZWN0KFJlY3QqLCBzaG9ydCwgc2hvcnQsIHNo
b3J0LCBzaG9ydCk7Ci1leHRlcm4gdm9pZCBNYWNTZXRSZWN0UmduKFJnbkhhbmRsZSwgc2hvcnQs
IHNob3J0LCBzaG9ydCwgc2hvcnQpOwotZXh0ZXJuIHZvaWQgTWFjVW5pb25SZ24oUmduSGFuZGxl
LCBSZ25IYW5kbGUsIFJnbkhhbmRsZSk7Ci1leHRlcm4gdm9pZCBNb3ZlUG9ydFRvKHNob3J0LCBz
aG9ydCk7Ci1leHRlcm4gdm9pZCBPZmZzZXRSZWN0KFJlY3QqLCBzaG9ydCwgc2hvcnQpOwotZXh0
ZXJuIHZvaWQgT2Zmc2V0UmduKFJnbkhhbmRsZSwgc2hvcnQsIHNob3J0KTsKLWV4dGVybiB2b2lk
IFBhaW50UmVjdChjb25zdCBSZWN0Kik7Ci1leHRlcm4gdm9pZCBQZW5Ob3JtYWwoKTsKLWV4dGVy
biB2b2lkIFBvcnRTaXplKHNob3J0LCBzaG9ydCk7Ci1leHRlcm4gdm9pZCBSZWN0UmduKFJnbkhh
bmRsZSwgY29uc3QgUmVjdCopOwotZXh0ZXJuIHZvaWQgU2VjdFJnbihSZ25IYW5kbGUsIFJnbkhh
bmRsZSwgUmduSGFuZGxlKTsKLWV4dGVybiB2b2lkIFNldEdXb3JsZChDR3JhZlB0ciwgR0RIYW5k
bGUpOwotZXh0ZXJuIHZvaWQgU2V0T3JpZ2luKHNob3J0LCBzaG9ydCk7Ci1leHRlcm4gdm9pZCBT
ZXRQb3J0KEdyYWZQdHIpOwotZXh0ZXJuIHZvaWQgU2V0UG9ydENsaXBSZWdpb24oQ0dyYWZQdHIs
IFJnbkhhbmRsZSk7Ci1leHRlcm4gdm9pZCBTZXRQb3J0VmlzaWJsZVJlZ2lvbihDR3JhZlB0ciwg
UmduSGFuZGxlKTsKLQotZW51bSB7Ci0gICAgYmxhY2tDb2xvciA9IDMzLAotICAgIHdoaXRlQ29s
b3IgPSAzMCwKLSAgICBncmVlbkNvbG9yID0gMzQxLAotfTsKLQotI2lmZGVmIF9fY3BsdXNwbHVz
Ci19Ci0jZW5kaWYKLQotI2VuZGlmIC8vIGRlZmluZWQoUURfSEVBREVSU19BUkVfUFJJVkFURSkg
JiYgUURfSEVBREVSU19BUkVfUFJJVkFURQotCi0jZW5kaWYgLy8gX19MUDY0X18KLQotI2VuZGlm
IC8vIFF1aWNrRHJhd0NvbXBhdGliaWxpdHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbi5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhh
bmRsZXJDYXJib24ubW0KaW5kZXggNjg1NjdiMzM5NGRkODFhZTlmNTE5NzQxODk5NGRiZDI4ZjNl
YjI3Yi4uM2ZjYjQ2N2ZkNzg3ODQzMWExNGZlNzk5Nzg0NzdjMjU4OTVmYWQyZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50
SGFuZGxlckNhcmJvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dl
Yk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNyBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDYgKzMwLDggQEAKICNpbXBv
cnQgIldlYk5ldHNjYXBlUGx1Z2luVmlldy5oIgogI2ltcG9ydCAiV2ViS2l0TG9nZ2luZy5oIgog
I2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxwYWwvc3BpL21hYy9I
SVRvb2xib3hTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TRXZlbnRTUEkuaD4KIAogLy8g
U2VuZCBudWxsIGV2ZW50cyA1MCB0aW1lcyBhIHNlY29uZCB3aGVuIGFjdGl2ZSwgc28gcGx1Zy1p
bnMgbGlrZSBGbGFzaCBnZXQgaGlnaCBmcmFtZSByYXRlcy4KICNkZWZpbmUgTnVsbEV2ZW50SW50
ZXJ2YWxBY3RpdmUgICAgICAgICAwLjAyCkBAIC04NSw3ICs4Nyw3IEBAIHN0YXRpYyBFdmVudE1v
ZGlmaWVycyBtb2RpZmllcnNGb3JFdmVudChOU0V2ZW50ICpldmVudCkKIAogc3RhdGljIHZvaWQg
Z2V0Q2FyYm9uRXZlbnQoRXZlbnRSZWNvcmQgKmNhcmJvbkV2ZW50LCBOU0V2ZW50ICpjb2NvYUV2
ZW50KQogewotICAgIGlmIChXS0NvbnZlcnROU0V2ZW50VG9DYXJib25FdmVudChjYXJib25FdmVu
dCwgY29jb2FFdmVudCkpCisgICAgaWYgKFtjb2NvYUV2ZW50IF9ldmVudFJlZl0gJiYgQ29udmVy
dEV2ZW50UmVmVG9FdmVudFJlY29yZCgoRXZlbnRSZWYpW2NvY29hRXZlbnQgX2V2ZW50UmVmXSwg
Y2FyYm9uRXZlbnQpKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgTlNQb2ludCB3aGVyZSA9
IFtbY29jb2FFdmVudCB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46W2NvY29hRXZlbnQgbG9j
YXRpb25JbldpbmRvd11dOwpAQCAtMjEwLDcgKzIxMiw3IEBAIHZvaWQgV2ViTmV0c2NhcGVQbHVn
aW5FdmVudEhhbmRsZXJDYXJib246Om1vdXNlTW92ZWQoTlNFdmVudCogdGhlRXZlbnQpCiB2b2lk
IFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjprZXlEb3duKE5TRXZlbnQgKnRo
ZUV2ZW50KQogewogICAgIG1fc3VzcGVuZEtleVVwRXZlbnRzID0gdHJ1ZTsKLSAgICBXS1NlbmRL
ZXlFdmVudFRvVFNNKHRoZUV2ZW50KTsKKyAgICBUU01Qcm9jZXNzUmF3S2V5RXZlbnQoKEV2ZW50
UmVmKVt0aGVFdmVudCBfZXZlbnRSZWZdKTsKIH0KIAogdm9pZCBXZWJOZXRzY2FwZVBsdWdpbkV2
ZW50SGFuZGxlckNhcmJvbjo6c3ludGhldGljS2V5RG93bldpdGhDb21tYW5kTW9kaWZpZXIoaW50
IGtleUNvZGUsIGNoYXIgY2hhcmFjdGVyKQpAQCAtMjM4LDcgKzI0MCw3IEBAIHN0YXRpYyBVSW50
MzIga2V5TWVzc2FnZUZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIAogdm9pZCBXZWJOZXRz
Y2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbjo6a2V5VXAoTlNFdmVudCogdGhlRXZlbnQpCiB7
Ci0gICAgV0tTZW5kS2V5RXZlbnRUb1RTTSh0aGVFdmVudCk7CisgICAgVFNNUHJvY2Vzc1Jhd0tl
eUV2ZW50KChFdmVudFJlZilbdGhlRXZlbnQgX2V2ZW50UmVmXSk7CiAgICAgCiAgICAgLy8gVFNN
IHdvbid0IHNlbmQga2V5VXAgZXZlbnRzIHNvIHdlIGhhdmUgdG8gc2VuZCB0aGVtIG91cnNlbHZl
cy4KICAgICAvLyBPbmx5IHNlbmQga2V5VXAgZXZlbnRzIGFmdGVyIHdlIHJlY2VpdmUgdGhlIFRT
TSBjYWxsYmFjayBiZWNhdXNlIHRoaXMgaXMgd2hhdCBwbHVnLWluIGV4cGVjdCBmcm9tIE9TIDku
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBl
UGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVn
aW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0KaW5kZXggZGUyMDE4OWEz
N2RjMDkyODc4MmU4NjFiMmE2OWEwM2M3NjA4ZTE3OC4uZjgwMDM0ZjFlZDczNjk3YjYxMTBmYmZh
ZWFlOTdmMDIzOWQ0MDkxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2Nv
YS5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTcgQXBwbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5oIgog
I2ltcG9ydCAiV2ViTmV0c2NhcGVQbHVnaW5WaWV3LmgiCisjaW1wb3J0IDxwYWwvc3BpL21hYy9I
SVRvb2xib3hTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TRXZlbnRTUEkuaD4KICNpbXBv
cnQgPHd0Zi9WZWN0b3IuaD4KIAogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYTo6
V2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYShXZWJOZXRzY2FwZVBsdWdpblZpZXcq
IHBsdWdpblZpZXcpCkBAIC0xMjgsNyArMTMwLDcgQEAgdm9pZCBXZWJOZXRzY2FwZVBsdWdpbkV2
ZW50SGFuZGxlckNvY29hOjprZXlEb3duKE5TRXZlbnQgKmV2ZW50KQogI2lmbmRlZiBfX0xQNjRf
XwogICAgIC8vIElmIHRoZSBwbHVnLWluIGRpZCBub3QgaGFuZGxlIHRoZSBldmVudCwgcGFzcyBp
dCBvbiB0byB0aGUgSW5wdXQgTWFuYWdlci4KICAgICBpZiAocmV0dmFsKQotICAgICAgICBXS1Nl
bmRLZXlFdmVudFRvVFNNKGV2ZW50KTsKKyAgICAgICAgVFNNUHJvY2Vzc1Jhd0tleUV2ZW50KChF
dmVudFJlZilbZXZlbnQgX2V2ZW50UmVmXSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShyZXR2
YWwpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5z
L1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdp
bnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IGY5NjFlZmUxZTI4YzQ4YmI2NTRjNTFm
MzZjYTA3MzI4M2NjNDU3YTEuLmM2ODBmZjdlZTMxYzkzYjhmYjQ5MjI5N2U0ZTdhZDkxNDFhNGRk
ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2Nh
cGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2Vi
TmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNSwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2ltcG9y
dCAiV2ViTmV0c2NhcGVQbHVnaW5WaWV3LmgiCiAKLSNpbXBvcnQgIlF1aWNrRHJhd0NvbXBhdGli
aWxpdHkuaCIKICNpbXBvcnQgIldlYkRhdGFTb3VyY2VJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2Vi
RGVmYXVsdFVJRGVsZWdhdGUuaCIKICNpbXBvcnQgIldlYkZyYW1lSW50ZXJuYWwuaCIKQEAgLTc1
LDYgKzc0LDcgQEAKICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET01Qcml2YXRlLmg+CiAjaW1wb3J0
IDxXZWJLaXRMZWdhY3kvV2ViVUlEZWxlZ2F0ZS5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+
CisjaW1wb3J0IDxwYWwvc3BpL21hYy9RdWlja0RyYXdTUEkuaD4KICNpbXBvcnQgPHJ1bnRpbWUv
SW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8cnVudGltZS9KU0xvY2suaD4KICNpbXBv
cnQgPHd0Zi9Bc3NlcnRpb25zLmg+CkBAIC05MTUsNyArOTE1LDcgQEAgLSh2b2lkKXRlbGxRdWlj
a1RpbWVUb0NoaWxsCiAgICAgQ0dyYWZQdHIgcG9ydCA9IEdldFdpbmRvd1BvcnQod2luZG93UmVm
KTsKICAgICA6OlJlY3QgYm91bmRzOwogICAgIEdldFBvcnRCb3VuZHMocG9ydCwgJmJvdW5kcyk7
Ci0gICAgV0tDYWxsRHJhd2luZ05vdGlmaWNhdGlvbihwb3J0LCAmYm91bmRzKTsKKyAgICBDYWxs
RHJhd2luZ05vdGlmaWNhdGlvbnMocG9ydCwgJmJvdW5kcywga0JpdHNQcm9jKTsKICNlbmRpZiAv
KiBOUF9OT19RVUlDS0RSQVcgKi8KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319348</attachid>
            <date>2017-08-30 00:09:57 -0700</date>
            <delta_ts>2017-08-30 00:40:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176087-20170830000956.patch</filename>
            <type>text/plain</type>
            <size>57112</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCAwMTRhMTll
YWU0ZmNhYTAzYzk2NDYwYmRjMjliNDYxYjZhYjUwYTE2Li5kYjdmODRiZGYyYjFjZGIwZmNhMTZm
ODRiNGM4YWE0MzkxYjQ1YTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAog
MjAxNy0wOC0yOSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKKyAgICAgICAgW01h
Y10gVXBzdHJlYW0gQ2FyYm9uLXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDg3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFBB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvRm91
bmRhdGlvblNQSS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMv
TlNXaW5kb3dTUEkuaC4KKyAgICAgICAgKiBwYWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TV2luZG93U1BJLmguCisg
ICAgICAgICogcGFsL3NwaS9tYWMvTlNFdmVudFNQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFj
L05TV2luZG93U1BJLmg6CisgICAgICAgICogcGFsL3NwaS9tYWMvUXVpY2tEcmF3U1BJLmg6IEFk
ZGVkLgorCisyMDE3LTA4LTI5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKwogICAg
ICAgICBbWGNvZGVdIEZpeCB1cCBmaWxlIGFuZCBncm91cCBwYXRocyBpbiBQQUwueGNvZGVwcm9q
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwNzMK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAyZDMyNWU1OTU3MmI4ZTE5OTNiN2JmMTA1NDE1ZmY2ZmY4YmQ0MjVlLi5i
NmY2OGQ5ZWEyMjc5Zjk4YWQyOWVkMTJmNjY2MzM2MGVjMjgwMTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDE3LTA4LTI5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbTWFjXSBVcHN0cmVhbSBDYXJib24tcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzYwODcKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisg
ICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbToKKyAgICAgICAg
KFdlYktpdDo6Y2dXaW5kb3dJRCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6c2NyaXB0Q29k
ZUZyb21DdXJyZW50S2V5Ym9hcmRJbnB1dFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luOjpzZW5kQ29tcGxleFRleHRJbnB1dCk6CisKIDIwMTctMDgtMjkgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyBsb2dpYyBkb2VzIG5vdCB1bmRlcnN0YW5kIGN1c3RvbSBXZWJzaXRlRGF0YSBzdG9yZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggNTBiNjkyOTIyNzM2ODAwMDliNmFmN2QyNjNmMmNkZWJh
NzUyMGYwYS4uMzUwOWY4NmNjZWFkOTdjNzdmYzE2MmRhMmZjMTBmM2QzNjg4MGI5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wOC0yOSAgQW5keSBFc3RlcyAg
PGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gVXBzdHJlYW0gQ2FyYm9uLXJlbGF0
ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFdlYktpdExlZ2FjeS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCiAyMDE3LTA4LTI5ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRA
c29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBVc2UgZmluZF9wYWNrYWdlIGZvciB6bGliCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNGEzMDkxNzNjOTY5MGVlYzdhNjE0NGZiNTM0
YTI0ZjhiOTk4NDJjZi4uYjgzYWRjYmI2ZjgwNzllZTE5OGU2MjQ4ZTc4OWE3MmJiMzc5YWFlZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ2IEBACiAyMDE3LTA4LTI5
ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBbTWFjXSBVcHN0cmVh
bSBDYXJib24tcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwODcKKworICAgICAg
ICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJv
blV0aWxzLm06CisgICAgICAgIChnZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KToKKyAgICAgICAg
KFdlYkluaXRGb3JDYXJib24pOgorICAgICAgICAoUG9vbENsZWFuZXIpOgorICAgICAgICAqIENh
cmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tOgorICAgICAgICAoK1tDYXJib25XaW5kb3dBZGFw
dGVyIGZyYW1lVmlld0NsYXNzRm9yU3R5bGVNYXNrOl0pOgorICAgICAgICAoLVtDYXJib25XaW5k
b3dBZGFwdGVyIGluaXRXaXRoQ2FyYm9uV2luZG93UmVmOnRha2luZ093bmVyc2hpcDpkaXNhYmxl
T3JkZXJpbmc6Y2FyYm9uOl0pOgorICAgICAgICAoLVtDYXJib25XaW5kb3dBZGFwdGVyIF9vbGRQ
bGFjZVdpbmRvdzpdKToKKyAgICAgICAgKC1bQ2FyYm9uV2luZG93QWRhcHRlciBfd2luZG93TW92
ZWRUb1JlY3Q6XSk6CisgICAgICAgICogQ2FyYm9uL0hJVmlld0FkYXB0ZXIubToKKyAgICAgICAg
KiBDYXJib24vSElXZWJWaWV3Lm1tOgorICAgICAgICAoRHJhdyk6CisgICAgICAgIChDcmVhdGVO
U0V2ZW50QWRvcHRpbmdDR0V2ZW50KToKKyAgICAgICAgKENvcHlFdmVudENHRXZlbnQpOgorICAg
ICAgICAoQ3JlYXRlTlNFdmVudFdpdGhDYXJib25DbGlja0V2ZW50KToKKyAgICAgICAgKENsaWNr
KToKKyAgICAgICAgKENyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZlbnQpOgorICAgICAgICAoTW91
c2VVcCk6CisgICAgICAgIChDcmVhdGVOU0V2ZW50V2l0aENhcmJvbk1vdXNlTW92ZUV2ZW50KToK
KyAgICAgICAgKE1vdXNlTW92ZWQpOgorICAgICAgICAoTW91c2VEcmFnZ2VkKToKKyAgICAgICAg
KE1vdXNlV2hlZWxNb3ZlZCk6CisgICAgICAgIChXaW5kb3dIYW5kbGVyKToKKyAgICAgICAgKEhJ
V2ViVmlld0V2ZW50SGFuZGxlcik6CisgICAgICAgICogTWlzYy9RdWlja0RyYXdDb21wYXRpYmls
aXR5Lmg6IFJlbW92ZWQuCisgICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50
SGFuZGxlckNhcmJvbi5tbToKKyAgICAgICAgKGdldENhcmJvbkV2ZW50KToKKyAgICAgICAgKFdl
Yk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjprZXlEb3duKToKKyAgICAgICAgKFdl
Yk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjprZXlVcCk6CisgICAgICAgICogUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tOgorICAgICAgICAoV2Vi
TmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYTo6a2V5RG93bik6CisgICAgICAgICogUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgtW1dlYk5ldHNjYXBlUGx1
Z2luVmlldyB0ZWxsUXVpY2tUaW1lVG9DaGlsbF0pOgorCisyMDE3LTA4LTI5ICBBbmR5IEVzdGVz
ICA8YWVzdGVzQGFwcGxlLmNvbT4KKwogICAgICAgICBbTWFjXSBVcHN0cmVhbSBXS1NldE1ldGFk
YXRhVVJMKCkgZnJvbSBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjA0NgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWZkZTcwYmFmMDU4NzQz
M2Y0NzBhMzNlZmY4YWVmZjhhYWY1MzVlNi4uZmQzZWJjNmMxYWVjNDYyMzNiMjI3OWFhODNlYjMz
Yjg3NmRhMjEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtOTcsNiArOTcsOSBAQAogCQkxQzA5RDA1MzFFMzFDNDQxMDA3MjVG
MTggLyogQ3J5cHRvRGlnZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQzA5RDA1MjFFMzFDNDQxMDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0LmggKi87
IH07CiAJCTFDMDlEMDU2MUUzMUM0NjUwMDcyNUYxOCAvKiBDcnlwdG9EaWdlc3RDb21tb25Dcnlw
dG8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMw
OUQwNTUxRTMxQzQ2NTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAgKi87
IH07CiAJCTFDMDlEMDU4MUUzMUM1N0UwMDcyNUYxOCAvKiBjb25maWcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMDlEMDU3MUUzMUM1N0UwMDcyNUYx
OCAvKiBjb25maWcuaCAqLzsgfTsKKwkJQTEwMjY1ODcxRjU2NzQ2MTAwQjRDODQ0IC8qIEZvdW5k
YXRpb25TUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMDI2NTg2MUY1Njc0NjEwMEI0Qzg0NCAvKiBGb3VuZGF0aW9uU1BJLmggKi87IH07CisJCUEx
MDI2NTg5MUY1Njc0N0EwMEI0Qzg0NCAvKiBISVRvb2xib3hTUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMDI2NTg4MUY1Njc0N0EwMEI0Qzg0NCAv
KiBISVRvb2xib3hTUEkuaCAqLzsgfTsKKwkJQTEwMjY1OEIxRjU2NzQ4QzAwQjRDODQ0IC8qIFF1
aWNrRHJhd1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTEwMjY1OEExRjU2NzQ4QzAwQjRDODQ0IC8qIFF1aWNrRHJhd1NQSS5oICovOyB9OwogCQlB
MUY1NURDRjFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRjU1RENFMUY1NTI4RUMwMEVEQjc1RiAv
KiBNZXRhZGF0YVNQSS5oICovOyB9OwogCQlBMzBENDEyMTFGMEREMEVBMDBCNzE5NTQgLyogS2ls
bFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEz
MEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oICovOyB9OwogCQlBMzBENDEyMjFG
MEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmdOb25lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxs
UmluZ05vbmUuY3BwICovOyB9OwpAQCAtMjA5LDYgKzIxMiw5IEBACiAJCTFDMDlEMDYzMUUzMUVD
MzEwMDcyNUYxOCAvKiBCYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0
aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDNjdDRUEx
MUUzMkVEQTgwMEY4MEYyRSAvKiBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQueGNjb25maWc7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUM2N0NFQTIxRTMyRUUyNjAwRjgwRjJFIC8qIFZlcnNpb24ueGNj
b25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gVmVyc2lvbi54Y2NvbmZpZzsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTEwMjY1ODYxRjU2NzQ2MTAwQjRDODQ0IC8q
IEZvdW5kYXRpb25TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm91bmRh
dGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTAyNjU4ODFGNTY3NDdB
MDBCNEM4NDQgLyogSElUb29sYm94U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEhJVG9vbGJveFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTAyNjU4
QTFGNTY3NDhDMDBCNEM4NDQgLyogUXVpY2tEcmF3U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFF1aWNrRHJhd1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBMUY1NURDRTFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWV0YWRhdGFTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUUx
RjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEtpbGxSaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMEQ0MTFG
MUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZ05vbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gS2lsbFJpbmdOb25lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI4MSw2ICsyODcsNyBAQAogCQkJCTBDMkRBMTIzMUYzQkVCNDkwMERCQzMxNyAv
KiBDRk5TVVJMQ29ubmVjdGlvblNQSS5oICovLAogCQkJCTBDMkRBMTI0MUYzQkVCNDkwMERCQzMx
NyAvKiBDb3JlVGV4dFNQSS5oICovLAogCQkJCTBDMkRBMTI1MUYzQkVCNDkwMERCQzMxNyAvKiBE
YXRhRGV0ZWN0b3JzQ29yZVNQSS5oICovLAorCQkJCUExMDI2NTg2MUY1Njc0NjEwMEI0Qzg0NCAv
KiBGb3VuZGF0aW9uU1BJLmggKi8sCiAJCQkJMEMyREExMjYxRjNCRUI0OTAwREJDMzE3IC8qIElP
UE1MaWJTUEkuaCAqLywKIAkJCQkwQzJEQTEyNzFGM0JFQjQ5MDBEQkMzMTcgLyogSU9QU0xpYlNQ
SS5oICovLAogCQkJCTBDMkRBMTI4MUYzQkVCNDkwMERCQzMxNyAvKiBJT1JldHVyblNQSS5oICov
LApAQCAtMzMxLDYgKzMzOCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwQzc3ODU3MDFGNDUx
MzBGMDBGNEVCQjYgLyogQVZGb3VuZGF0aW9uU1BJLmggKi8sCiAJCQkJMEM3Nzg1NzExRjQ1MTMw
RjAwRjRFQkI2IC8qIERhdGFEZXRlY3RvcnNTUEkuaCAqLywKKwkJCQlBMTAyNjU4ODFGNTY3NDdB
MDBCNEM4NDQgLyogSElUb29sYm94U1BJLmggKi8sCiAJCQkJMEM3Nzg1NzIxRjQ1MTMwRjAwRjRF
QkI2IC8qIExvb2t1cFNQSS5oICovLAogCQkJCTBDNzc4NTczMUY0NTEzMEYwMEY0RUJCNiAvKiBN
ZWRpYVJlbW90ZVNQSS5oICovLAogCQkJCUExRjU1RENFMUY1NTI4RUMwMEVEQjc1RiAvKiBNZXRh
ZGF0YVNQSS5oICovLApAQCAtMzUzLDYgKzM2MSw3IEBACiAJCQkJMEM3Nzg1ODQxRjQ1MTMwRjAw
RjRFQkI2IC8qIE5TV2luZG93U1BJLmggKi8sCiAJCQkJMEM3Nzg1ODUxRjQ1MTMwRjAwRjRFQkI2
IC8qIFBJUFNQSS5oICovLAogCQkJCTBDNzc4NTg2MUY0NTEzMEYwMEY0RUJCNiAvKiBRVEtpdFNQ
SS5oICovLAorCQkJCUExMDI2NThBMUY1Njc0OEMwMEI0Qzg0NCAvKiBRdWlja0RyYXdTUEkuaCAq
LywKIAkJCQkwQzc3ODU4NzFGNDUxMzBGMDBGNEVCQjYgLyogUXVpY2tMb29rTWFjU1BJLmggKi8s
CiAJCQkJMEM3Nzg1ODgxRjQ1MTMwRjAwRjRFQkI2IC8qIFRVQ2FsbFNQSS5oICovLAogCQkJKTsK
QEAgLTQ5OSw3ICs1MDgsOSBAQAogCQkJCTBDNzc4NThBMUY0NTEzMEYwMEY0RUJCNiAvKiBEYXRh
RGV0ZWN0b3JzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxQTFGNDNBNEM3MDAyRUFD
MDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEOUU3MzFF
RUY1QUY2MDBEQkMzMTcgLyogRXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLywKKwkJCQlBMTAy
NjU4NzFGNTY3NDYxMDBCNEM4NDQgLyogRm91bmRhdGlvblNQSS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEM1QUY5MUIxRjQzQTRDNzAwMkVBQzAyIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUExMDI2NTg5MUY1Njc0N0EwMEI0Qzg0NCAvKiBISVRvb2xib3hTUEku
aCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTFGMUYzQkU5RTAwMERCQzMxNyAvKiBJbWFnZUlP
U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0MjFGM0JFQjQ5MDBEQkMzMTcgLyogSU9Q
TUxpYlNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNDMxRjNCRUI0OTAwREJDMzE3IC8q
IElPUFNMaWJTUEkuaCBpbiBIZWFkZXJzICovLApAQCAtNTUxLDYgKzU2Miw3IEBACiAJCQkJMEMy
REExNTYxRjNCRUI0OTAwREJDMzE3IC8qIHB0aHJlYWRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBDNzc4NTlGMUY0NTEzMEYwMEY0RUJCNiAvKiBRVEtpdFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEMyREExNTcxRjNCRUI0OTAwREJDMzE3IC8qIFF1YXJ0ekNvcmVTUEkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUExMDI2NThCMUY1Njc0OEMwMEI0Qzg0NCAvKiBRdWlja0RyYXdTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBDNzc4NUEwMUY0NTEzMEYwMEY0RUJCNiAvKiBRdWlja0xvb2tNYWNT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTIwMUY0M0E0QzcwMDJFQUMwMiAvKiBRdWlj
a0xvb2tTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU4MUYzQkVCNDkwMERCQzMxNyAv
KiBTZXJ2ZXJzU1BJLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NvY29hL0ZvdW5kYXRpb25TUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NvY29hL0ZvdW5kYXRpb25TUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODQxNzVkMTJiOWUzYzdi
ZGYyNmQyZWJiNTMwMzY4ZWE3N2VlZTBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY29jb2EvRm91bmRhdGlvblNQSS5oCkBAIC0wLDAgKzEsNDEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisK
KyNpbmNsdWRlIDxGb3VuZGF0aW9uL05TUHJpdmF0ZURlY2xzLmg+CisKKyNlbmRpZgorCit0eXBl
ZGVmIHZvaWQqIE5TQXV0b3JlbGVhc2VQb29sTWFyazsKKworV1RGX0VYVEVSTl9DX0JFR0lOCisK
K05TQXV0b3JlbGVhc2VQb29sTWFyayBOU1B1c2hBdXRvcmVsZWFzZVBvb2woTlNVSW50ZWdlciBj
YXBhY2l0eSk7Cit2b2lkIE5TUG9wQXV0b3JlbGVhc2VQb29sKE5TQXV0b3JlbGVhc2VQb29sTWFy
ayk7CisKK1dURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21h
Yy9ISVRvb2xib3hTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDdjZjg4OWRkY2M5OTQwNTk2NjExMWJlZTE4
YjkzYWY3Yjg1YmE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvbWFjL0hJVG9vbGJveFNQSS5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbmNsdWRlIDxISVRv
b2xib3gvSElUb29sYm94UHJpdi5oPgorCisjZWxzZQorCisjZGVmaW5lIGtUU01JbnB1dFNvdXJj
ZVByb3BlcnR5U2NyaXB0Q29kZSAgQ0ZTVFIoIlRTTUlucHV0U291cmNlUHJvcGVydHlTY3JpcHRD
b2RlIikKKworI2VuZGlmCisKK3R5cGVkZWYgc3RydWN0IF9fVFNNSW5wdXRTb3VyY2UqIFRTTUlu
cHV0U291cmNlUmVmOworCitXVEZfRVhURVJOX0NfQkVHSU4KKworT1NTdGF0dXMgX1N5bmNXaW5k
b3dXaXRoQ0dBZnRlck1vdmUoV2luZG93UmVmKTsKK0NHV2luZG93SUQgR2V0TmF0aXZlV2luZG93
RnJvbVdpbmRvd1JlZihXaW5kb3dSZWYpOworT1NTdGF0dXMgVFNNUHJvY2Vzc1Jhd0tleUV2ZW50
KEV2ZW50UmVmKTsKK0V2ZW50UmVmIEdldEN1cnJlbnRFdmVudCgpOworQ0ZUeXBlUmVmIFRTTUdl
dElucHV0U291cmNlUHJvcGVydHkoVFNNSW5wdXRTb3VyY2VSZWYsIFRTTUlucHV0U291cmNlUHJv
cGVydHlUYWcpOworCitXVEZfRVhURVJOX0NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9tYWMvTlNFdmVudFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvbWFjL05TRXZlbnRTUEkuaAppbmRleCA4NTc3Y2U1ODNlYTFjMjI4ZDQ0Y2JmMjQ4NTVmNzBm
Y2RjZjJmMTE4Li43OTE3ODRkNTE3OWNhZTc4ODM3MjZiMjEyN2ZmYmZlOTAyNjA2OWYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNFdmVudFNQSS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU0V2ZW50U1BJLmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDEwICszMywy
MCBAQAogCiAjZWxzZQogCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiBlbnVtIHsKICAgICBO
U0V2ZW50U3dpcGVUcmFja2luZ0NvbnN1bWVNb3VzZUV2ZW50cyA9IDB4MSA8PCAyCiB9OwogCitA
aW50ZXJmYWNlIE5TRXZlbnQgKCkKKy0gKG51bGxhYmxlIE5TRXZlbnQgKilfaW5pdFdpdGhDR0V2
ZW50OihudWxsYWJsZSBDR0V2ZW50UmVmKWNnRXZlbnQgZXZlbnRSZWY6KG51bGxhYmxlIHZvaWQq
KWV2ZW50UmVmOworLSAobnVsbGFibGUgdm9pZCopX2V2ZW50UmVmIE5TX1JFVFVSTlNfSU5ORVJf
UE9JTlRFUjsKKy0gKE5TRXZlbnQgKilfZXZlbnRSZWxhdGl2ZVRvV2luZG93OihOU1dpbmRvdyAq
KXdpbmRvdzsKK0BlbmQKKworTlNfQVNTVU1FX05PTk5VTExfRU5ECisKICNlbmRpZgogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU1dpbmRvd1NQ
SS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TV2luZG93U1BJLmgKaW5kZXgg
MDJjMzNmNzEzNTU3ZWFkYzVkMDYxMjdkOTkyOTA3YTY2NjRjMjY2ZC4uYmFiODQwMGYwNDlkOTRi
OTJkZWZlYTlhZTk1MzE2MmZmMjE1ODk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvbWFjL05TV2luZG93U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvbWFjL05TV2luZG93U1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNiArNDEsMTAgQEAKIAogQGVuZAogCitlbnVtIHsKKyAg
ICBfTlNDYXJib25XaW5kb3dNYXNrID0gMSA8PCAyNSwKK307CisKICNlbmRpZgogCiAjZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
bWFjL1F1aWNrRHJhd1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL1F1aWNr
RHJhd1NQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlZDJkY2NkMmQxMGJmZmUzY2I1NTA4YmFkY2E2NWEzNmU2
MTA1N2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMv
UXVpY2tEcmF3U1BJLmgKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZm5kZWYgX19MUDY0X18KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CisKKyNpbmNsdWRlIDxRRC9RdWlja2RyYXdQcml2Lmg+CisKKyNlbHNlCisKKyNkZWZpbmUgTWFj
U2V0UmVjdCBTZXRSZWN0CisjZGVmaW5lIE1hY1NldFJlY3RSZ24gU2V0UmVjdFJnbgorI2RlZmlu
ZSBNYWNVbmlvblJnbiBVbmlvblJnbgorCitlbnVtIHsKKyAgICBibGFja0NvbG9yID0gMzMsCisg
ICAgd2hpdGVDb2xvciA9IDMwLAorICAgIGdyZWVuQ29sb3IgPSAzNDEsCit9OworCitlbnVtIHsK
KyAgICBrQml0c1Byb2MgPSA4LAorfTsKKworI2VuZGlmCisKK3R5cGVkZWYgbG9uZyBRRERyYXdp
bmdUeXBlOworCitXVEZfRVhURVJOX0NfQkVHSU4KKworQm9vbGVhbiBFbXB0eVJnbihSZ25IYW5k
bGUpOworT1NTdGF0dXMgQ3JlYXRlQ0dDb250ZXh0Rm9yUG9ydChDR3JhZlB0ciwgQ0dDb250ZXh0
UmVmKik7CitPU1N0YXR1cyBTeW5jQ0dDb250ZXh0T3JpZ2luV2l0aFBvcnQoQ0dDb250ZXh0UmVm
LCBDR3JhZlB0cik7CitQaXhNYXBIYW5kbGUgR2V0UG9ydFBpeE1hcChDR3JhZlB0cik7CitRREVy
ciBOZXdHV29ybGRGcm9tUHRyKEdXb3JsZFB0ciosIFVJbnQzMiwgY29uc3QgUmVjdCosIENUYWJI
YW5kbGUsIEdESGFuZGxlLCBHV29ybGRGbGFncywgUHRyLCBTSW50MzIpOworUmVjdCogR2V0UG9y
dEJvdW5kcyhDR3JhZlB0ciwgUmVjdCopOworUmVjdCogR2V0UmVnaW9uQm91bmRzKFJnbkhhbmRs
ZSwgUmVjdCopOworUmduSGFuZGxlIEdldFBvcnRDbGlwUmVnaW9uKENHcmFmUHRyLCBSZ25IYW5k
bGUpOworUmduSGFuZGxlIEdldFBvcnRWaXNpYmxlUmVnaW9uKENHcmFmUHRyLCBSZ25IYW5kbGUp
OworUmduSGFuZGxlIE5ld1JnbigpOwordm9pZCBCYWNrQ29sb3IobG9uZyk7Cit2b2lkIENhbGxE
cmF3aW5nTm90aWZpY2F0aW9ucyhDR3JhZlB0ciwgY29uc3QgUmVjdCosIFFERHJhd2luZ1R5cGUp
Owordm9pZCBEaXNwb3NlR1dvcmxkKEdXb3JsZFB0cik7Cit2b2lkIERpc3Bvc2VSZ24oUmduSGFu
ZGxlKTsKK3ZvaWQgRm9yZUNvbG9yKGxvbmcpOwordm9pZCBHZXRHV29ybGQoQ0dyYWZQdHIqLCBH
REhhbmRsZSopOwordm9pZCBHZXRQb3J0KEdyYWZQdHIqKTsKK3ZvaWQgR2xvYmFsVG9Mb2NhbChQ
b2ludCopOwordm9pZCBNYWNTZXRSZWN0KFJlY3QqLCBzaG9ydCwgc2hvcnQsIHNob3J0LCBzaG9y
dCk7Cit2b2lkIE1hY1NldFJlY3RSZ24oUmduSGFuZGxlLCBzaG9ydCwgc2hvcnQsIHNob3J0LCBz
aG9ydCk7Cit2b2lkIE1hY1VuaW9uUmduKFJnbkhhbmRsZSwgUmduSGFuZGxlLCBSZ25IYW5kbGUp
Owordm9pZCBNb3ZlUG9ydFRvKHNob3J0LCBzaG9ydCk7Cit2b2lkIE9mZnNldFJlY3QoUmVjdCos
IHNob3J0LCBzaG9ydCk7Cit2b2lkIE9mZnNldFJnbihSZ25IYW5kbGUsIHNob3J0LCBzaG9ydCk7
Cit2b2lkIFBhaW50UmVjdChjb25zdCBSZWN0Kik7Cit2b2lkIFBlbk5vcm1hbCgpOwordm9pZCBQ
b3J0U2l6ZShzaG9ydCwgc2hvcnQpOwordm9pZCBSZWN0UmduKFJnbkhhbmRsZSwgY29uc3QgUmVj
dCopOwordm9pZCBTZWN0UmduKFJnbkhhbmRsZSwgUmduSGFuZGxlLCBSZ25IYW5kbGUpOwordm9p
ZCBTZXRHV29ybGQoQ0dyYWZQdHIsIEdESGFuZGxlKTsKK3ZvaWQgU2V0T3JpZ2luKHNob3J0LCBz
aG9ydCk7Cit2b2lkIFNldFBvcnQoR3JhZlB0cik7Cit2b2lkIFNldFBvcnRDbGlwUmVnaW9uKENH
cmFmUHRyLCBSZ25IYW5kbGUpOwordm9pZCBTZXRQb3J0VmlzaWJsZVJlZ2lvbihDR3JhZlB0ciwg
UmduSGFuZGxlKTsKKworV1RGX0VYVEVSTl9DX0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQppbmRleCA1Mjlj
NGI1MzM5YTFjODg0ZDI1ZTBlMmI0ZTBiNTA5MmVhMjlkNDE4Li5kZDUzMzcwMjQ3ZjBhNmI3NGEw
MWJmY2M4YWE5NmZhNmZmZjM0NDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblBy
b2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9QbHVnaW5Q
cm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbXBvcnQgPG1hY2gvbWFjaF92bS5oPgog
I2ltcG9ydCA8bWFjaC92bV9zdGF0aXN0aWNzLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4K
KyNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oPgogI2ltcG9ydCA8c3lzZXhpdHMu
aD4KICNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KQEAgLTk2LDcgKzk3LDcgQEAgc3RhdGljIGJvb2wgd2luZG93Q292ZXJzQW55U2NyZWVuKFdp
bmRvd1JlZiB3aW5kb3cpCiAKIHN0YXRpYyBDR1dpbmRvd0lEIGNnV2luZG93SUQoV2luZG93UmVm
IHdpbmRvdykKIHsKLSAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDR1dpbmRvd0lEPihXS0dl
dE5hdGl2ZVdpbmRvd0Zyb21XaW5kb3dSZWYod2luZG93KSk7CisgICAgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8Q0dXaW5kb3dJRD4oR2V0TmF0aXZlV2luZG93RnJvbVdpbmRvd1JlZih3aW5kb3cp
KTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KaW5kZXgg
MjAxYjNkY2Q4Mzk5NDg2YjhlNGUyZDkwYzc1OWYyYTk1MWVkNDMyOS4uYTMxMjBlNjI1MzgzYmVi
MmFmNzA3MDI3MGY0N2Y4NTg5OTMwYzIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdp
bk1hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zNyw2ICszNyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+
CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPG9iamMvcnVudGlt
ZS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg+CiAjaW1wb3J0IDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIApAQCAt
OTg4LDYgKzk4OSwyMSBAQCBzdGF0aWMgYm9vbCBjb252ZXJ0U3RyaW5nVG9LZXlDb2RlcyhTdHJp
bmdWaWV3IHN0cmluZywgU2NyaXB0Q29kZSBzY3JpcHRDb2RlLCBWZQogfQogI2VuZGlmCiAKKyNp
Zm5kZWYgTlBfTk9fQ0FSQk9OCitzdGF0aWMgU2NyaXB0Q29kZSBzY3JpcHRDb2RlRnJvbUN1cnJl
bnRLZXlib2FyZElucHV0U291cmNlKCkKK3sKKyAgICBTY3JpcHRDb2RlIHNjcmlwdENvZGUgPSBz
bVJvbWFuOworICAgIGF1dG8gaW5wdXRTb3VyY2UgPSBhZG9wdENGKFRJU0NvcHlDdXJyZW50S2V5
Ym9hcmRJbnB1dFNvdXJjZSgpKTsKKworICAgIENGVHlwZVJlZiBzY3JpcHRDb2RlTnVtYmVyID0g
VFNNR2V0SW5wdXRTb3VyY2VQcm9wZXJ0eSgoVFNNSW5wdXRTb3VyY2VSZWYpaW5wdXRTb3VyY2Uu
Z2V0KCksIGtUU01JbnB1dFNvdXJjZVByb3BlcnR5U2NyaXB0Q29kZSk7CisgICAgQVNTRVJUKENG
R2V0VHlwZUlEKHNjcmlwdENvZGVOdW1iZXIpID09IENGTnVtYmVyR2V0VHlwZUlEKCkpOworICAg
IGlmIChzY3JpcHRDb2RlTnVtYmVyKQorICAgICAgICBDRk51bWJlckdldFZhbHVlKChDRk51bWJl
clJlZilzY3JpcHRDb2RlTnVtYmVyLCBrQ0ZOdW1iZXJTSW50MTZUeXBlLCAmc2NyaXB0Q29kZSk7
CisKKyAgICByZXR1cm4gc2NyaXB0Q29kZTsKK30KKyNlbmRpZgorCiB2b2lkIE5ldHNjYXBlUGx1
Z2luOjpzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKIHsKICAg
ICBpZiAoIW1fcGx1Z2luV2FudHNMZWdhY3lDb2NvYVRleHRJbnB1dCkgewpAQCAtMTAxMSw3ICsx
MDI3LDcgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3Qg
U3RyaW5nJiB0ZXh0SW5wdXQpCiAgICAgfQogI2lmbmRlZiBOUF9OT19DQVJCT04KICAgICBjYXNl
IE5QRXZlbnRNb2RlbENhcmJvbjogewotICAgICAgICBTY3JpcHRDb2RlIHNjcmlwdENvZGUgPSBX
S0dldFNjcmlwdENvZGVGcm9tQ3VycmVudEtleWJvYXJkSW5wdXRTb3VyY2UoKTsKKyAgICAgICAg
U2NyaXB0Q29kZSBzY3JpcHRDb2RlID0gc2NyaXB0Q29kZUZyb21DdXJyZW50S2V5Ym9hcmRJbnB1
dFNvdXJjZSgpOwogICAgICAgICBWZWN0b3I8VUludDg+IGtleUNvZGVzOwogCiAgICAgICAgIGlm
ICghY29udmVydFN0cmluZ1RvS2V5Q29kZXModGV4dElucHV0LCBzY3JpcHRDb2RlLCBrZXlDb2Rl
cykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJLaXRMZWdhY3kueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNGJlZWVhZGVmMWE3ODhhNDkyNGE0YjYwOTE5
NGM3MjQzN2QwZGVjLi5jMjI0MzA1OTZkNjU5MjMzM2NjZGMzNWU2MDk4NDk2MTZiZDcwZTQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0OSw3ICsxNDksNiBAQAogCQk1OThBRDkyODEyMDFD
RjMyMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OThBRDkyNzEyMDFDRjMy
MDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW0gKi87IH07CiAJ
CTU5OEFEOTJBMTIwMUNGM0IwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVy
TW9ja0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1OThBRDkyOTEyMDFDRjNCMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlck1vY2tJbnRlcm5hbC5oICovOyB9OwogCQk1OThBREE0NjEyMDIyNzUwMDBBQkFFNEUgLyog
V2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTk4QURBNDUxMjAyMjc1MDAwQUJBRTRFIC8qIFdlYkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwotCQk1Qzc3MDY3MjFEMTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3Q29t
cGF0aWJpbGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUM3NzA2NzExRDExMUIyMjAwMTI3MDBGIC8qIFF1aWNrRHJhd0NvbXBhdGliaWxpdHkuaCAq
LzsgfTsKIAkJNUQ3QkY4MTQwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQ3QkY4MTIwQzJBMUQ5
MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTVEN0JGODE1MEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNw
ZWN0b3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
RDdCRjgxMzBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLm1tICovOyB9OwogCQk1REU4
M0E3QTBEMEY3Rjk0MDBDQUQxMkEgLyogV2ViSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsLm5pYiBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNURFODNBNzQw
RDBGN0Y5NDAwQ0FEMTJBIC8qIFdlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5uaWIgKi87IH07
CkBAIC0zMTksNyArMzE4LDYgQEAKIAkJOTM5ODEwRkYwODI0QkYwMTAwOERGMDM4IC8qIENhcmJv
bldpbmRvd0ZyYW1lLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGN0VCRUU5NTAzRjlEQkExMDNDQTBERTYgLyogQ2FyYm9uV2luZG93RnJhbWUubSAqLzsg
fTsKIAkJOTM5ODExMDAwODI0QkYwMTAwOERGMDM4IC8qIEhJVmlld0FkYXB0ZXIubSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY3RUJFRTlCMDNGOURCQTEw
M0NBMERFNiAvKiBISVZpZXdBZGFwdGVyLm0gKi87IHNldHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdT
ID0gIi1Xbm8tZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiOyB9OyB9OwogCQk5Mzk4MTEwMTA4MjRC
RjAxMDA4REYwMzggLyogQ2FyYm9uVXRpbHMubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY3OUI5NzQ5MDQwMTk5MzQwMzY5MDlEMiAvKiBDYXJib25VdGls
cy5tICovOyB9OwotCQk5Mzk4MTEwMjA4MjRCRjAxMDA4REYwMzggLyogSElXZWJWaWV3Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjdFQkVFQUIwM0Y5
REJBMTAzQ0EwREU2IC8qIEhJV2ViVmlldy5tbSAqLzsgc2V0dGluZ3MgPSB7Q09NUElMRVJfRkxB
R1MgPSAiLVduby1kZXByZWNhdGVkLWRlY2xhcmF0aW9ucyI7IH07IH07CiAJCTkzOTgxMTAzMDgy
NEJGMDEwMDhERjAzOCAvKiBXZWJLaXRFcnJvcnMubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNzMwRjk4MDNGQjFFNjYwMDA0NzM2RSAvKiBXZWJLaXRF
cnJvcnMubSAqLzsgfTsKIAkJOTM5ODExMDYwODI0QkYwMTAwOERGMDM4IC8qIFdlYkZyYW1lVmll
dy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQThC
NTJGMDQyODJCNTkwMENBMkQzQSAvKiBXZWJGcmFtZVZpZXcubW0gKi87IH07CiAJCTkzOTgxMTA3
MDgyNEJGMDEwMDhERjAzOCAvKiBXZWJWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBOEI1N0EwNDI4MzRGNzAwQ0EyRDNBIC8qIFdlYlZpZXcu
bW0gKi87IH07CkBAIC02ODAsNiArNjc4LDcgQEAKIAkJOTNFQjE3OEQwOUY4OEQ0NjAwOTFGOEZG
IC8qIFdlYlN5c3RlbUludGVyZmFjZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzRUIxNzhDMDlGODhENDYwMDkxRjhGRiAvKiBXZWJTeXN0ZW1JbnRl
cmZhY2UubW0gKi87IH07CiAJCTkzRUIxNzhGMDlGODhENTEwMDkxRjhGRiAvKiBXZWJTeXN0ZW1J
bnRlcmZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzRUIxNzhFMDlGODhENTEwMDkxRjhGRiAvKiBXZWJTeXN0ZW1JbnRlcmZhY2UuaCAqLzsgfTsK
IAkJOTNGREU5MzMwRDc5Q0FGMzAwNzRGMDI5IC8qIFdlYkhpc3RvcnlJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGREU5MzIwRDc5Q0FG
MzAwNzRGMDI5IC8qIFdlYkhpc3RvcnlJbnRlcm5hbC5oICovOyB9OworCQlBMTAyNjU4MzFGNTY1
NDAzMDBCNEM4NDQgLyogSElXZWJWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTEwMjY1ODIxRjU2NTQwMzAwQjRDODQ0IC8qIEhJV2ViVmlldy5t
bSAqLzsgfTsKIAkJQTEwQzFEMTgxODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGb3JtRGVs
ZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEx
MEMxRDEwMTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLmggKi87IH07
CiAJCUExMEMxRDE5MTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLm0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBDMUQxMTE4
MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVmYXVsdEZvcm1EZWxlZ2F0ZS5tICovOyB9OwogCQlBMTBD
MUQxQTE4MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVmYXVsdEZyYW1lTG9hZERlbGVnYXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBDMUQxMjE4MjAy
RjlDMDAzNjg4M0EgLyogV2ViRGVmYXVsdEZyYW1lTG9hZERlbGVnYXRlLmggKi87IH07CkBAIC05
ODgsNyArOTg3LDYgQEAKIAkJNTk4QUQ5MjcxMjAxQ0YzMjAwQUJBRTRFIC8qIFdlYkRldmljZU9y
aWVudGF0aW9uUHJvdmlkZXJNb2NrLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU5OEFEOTI5MTIwMUNGM0IwMEFCQUU0RSAvKiBXZWJEZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyTW9ja0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrSW50ZXJuYWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk4QURBNDUxMjAyMjc1MDAwQUJBRTRFIC8qIFdl
YkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk1Qzc3MDY3MTFEMTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0aWJp
bGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWlja0RyYXdDb21wYXRp
YmlsaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEN0JGODEyMEMyQTFEOTAw
MDhDRTA2RCAvKiBXZWJJbnNwZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkluc3BlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDdCRjgx
MzBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkluc3BlY3Rvci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNURFODNBNzUwRDBGN0Y5NDAwQ0FEMTJBIC8qIEVuZ2xpc2ggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLm5pYjsgbmFt
ZSA9IEVuZ2xpc2g7IHBhdGggPSBFbmdsaXNoLmxwcm9qL1dlYkphdmFTY3JpcHRUZXh0SW5wdXRQ
YW5lbC5uaWI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTE0MjAsNiArMTQxOCw3
IEBACiAJCTkzRkRFOTMyMEQ3OUNBRjMwMDc0RjAyOSAvKiBXZWJIaXN0b3J5SW50ZXJuYWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSGlzdG9yeUludGVybmFsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlDQUU5RDA3MDI1MkE0MTMwRUNBMTZFQSAvKiBX
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTlDRjBFMjQ5MDIxMzYx
QjAwRUNBMTZFQSAvKiBXZWJGcmFtZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGcmFtZVByaXZhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CisJCUExMDI2NTgyMUY1
NjU0MDMwMEI0Qzg0NCAvKiBISVdlYlZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBISVdlYlZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUExMEMxRDEwMTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkRlZmF1bHRGb3JtRGVsZWdhdGUuaDsg
cGF0aCA9IGlvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRGb3JtRGVsZWdhdGUuaDsgc291
cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlBMTBDMUQxMTE4MjAyRjlDMDAzNjg4M0EgLyog
V2ViRGVmYXVsdEZvcm1EZWxlZ2F0ZS5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IG5h
bWUgPSBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLm07IHBhdGggPSBpb3MvRGVmYXVsdERlbGVnYXRl
cy9XZWJEZWZhdWx0Rm9ybURlbGVnYXRlLm07IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsK
IAkJQTEwQzFEMTIxODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGcmFtZUxvYWREZWxlZ2F0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJEZWZhdWx0RnJhbWVMb2Fk
RGVsZWdhdGUuaDsgcGF0aCA9IGlvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRGcmFtZUxv
YWREZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CkBAIC0xNTk3LDcgKzE1
OTYsNiBAQAogCQlGN0VCRUU5QTAzRjlEQkExMDNDQTBERTYgLyogSElWaWV3QWRhcHRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBISVZpZXdB
ZGFwdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMg
PSAwOyB9OwogCQlGN0VCRUU5QjAzRjlEQkExMDNDQTBERTYgLyogSElWaWV3QWRhcHRlci5tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IHBhdGggPSBISVZp
ZXdBZGFwdGVyLm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwogCQlGN0VCRUVBQTAzRjlEQkExMDNDQTBERTYgLyogSElXZWJWaWV3LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhJV2ViVmll
dy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKLQkJRjdFQkVFQUIwM0Y5REJBMTAzQ0EwREU2IC8qIEhJV2ViVmlldy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBmaWxlRW5jb2RpbmcgPSAzMDsgcGF0aCA9IEhJV2ViVmlldy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdXNlc1RhYnMgPSAwOyB9OwogCQlGODM0QUFENTBFNjRCMUM3MDBFMjczN0Mg
LyogV2ViVGV4dEl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlRleHRJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGODM0QUFENjBF
NjRCMUM3MDBFMjczN0MgLyogV2ViVGV4dEl0ZXJhdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViVGV4dEl0ZXJhdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGOENBMTVCNTAyOUEzOUQ5MDEwMDAxMjIgLyogV2ViQXV0aGVudGljYXRp
b25QYW5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJBdXRoZW50aWNhdGlvblBhbmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTc2OSw3ICsxNzY3LDYgQEAKIAkJCWNo
aWxkcmVuID0gKAogCQkJCUExMEMxRDIwMTgyMDJGQUYwMDM2ODgzQSAvKiBpb3MgKi8sCiAJCQkJ
MjlBRUY5NUQxMzRDNzU1NDAwRkU1MDk2IC8qIE91dGxvb2tRdWlya3NVc2VyU2NyaXB0LmpzICov
LAotCQkJCTVDNzcwNjcxMUQxMTFCMjIwMDEyNzAwRiAvKiBRdWlja0RyYXdDb21wYXRpYmlsaXR5
LmggKi8sCiAJCQkJNTI0MUFERjMwQjFCQzQ4QTAwNDAxMkJEIC8qIFdlYkNhY2hlLmggKi8sCiAJ
CQkJNTI0MUFERjQwQjFCQzQ4QTAwNDAxMkJEIC8qIFdlYkNhY2hlLm1tICovLAogCQkJCUY1OUVB
RTNFMDI1M0M3RUUwMTg2MzVDQSAvKiBXZWJDb3JlU3RhdGlzdGljcy5oICovLApAQCAtMjY3Miw3
ICsyNjY5LDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJRjdF
QkVFQUEwM0Y5REJBMTAzQ0EwREU2IC8qIEhJV2ViVmlldy5oICovLAotCQkJCUY3RUJFRUFCMDNG
OURCQTEwM0NBMERFNiAvKiBISVdlYlZpZXcubW0gKi8sCisJCQkJQTEwMjY1ODIxRjU2NTQwMzAw
QjRDODQ0IC8qIEhJV2ViVmlldy5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gIkMgQVBJIjsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yOTM2LDcgKzI5MzMsNiBAQAogCQkJCTdDMDFD
Qjg1MTczNDM1QzkwMEM1RDgwNyAvKiBQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBMkRCRTlGMEYyNTFFM0EwMDM2RjhBNiAvKiBQcm94eUluc3RhbmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFMTY5ODM2MjExMzQ2RDFCMDA4OTQxMTUgLyogUHJveHlSdW50aW1lT2JqZWN0Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQk1Qzc3MDY3MjFEMTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3
Q29tcGF0aWJpbGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEwQzFENjIxODIwMzAwRTAwMzY4
ODNBIC8qIFNlYXJjaFBvcHVwTWVudUlPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MwMUNCODcx
NzM0MzVDOTAwQzVEODA3IC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUE2QjMxMzIxQTUxRjNBOTAwNDIyOTc1IC8qIFN0b3JhZ2VBcmVhSW1wbC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zNTEzLDcgKzM1MDksNyBAQAogCQkJCTkzRDQzNzlBMUQ1N0FCRUYwMEFCODVF
QSAvKiBFeGNlcHRpb25IYW5kbGVycy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNjA1MTkzMTc1
MDJBNUQwMEJDNjJGNSAvKiBIaXN0b3J5UHJvcGVydHlMaXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTM5ODExMDAwODI0QkYwMTAwOERGMDM4IC8qIEhJVmlld0FkYXB0ZXIubSBpbiBTb3VyY2Vz
ICovLAotCQkJCTkzOTgxMTAyMDgyNEJGMDEwMDhERjAzOCAvKiBISVdlYlZpZXcubW0gaW4gU291
cmNlcyAqLywKKwkJCQlBMTAyNjU4MzFGNTY1NDAzMDBCNEM4NDQgLyogSElXZWJWaWV3Lm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUE4REVENTEwRUU4OEI4QTAwRjI1MDIyIC8qIEhvc3RlZE5ldHNj
YXBlUGx1Z2luU3RyZWFtLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEwQzFEMzMxODIwMkZDNTAw
MzY4ODNBIC8qIE1lbW9yeU1lYXN1cmUubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUFGNUNFQjBF
RERFMUZFMDA4RDg4M0QgLyogTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbSBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvblV0
aWxzLm0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uVXRpbHMubQppbmRl
eCBjNTg2MjNkNDA3MWRlYjg0NzhmMjA5ZWNiODg3ZGIzZTJlZWM2ODUxLi5mYWQyZjYwZmVkN2Ri
NDE4MzE0NGIzZjI5OTczOTk0ZTMyY2UwYWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DYXJib24vQ2FyYm9uVXRpbHMubQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DYXJib24vQ2FyYm9uVXRpbHMubQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ2FyYm9u
VXRpbHMuaCIKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8cGFs
L3NwaS9jb2NvYS9Gb3VuZGF0aW9uU1BJLmg+CiAKIGV4dGVybiBDR0ltYWdlUmVmIF9OU0NyZWF0
ZUltYWdlUmVmKCB1bnNpZ25lZCBjaGFyICpjb25zdCBiaXRtYXBEYXRhWzVdLCBpbnQgcGl4ZWxz
V2lkZSwgaW50IHBpeGVsc0hpZ2gsIGludCBiaXRzUGVyU2FtcGxlLCBpbnQgc2FtcGxlc1BlclBp
eGVsLCBpbnQgYml0c1BlclBpeGVsLCBpbnQgYnl0ZXNQZXJSb3csIEJPT0wgaXNQbGFuYXIsIEJP
T0wgaGFzQWxwaGEsIE5TU3RyaW5nICpjb2xvclNwYWNlTmFtZSwgQ0dDb2xvclNwYWNlUmVmIGN1
c3RvbUNvbG9yU3BhY2UsIGlkIHNvdXJjZU9iaik7CiAKQEAgLTQxLDYgKzQyLDE0IEBACiAKIHZv
aWQgICAgICAgICAgICAgICAgICAgIEhJV2ViVmlld1JlZ2lzdGVyQ2xhc3MoIHZvaWQgKTsKIAor
c3RhdGljIHVuc2lnbmVkIGdldE5TQXV0b3JlbGVhc2VQb29sQ291bnQodm9pZCkKK3sKKyAgICB2
b2lkKiB2ID0gTlNQdXNoQXV0b3JlbGVhc2VQb29sKDApOworICAgIHVpbnRwdHJfdCBudW1Qb29s
cyA9ICh1aW50cHRyX3QpdjsKKyAgICBOU1BvcEF1dG9yZWxlYXNlUG9vbCh2KTsKKyAgICByZXR1
cm4gbnVtUG9vbHM7Cit9CisKIHZvaWQKIFdlYkluaXRGb3JDYXJib24oKQogewpAQCAtNTYsNyAr
NjUsNyBAQAogICAgICAgICBOU0FwcGxpY2F0aW9uTG9hZCgpOwogICAgICAgICAgICAgICAgIAog
ICAgICAgICBzUG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NXaXRoWm9uZTpOVUxMXSBp
bml0XTsKLSAgICAgICAgbnVtUG9vbHMgPSBXS0dldE5TQXV0b3JlbGVhc2VQb29sQ291bnQoKTsK
KyAgICAgICAgbnVtUG9vbHMgPSBnZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KCk7CiAgICAgICAg
IAogICAgICAgICBwb29sTG9vcCA9IEdldEN1cnJlbnRFdmVudExvb3AgKCk7CiAKQEAgLTgyLDEy
ICs5MSwxMiBAQAogICAgICAgICBDRlN0cmluZ1JlZiBtb2RlID0gQ0ZSdW5Mb29wQ29weUN1cnJl
bnRNb2RlKCAoQ0ZSdW5Mb29wUmVmKUdldENGUnVuTG9vcEZyb21FdmVudExvb3AoIEdldEN1cnJl
bnRFdmVudExvb3AoKSApKTsKICAgICAgICAgRXZlbnRMb29wUmVmIHRoaXNMb29wID0gR2V0Q3Vy
cmVudEV2ZW50TG9vcCAoKTsKICAgICAgICAgaWYgKCBDRkVxdWFsKCBtb2RlLCBrQ0ZSdW5Mb29w
RGVmYXVsdE1vZGUgKSAmJiB0aGlzTG9vcCA9PSBwb29sTG9vcCkgewotICAgICAgICAgICAgdW5z
aWduZWQgY3VycmVudE51bVBvb2xzID0gV0tHZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KCktMTsg
ICAgICAgICAgICAKKyAgICAgICAgICAgIHVuc2lnbmVkIGN1cnJlbnROdW1Qb29scyA9IGdldE5T
QXV0b3JlbGVhc2VQb29sQ291bnQoKS0xOyAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGN1
cnJlbnROdW1Qb29scyA9PSBudW1Qb29scyl7CiAgICAgICAgICAgICAgICAgW3NQb29sIGRyYWlu
XTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBzUG9vbCA9IFtbTlNBdXRvcmVs
ZWFzZVBvb2wgYWxsb2NXaXRoWm9uZTpOVUxMXSBpbml0XTsKLSAgICAgICAgICAgICAgICBudW1Q
b29scyA9IFdLR2V0TlNBdXRvcmVsZWFzZVBvb2xDb3VudCgpOworICAgICAgICAgICAgICAgIG51
bVBvb2xzID0gZ2V0TlNBdXRvcmVsZWFzZVBvb2xDb3VudCgpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgICAgIENGUmVsZWFzZSggbW9kZSApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQppbmRleCA2MDA5ZGZj
ZDg3MDczNGUzMDJiOTQ4NTE5MDlhY2E2Yzk5YThlZTNmLi4xYmQ1M2U4OTA3ZDdmNzA5MzQ0ODJh
MGY1MGQ3ODdmZWRiNDM3NDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
YXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzMsNiArNzMsOCBAQAogI2ltcG9ydCA8
YXNzZXJ0Lmg+CiAKICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KKyNpbXBv
cnQgPHBhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNX
aW5kb3dTUEkuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2lt
cG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CkBAIC04MSw2
ICs4Myw5IEBACiAjaW1wb3J0ICJXZWJOU09iamVjdEV4dHJhcy5oIgogI2ltcG9ydCAiV2ViVHlw
ZXNJbnRlcm5hbC5oIgogCitleHRlcm4gY29uc3QgT1NUeXBlIE5TQXBwS2l0UHJvcGVydHlDcmVh
dG9yOworZXh0ZXJuIGNvbnN0IE9TVHlwZSBOU0NhcmJvbldpbmRvd1Byb3BlcnR5VGFnOworCiBA
aW50ZXJmYWNlIE5TV2luZG93KEhJV2ViRnJhbWVWaWV3KQogLSAoaWQpX2luaXRDb250ZW50Oihj
b25zdCBOU1JlY3QgKiljb250ZW50UmVjdCBzdHlsZU1hc2s6KHVuc2lnbmVkIGludClhU3R5bGUg
YmFja2luZzooTlNCYWNraW5nU3RvcmVUeXBlKWJ1ZmZlcmluZ1R5cGUgZGVmZXI6KEJPT0wpZmxh
ZyBjb250ZW50VmlldzphVmlldzsKIC0gKHZvaWQpX29sZFBsYWNlV2luZG93OihOU1JlY3QpZnJh
bWVSZWN0OwpAQCAtMTExLDcgKzExNiw3IEBAIEBpbXBsZW1lbnRhdGlvbiBDYXJib25XaW5kb3dB
ZGFwdGVyCiArIChDbGFzcylmcmFtZVZpZXdDbGFzc0ZvclN0eWxlTWFzazoodW5zaWduZWQgaW50
KXN0eWxlIHsKIAogICAgIC8vIFRoZXJlJ3Mgb25seSBvbmUgYXBwcm9wcmlhdGUgd2luZG93IHN0
eWxlLCBhbmQgb25seSBvbmUgYXBwcm9wcmlhdGUgd2luZG93IGZyYW1lIGNsYXNzLgotICAgIGFz
c2VydChzdHlsZSAmIFdLQ2FyYm9uV2luZG93TWFzaygpKTsKKyAgICBhc3NlcnQoc3R5bGUgJiBf
TlNDYXJib25XaW5kb3dNYXNrKTsKICAgICByZXR1cm4gW0NhcmJvbldpbmRvd0ZyYW1lIGNsYXNz
XTsKIAogfQpAQCAtMTU2LDcgKzE2MSw3IEBAIC0gKGlkKWluaXRXaXRoQ2FyYm9uV2luZG93UmVm
OihXaW5kb3dSZWYpaW5XaW5kb3dSZWYgdGFraW5nT3duZXJzaGlwOihCT09MKWluV2luCiAJX2Nh
cmJvbiA9IGluQ2FyYm9uOwogCiAgICAgLy8gRmluZCBvdXQgdGhlIHdpbmRvdydzIENvcmVHcmFw
aGljcyB3aW5kb3cgcmVmZXJlbmNlLgotICAgIG5hdGl2ZVdpbmRvdyA9IFdLR2V0TmF0aXZlV2lu
ZG93RnJvbVdpbmRvd1JlZihpbldpbmRvd1JlZik7CisgICAgbmF0aXZlV2luZG93ID0gKHZvaWQq
KUdldE5hdGl2ZVdpbmRvd0Zyb21XaW5kb3dSZWYoaW5XaW5kb3dSZWYpOwogCiAgICAgLy8gRmlu
ZCBvdXQgdGhlIHdpbmRvdydzIENhcmJvbiB3aW5kb3cgYXR0cmlidXRlcy4KICAgICBHZXRXaW5k
b3dBdHRyaWJ1dGVzKGluV2luZG93UmVmLCAmd2luZG93QXR0cmlidXRlcyk7CkBAIC0xNzUsNyAr
MTgwLDcgQEAgLSAoaWQpaW5pdFdpdGhDYXJib25XaW5kb3dSZWY6KFdpbmRvd1JlZilpbldpbmRv
d1JlZiB0YWtpbmdPd25lcnNoaXA6KEJPT0wpaW5XaW4KICNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKIAogICAgIC8vIEZpZ3VyZSBvdXQgdGhlIHdpbmRvdydzIHN0eWxlIG1hc2suCi0gICAg
c3R5bGVNYXNrID0gV0tDYXJib25XaW5kb3dNYXNrKCk7CisgICAgc3R5bGVNYXNrID0gX05TQ2Fy
Ym9uV2luZG93TWFzazsKICAgICBpZiAod2luZG93QXR0cmlidXRlcyAmIGtXaW5kb3dDbG9zZUJv
eEF0dHJpYnV0ZSkKICAgICAgICAgc3R5bGVNYXNrIHw9IE5TV2luZG93U3R5bGVNYXNrQ2xvc2Fi
bGU7CiAgICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBrV2luZG93UmVzaXphYmxlQXR0cmlidXRl
KQpAQCAtMjQyLDcgKzI0Nyw3IEBAIC0gKGlkKWluaXRXaXRoQ2FyYm9uV2luZG93UmVmOihXaW5k
b3dSZWYpaW5XaW5kb3dSZWYgdGFraW5nT3duZXJzaGlwOihCT09MKWluV2luCiAgICAgLy8gUHV0
IGEgcG9pbnRlciB0byB0aGlzIENvY29hIE5TV2luZG93IGluIGEgQ2FyYm9uIHdpbmRvdyBwcm9w
ZXJ0eSB0YWcuCiAgICAgLy8gUmlnaHQgbm93LCB0aGlzIGlzIGp1c3QgdXNlZCBieSBOU1ZpZXdD
YXJib25Db250cm9sLiAgTS5QLiBOb3RpY2UgLSAxMC85LzAwCiAgICAgd2luZG93QXNQcm9wZXJ0
eSA9IHNlbGY7Ci0gICAgb3NTdGF0dXMgPSBTZXRXaW5kb3dQcm9wZXJ0eShfd2luZG93UmVmLCBX
S0NhcmJvbldpbmRvd1Byb3BlcnR5Q3JlYXRvcigpLCBXS0NhcmJvbldpbmRvd1Byb3BlcnR5VGFn
KCksIHNpemVvZihOU1dpbmRvdyAqKSwgJndpbmRvd0FzUHJvcGVydHkpOworICAgIG9zU3RhdHVz
ID0gU2V0V2luZG93UHJvcGVydHkoX3dpbmRvd1JlZiwgTlNBcHBLaXRQcm9wZXJ0eUNyZWF0b3Is
IE5TQ2FyYm9uV2luZG93UHJvcGVydHlUYWcsIHNpemVvZihOU1dpbmRvdyAqKSwgJndpbmRvd0Fz
UHJvcGVydHkpOwogICAgIGlmIChvc1N0YXR1cyE9bm9FcnIpIHsKICAgICAgICAgW3NlbGYgcmVs
ZWFzZV07CiAgICAgICAgIHJldHVybiBuaWw7CkBAIC01NTQsNyArNTU5LDcgQEAgLSAodm9pZClf
b2xkUGxhY2VXaW5kb3c6KE5TUmVjdClmcmFtZVJlY3QgewogCiAgICAgLy8gVGVsbCBDYXJib24g
dG8gdXBkYXRlIGl0cyB2YXJpb3VzIHJlZ2lvbnMuCiAgICAgLy8gRGVzcGl0ZSBpdHMgbmFtZSwg
dGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIGVhcmx5IGFuZCBvZnRlbiwgZXZlbiBpZiB0
aGUgd2luZG93IGlzbid0IHZpc2libGUgeWV0LiAgMjcwMjY0OC4gIE0uUC4gTm90aWNlIC0gNy8y
NC8wMQotICAgIG9zU3RhdHVzID0gV0tTeW5jV2luZG93V2l0aENHQWZ0ZXJNb3ZlKF93aW5kb3dS
ZWYpOworICAgIG9zU3RhdHVzID0gX1N5bmNXaW5kb3dXaXRoQ0dBZnRlck1vdmUoX3dpbmRvd1Jl
Zik7CiAgICAgaWYgKG9zU3RhdHVzIT1ub0VycikgTlNMb2coQCJBIENhcmJvbiB3aW5kb3cncyBi
b3VuZHMgY291bGRuJ3QgYmUgc3luY2hyb25pemVkICglaSkuIiwgKGludClvc1N0YXR1cyk7CiAK
IH0KQEAgLTYxNCw3ICs2MTksNyBAQCAtICh2b2lkKV93aW5kb3dNb3ZlZFRvUmVjdDooTlNSZWN0
KWFjdHVhbEZyYW1lIHsKIAogICAgIC8vIExldCBDYXJib24ga25vdyB0aGF0IHRoZSB3aW5kb3cg
aGFzIGJlZW4gbW92ZWQsIHVubGVzcyB0aGlzIG1ldGhvZCBpcyBiZWluZyBjYWxsZWQgImVhcmx5
LiIKICAgICBpZiAoX3dGbGFncy52aXNpYmxlKSB7Ci0gICAgICAgIG9zU3RhdHVzID0gV0tTeW5j
V2luZG93V2l0aENHQWZ0ZXJNb3ZlKF93aW5kb3dSZWYpOworICAgICAgICBvc1N0YXR1cyA9IF9T
eW5jV2luZG93V2l0aENHQWZ0ZXJNb3ZlKF93aW5kb3dSZWYpOwogICAgICAgICBpZiAob3NTdGF0
dXMhPW5vRXJyKSBOU0xvZyhAIkEgQ2FyYm9uIHdpbmRvdydzIGJvdW5kcyBjb3VsZG4ndCBiZSBz
eW5jaHJvbml6ZWQgKCVpKS4iLCAoaW50KW9zU3RhdHVzKTsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DYXJib24vSElWaWV3QWRhcHRlci5tCmluZGV4IGNkMjA4Zjc5MGMw
NWFkOTE0NDUwYTZmOGI2MWZlMTYxZWM5YWY4OTQuLjM1NTM3MDc1MmRlYTA2Nzk1YjM1OGU5ZGI4
MTc4ZmJhMWNkOTcwM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJv
bi9ISVZpZXdBZGFwdGVyLm0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJ
Vmlld0FkYXB0ZXIubQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUs
IDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zMCw4ICszMCw4IEBACiAKICNpbXBvcnQgIkhJVmlld0FkYXB0
ZXIuaCIKIAotI2ltcG9ydCAiUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5oIgogI2ltcG9ydCAiV2Vi
TlNPYmplY3RFeHRyYXMuaCIKKyNpbXBvcnQgPHBhbC9zcGkvbWFjL1F1aWNrRHJhd1NQSS5oPgog
I2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KIAogc3RhdGljIHZvaWQgU2V0Vmlld05lZWRzRGlz
cGxheShISVZpZXdSZWYgaW5WaWV3LCBSZ25IYW5kbGUgaW5SZWdpb24sIEJvb2xlYW4gaW5OZWVk
c0Rpc3BsYXkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJ
V2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0K
aW5kZXggMGFlMDE0NzAyZmQzOTFjY2U1ODI2YTRhMDFhMDhmZmYyYzA0YmU2Yy4uMzQ1ODVjMjUy
YzNiMThjYWNkNmUwN2FkNWU5NDQ4Nzc5ZDhiZTQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2FyYm9uL0hJV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DYXJib24vSElXZWJWaWV3Lm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwxMCArMzIsMTEgQEAKIAogI2ltcG9ydCAiQ2Fy
Ym9uV2luZG93QWRhcHRlci5oIgogI2ltcG9ydCAiSElWaWV3QWRhcHRlci5oIgotI2ltcG9ydCAi
UXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5oIgogI2ltcG9ydCAiV2ViSFRNTFZpZXdJbnRlcm5hbC5o
IgogI2ltcG9ydCAiV2ViS2l0LmgiCiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4K
KyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TRXZlbnRTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFj
L1F1aWNrRHJhd1NQSS5oPgogI2ltcG9ydCA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+CiAKIEBp
bnRlcmZhY2UgTlNXaW5kb3cgKEFwcEtpdFNlY3JldHNISVdlYlZpZXdLbm93cykKQEAgLTMwNiw5
ICszMDcsMTIgQEAgRHJhdyggSElXZWJWaWV3KiBpblZpZXcsIFJnbkhhbmRsZSBsaW1pdFJnbiwg
Q0dDb250ZXh0UmVmIGluQ29udGV4dCApCiAgICAgICAgIEdyYWZQdHIgcG9ydDsKICAgICAgICAg
UmVjdCBwb3J0UmVjdDsKIAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAg
ICAgICBHZXRQb3J0KCAmcG9ydCApOwogICAgICAgICBHZXRQb3J0Qm91bmRzKCBwb3J0LCAmcG9y
dFJlY3QgKTsKICAgICAgICAgQ3JlYXRlQ0dDb250ZXh0Rm9yUG9ydCggcG9ydCwgJmluQ29udGV4
dCApOworI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICAgICAgICAgU3luY0NHQ29udGV4
dE9yaWdpbldpdGhQb3J0KCBpbkNvbnRleHQsIHBvcnQgKTsKICAgICAgICAgQ0dDb250ZXh0VHJh
bnNsYXRlQ1RNKCBpbkNvbnRleHQsIDAsIChwb3J0UmVjdC5ib3R0b20gLSBwb3J0UmVjdC50b3Ap
ICk7CiAgICAgICAgIENHQ29udGV4dFNjYWxlQ1RNKCBpbkNvbnRleHQsIDEsIC0xICk7CkBAIC00
MzYsNiArNDQwLDY0IEBAIEdldFdpbmRvd1JlZiggSElXZWJWaWV3KiBpblZpZXcgKQogICAgICAg
IHJldHVybiBHZXRDb250cm9sT3duZXIoIGluVmlldy0+ZlZpZXdSZWYgKTsKIH0KIAorc3RhdGlj
IE5TRXZlbnQgKgorQ3JlYXRlTlNFdmVudEFkb3B0aW5nQ0dFdmVudCggQ0dFdmVudFJlZiBjZ0V2
ZW50LCBFdmVudFJlZiBldmVudFJlZiApCit7CisgICAgTlNFdmVudCAqcmVzdWx0ID0gW1tOU0V2
ZW50IGFsbG9jXSBfaW5pdFdpdGhDR0V2ZW50OmNnRXZlbnQgZXZlbnRSZWY6ZXZlbnRSZWZdOwor
ICAgIENGUmVsZWFzZShjZ0V2ZW50KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMg
Qm9vbGVhbgorQ29weUV2ZW50Q0dFdmVudCggRXZlbnRSZWYgZXZlbnQsIENHRXZlbnRSZWYqIGNn
RXZlbnQgKQoreworICAgIGlmICgoKmNnRXZlbnQgPSBDb3B5RXZlbnRDR0V2ZW50KGV2ZW50KSkp
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIAorICAgIC8vIFRoaXMgZXZlbnQgbWlnaHQgbm90
IGhhdmUgYmVlbiBjcmVhdGVkIGRpcmVjdGx5IGZyb20gYSBDR1MgZXZlbnQsIGFuZCBtaWdodCBu
b3QKKyAgICAvLyBoYXZlIGEgQ0dFdmVudFJlZiBhc3NvY2lhdGVkIHdpdGggaXQuIEluIHRoYXQg
Y2FzZSwgdHJ5IHVzaW5nIHRoZSBldmVudCBtb3N0CisgICAgLy8gcmVjZW50bHkgZGlzcGF0Y2hl
ZCBieSB0aGUgZXZlbnQgZGlzcGF0Y2hlciwgd2hpY2ggaXMgbGlrZWx5IHRvIGJlIHRoZSBvcmln
aW5hbAorICAgIC8vIHVzZXItaW5wdXQgZXZlbnQgY29udGFpbmluZyBhIENHRXZlbnRSZWYuCisg
ICAgZXZlbnQgPSBHZXRDdXJyZW50RXZlbnQoKTsKKyAgICBpZiAoZXZlbnQgJiYgKCpjZ0V2ZW50
ID0gQ29weUV2ZW50Q0dFdmVudChldmVudCkpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBOU0V2ZW50ICoKK0NyZWF0ZU5TRXZlbnRXaXRoQ2Fy
Ym9uQ2xpY2tFdmVudCggRXZlbnRSZWYgaW5FdmVudCwgV2luZG93UmVmIHdpbmRvd1JlZiApCit7
CisgICAgRXZlbnRSZWYgbmV3RXZlbnQ7CisgICAgUG9pbnQgd2hlcmU7CisgICAgT1NTdGF0dXMg
ZXJyOworICAgIFVJbnQzMiBtb2RpZmllcnM7CisgICAgUmVjdCB3aW5kUmVjdDsKKyAgICAKKyAg
ICBDR0V2ZW50UmVmIGNnRXZlbnQgPSBOVUxMOworICAgIGlmICghQ29weUV2ZW50Q0dFdmVudChp
bkV2ZW50LCAmY2dFdmVudCkpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgCisgICAgLy8gV2Ug
bmVlZCB0byBtYWtlIHRoZSBldmVudCBiZSBhIGtFdmVudE1vdXNlRG93biBldmVudCwgb3IgdGhl
IHdlYmtpdCBtaWdodCB0cmlwIHVwIHdoZW4KKyAgICAvLyB3ZSBjbGljayBvbiBhIE5ldHNjYXBl
IHBsdWdpbi4gSXQgY2FsbHMgQ29udmVydEV2ZW50UmVmVG9FdmVudFJlY29yZCwgYXNzdW1pbmcK
KyAgICAvLyB0aGF0IG1vdXNlRG93biB3YXMgcGFzc2VkIGFuIGV2ZW50IHdpdGggYSByZWFsIG1v
dXNlIGRvd24gZXZlbnRSZWYuIFdlIGp1c3QgbmVlZCBhCisgICAgLy8gbWluaW1hbCBvbmUgaGVy
ZS4KKyAgICAKKyAgICBlcnIgPSBDcmVhdGVFdmVudChOVUxMLCBrRXZlbnRDbGFzc01vdXNlLCBr
RXZlbnRNb3VzZURvd24sIEdldEV2ZW50VGltZShpbkV2ZW50KSwgMCwgJm5ld0V2ZW50KTsKKyAg
ICBpZiAoZXJyICE9IG5vRXJyKQorICAgICAgICByZXR1cm4gbmlsOworICAgIAorICAgIEdldEV2
ZW50UGFyYW1ldGVyKGluRXZlbnQsIGtFdmVudFBhcmFtV2luZG93TW91c2VMb2NhdGlvbiwgdHlw
ZVFEUG9pbnQsIE5VTEwsIHNpemVvZihQb2ludCksIE5VTEwsICZ3aGVyZSk7CisgICAgR2V0V2lu
ZG93Qm91bmRzKHdpbmRvd1JlZiwga1dpbmRvd1N0cnVjdHVyZVJnbiwgJndpbmRSZWN0KTsKKyAg
ICB3aGVyZS5oICs9IHdpbmRSZWN0LmxlZnQ7CisgICAgd2hlcmUudiArPSB3aW5kUmVjdC50b3A7
CisgICAgCisgICAgR2V0RXZlbnRQYXJhbWV0ZXIoaW5FdmVudCwga0V2ZW50UGFyYW1LZXlNb2Rp
ZmllcnMsIHR5cGVVSW50MzIsIE5VTEwsIHNpemVvZihVSW50MzIpLCBOVUxMLCAmbW9kaWZpZXJz
KTsKKyAgICBTZXRFdmVudFBhcmFtZXRlcihuZXdFdmVudCwga0V2ZW50UGFyYW1Nb3VzZUxvY2F0
aW9uLCB0eXBlUURQb2ludCwgc2l6ZW9mKFBvaW50KSwgJndoZXJlKTsKKyAgICBTZXRFdmVudFBh
cmFtZXRlcihuZXdFdmVudCwga0V2ZW50UGFyYW1LZXlNb2RpZmllcnMsIHR5cGVVSW50MzIsIHNp
emVvZihVSW50MzIpLCAmbW9kaWZpZXJzKTsKKyAgICAKKyAgICByZXR1cm4gQ3JlYXRlTlNFdmVu
dEFkb3B0aW5nQ0dFdmVudChjZ0V2ZW50LCBuZXdFdmVudCk7Cit9CisKIC8vLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogLy8gQ2xpY2sKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAt
NDQzLDcgKzUwNSw3IEBAIEdldFdpbmRvd1JlZiggSElXZWJWaWV3KiBpblZpZXcgKQogc3RhdGlj
IE9TU3RhdHVzCiBDbGljayhISVdlYlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCkKIHsK
LSAgICBOU0V2ZW50ICpraXRFdmVudCA9IFdLQ3JlYXRlTlNFdmVudFdpdGhDYXJib25DbGlja0V2
ZW50KGluRXZlbnQsIEdldFdpbmRvd1JlZihpblZpZXcpKTsKKyAgICBOU0V2ZW50ICpraXRFdmVu
dCA9IENyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uQ2xpY2tFdmVudChpbkV2ZW50LCBHZXRXaW5kb3dS
ZWYoaW5WaWV3KSk7CiAKICAgICBpZiAoIWluVmlldy0+ZklzQ29tcG9zaXRlZCkKICAgICAgICAg
U3RhcnRVcGRhdGVPYnNlcnZlcihpblZpZXcpOwpAQCAtNDU4LDYgKzUyMCwxNiBAQCBDbGljayhI
SVdlYlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCkKICAgICByZXR1cm4gbm9FcnI7CiB9
CiAKK3N0YXRpYyBOU0V2ZW50ICoKK0NyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZlbnQoIEV2ZW50
UmVmIGluRXZlbnQgKQoreworICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgZXZlbnRXaXRo
RXZlbnRSZWY6aW5FdmVudF07CisgICAgaWYgKCFldmVudCkKKyAgICAgICAgZXZlbnQgPSBbTlNF
dmVudCBldmVudFdpdGhFdmVudFJlZjpHZXRDdXJyZW50RXZlbnQoKV07CisKKyAgICByZXR1cm4g
W2V2ZW50IHJldGFpbl07Cit9CisKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gTW91
c2VVcAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00NjUsMTUgKzUzNywzMiBAQCBD
bGljayhISVdlYlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCkKIHN0YXRpYyBPU1N0YXR1
cwogTW91c2VVcCggSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQgKQogewotCU5T
RXZlbnQqIGtpdEV2ZW50ID0gV0tDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkV2ZW50KGluRXZlbnQp
OworICAgIE5TRXZlbnQqIGtpdEV2ZW50ID0gQ3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVudChp
bkV2ZW50KTsKIAogICAgIFtpblZpZXctPmZLaXRXaW5kb3cgc2VuZEV2ZW50OmtpdEV2ZW50XTsK
LQkKKwogICAgIFtraXRFdmVudCByZWxlYXNlXTsKLSAgICAKKwogCXJldHVybiBub0VycjsKIH0K
IAorc3RhdGljIE5TRXZlbnQgKgorQ3JlYXRlTlNFdmVudFdpdGhDYXJib25Nb3VzZU1vdmVFdmVu
dCggRXZlbnRSZWYgaW5FdmVudCwgTlNXaW5kb3cgKndpbmRvdyApCit7CisgICAgTlNFdmVudCog
a2l0RXZlbnQgPSBbTlNFdmVudCBldmVudFdpdGhFdmVudFJlZjppbkV2ZW50XTsKKworICAgIC8v
IEZJWE1FOiBXb3JrcyBhcm91bmQgYnVnIDM1ODU2NDQuIENhbiByZW1vdmUgaXQgb25jZSB0aGF0
IGJ1ZyBpcyBmaXhlZC4KKyAgICAvLyBXZSBwcmVmbGlnaHQgaGVyZSBhbmQgZG9uJ3QgZG8gYW55
IHdvcmsgd2hlbiB0aGUgd2luZG93IGlzIGFscmVhZHkgY29ycmVjdAorICAgIC8vIGJlY2F1c2Ug
X2V2ZW50UmVsYXRpdmVUb1dpbmRvdyB3aWxsIG1hbGZ1bmN0aW9uIGlmIHRoZSBldmVudCdzIHdp
bmRvdyBtZXRob2QKKyAgICAvLyBoYXMgYmVlbiBoaWphY2tlZCBieSB0aGUgYnVnIHdvcmthcm91
bmQgdXNlZCBieSBDb250cmlidXRlLiBJdCdzIGZpbmUgdG8ganVzdAorICAgIC8vIGxlYXZlIHRo
ZSBldmVudCBhbG9uZSBpZiB0aGUgd2luZG93IGlzIGFscmVhZHkgY29ycmVjdC4KKworICAgIGlm
IChba2l0RXZlbnQgd2luZG93XSAhPSB3aW5kb3cpCisgICAgICAgIGtpdEV2ZW50ID0gW2tpdEV2
ZW50IF9ldmVudFJlbGF0aXZlVG9XaW5kb3c6d2luZG93XTsKKworICAgIHJldHVybiBba2l0RXZl
bnQgcmV0YWluXTsKK30KKwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBNb3VzZU1v
dmVkCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ4MSw3ICs1NzAsNyBAQCBNb3Vz
ZVVwKCBISVdlYlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCApCiBzdGF0aWMgT1NTdGF0
dXMKIE1vdXNlTW92ZWQoIEhJV2ViVmlldyogaW5WaWV3LCBFdmVudFJlZiBpbkV2ZW50ICkKIHsK
LSAgICBOU0V2ZW50ICpraXRFdmVudCA9IFdLQ3JlYXRlTlNFdmVudFdpdGhDYXJib25Nb3VzZU1v
dmVFdmVudChpbkV2ZW50LCBpblZpZXctPmZLaXRXaW5kb3cpOworICAgIE5TRXZlbnQgKmtpdEV2
ZW50ID0gQ3JlYXRlTlNFdmVudFdpdGhDYXJib25Nb3VzZU1vdmVFdmVudChpbkV2ZW50LCBpblZp
ZXctPmZLaXRXaW5kb3cpOwogICAgIFtpblZpZXctPmZLaXRXaW5kb3cgc2VuZEV2ZW50OmtpdEV2
ZW50XTsKIAlba2l0RXZlbnQgcmVsZWFzZV07CiAKQEAgLTQ5NSwxMiArNTg0LDEyIEBAIE1vdXNl
TW92ZWQoIEhJV2ViVmlldyogaW5WaWV3LCBFdmVudFJlZiBpbkV2ZW50ICkKIHN0YXRpYyBPU1N0
YXR1cwogTW91c2VEcmFnZ2VkKCBISVdlYlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCAp
CiB7Ci0JTlNFdmVudCoga2l0RXZlbnQgPSBXS0NyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZlbnQo
aW5FdmVudCk7CisgICAgTlNFdmVudCoga2l0RXZlbnQgPSBDcmVhdGVOU0V2ZW50V2l0aENhcmJv
bkV2ZW50KGluRXZlbnQpOwogCiAgICAgW2luVmlldy0+ZktpdFdpbmRvdyBzZW5kRXZlbnQ6a2l0
RXZlbnRdOwogCi0JW2tpdEV2ZW50IHJlbGVhc2VdOwotCQorICAgIFtraXRFdmVudCByZWxlYXNl
XTsKKwogCXJldHVybiBub0VycjsKIH0KIApAQCAtNTExLDEyICs2MDAsMTIgQEAgTW91c2VEcmFn
Z2VkKCBISVdlYlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCApCiBzdGF0aWMgT1NTdGF0
dXMKIE1vdXNlV2hlZWxNb3ZlZCggSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQg
KQogewotCU5TRXZlbnQqIGtpdEV2ZW50ID0gV0tDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkV2ZW50
KGluRXZlbnQpOworICAgIE5TRXZlbnQqIGtpdEV2ZW50ID0gQ3JlYXRlTlNFdmVudFdpdGhDYXJi
b25FdmVudChpbkV2ZW50KTsKIAogICAgIFtpblZpZXctPmZLaXRXaW5kb3cgc2VuZEV2ZW50Omtp
dEV2ZW50XTsKIAotCVtraXRFdmVudCByZWxlYXNlXTsKLQkKKyAgICBba2l0RXZlbnQgcmVsZWFz
ZV07CisKIAlyZXR1cm4gbm9FcnI7CiB9CiAKQEAgLTY4NCw3ICs3NzMsNyBAQCBXaW5kb3dIYW5k
bGVyKCBFdmVudEhhbmRsZXJDYWxsUmVmIGluQ2FsbFJlZiwgRXZlbnRSZWYgaW5FdmVudCwgdm9p
ZCogaW5Vc2VyRGF0YQogCQkJCQlOU1Jlc3BvbmRlciogcmVzcG9uZGVyID0gW2tpdFdpbmRvdyBm
aXJzdFJlc3BvbmRlcl07CiAJCQkJCWlmICggcmVzcG9uZGVyICE9IGtpdFdpbmRvdyApCiAJCQkJ
CXsKLSAgICAgICAgICAgICAgICAgICAgICAgIGtpdEV2ZW50ID0gV0tDcmVhdGVOU0V2ZW50V2l0
aENhcmJvbkV2ZW50KGluRXZlbnQpOworICAgICAgICAgICAgICAgICAgICAgICAga2l0RXZlbnQg
PSBDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkV2ZW50KGluRXZlbnQpOwogCQkJCQkJCiAJCQkJCQlb
a2l0V2luZG93IHNlbmRFdmVudDpraXRFdmVudF07CiAJCQkJCQlba2l0RXZlbnQgcmVsZWFzZV07
CkBAIC0xMjY1LDcgKzEzNTQsNyBAQCBISVdlYlZpZXdFdmVudEhhbmRsZXIoCiAKIAkJY2FzZSBr
RXZlbnRDbGFzc0tleWJvYXJkOgogCQkJewotCQkJCU5TRXZlbnQqIGtpdEV2ZW50ID0gV0tDcmVh
dGVOU0V2ZW50V2l0aENhcmJvbkV2ZW50KGluRXZlbnQpOworICAgICAgICAgICAgICAgIE5TRXZl
bnQqIGtpdEV2ZW50ID0gQ3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVudChpbkV2ZW50KTsKIAkJ
CQlbdmlldy0+ZktpdFdpbmRvdyBzZW5kU3VwZXJFdmVudDpraXRFdmVudF07CiAJCQkJW2tpdEV2
ZW50IHJlbGVhc2VdOwogCQkJCXJlc3VsdCA9IG5vRXJyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvTWlzYy9RdWlja0RyYXdDb21wYXRpYmlsaXR5LmggYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9NaXNjL1F1aWNrRHJhd0NvbXBhdGliaWxpdHkuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggY2ZmNTUzZmMwYjAzZDMwNTc4MzA4ZGE0ZTNlZTNlMmJkNGU4OGJj
My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9NaXNjL1F1aWNrRHJhd0NvbXBhdGliaWxpdHkuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDkxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFF1aWNrRHJhd0NvbXBh
dGliaWxpdHlfaAotI2RlZmluZSBRdWlja0RyYXdDb21wYXRpYmlsaXR5X2gKLQotI2lmbmRlZiBf
X0xQNjRfXwotCi0jaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+Ci0KLSNpZiBkZWZpbmVkKFFEX0hF
QURFUlNfQVJFX1BSSVZBVEUpICYmIFFEX0hFQURFUlNfQVJFX1BSSVZBVEUKLQotI2lmZGVmIF9f
Y3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi0jZGVmaW5lIE1hY1NldFJlY3QgU2V0
UmVjdAotI2RlZmluZSBNYWNTZXRSZWN0UmduIFNldFJlY3RSZ24KLSNkZWZpbmUgTWFjVW5pb25S
Z24gVW5pb25SZ24KLQotZXh0ZXJuIEJvb2xlYW4gRW1wdHlSZ24oUmduSGFuZGxlKTsKLWV4dGVy
biBPU1N0YXR1cyBDcmVhdGVDR0NvbnRleHRGb3JQb3J0KENHcmFmUHRyLCBDR0NvbnRleHRSZWYq
KTsKLWV4dGVybiBPU1N0YXR1cyBTeW5jQ0dDb250ZXh0T3JpZ2luV2l0aFBvcnQoQ0dDb250ZXh0
UmVmLCBDR3JhZlB0cik7Ci1leHRlcm4gUGl4TWFwSGFuZGxlIEdldFBvcnRQaXhNYXAoQ0dyYWZQ
dHIpOwotZXh0ZXJuIFFERXJyIE5ld0dXb3JsZEZyb21QdHIoR1dvcmxkUHRyKiwgVUludDMyLCBj
b25zdCBSZWN0KiwgQ1RhYkhhbmRsZSwgR0RIYW5kbGUsIEdXb3JsZEZsYWdzLCBQdHIsIFNJbnQz
Mik7Ci1leHRlcm4gUmVjdCogR2V0UG9ydEJvdW5kcyhDR3JhZlB0ciwgUmVjdCopOwotZXh0ZXJu
IFJlY3QqIEdldFJlZ2lvbkJvdW5kcyhSZ25IYW5kbGUsIFJlY3QqKTsKLWV4dGVybiBSZ25IYW5k
bGUgR2V0UG9ydENsaXBSZWdpb24oQ0dyYWZQdHIsIFJnbkhhbmRsZSk7Ci1leHRlcm4gUmduSGFu
ZGxlIEdldFBvcnRWaXNpYmxlUmVnaW9uKENHcmFmUHRyLCBSZ25IYW5kbGUpOwotZXh0ZXJuIFJn
bkhhbmRsZSBOZXdSZ24oKTsKLWV4dGVybiB2b2lkIEJhY2tDb2xvcihsb25nKTsKLWV4dGVybiB2
b2lkIERpc3Bvc2VHV29ybGQoR1dvcmxkUHRyKTsKLWV4dGVybiB2b2lkIERpc3Bvc2VSZ24oUmdu
SGFuZGxlKTsKLWV4dGVybiB2b2lkIEZvcmVDb2xvcihsb25nKTsKLWV4dGVybiB2b2lkIEdldEdX
b3JsZChDR3JhZlB0ciosIEdESGFuZGxlKik7Ci1leHRlcm4gdm9pZCBHZXRQb3J0KEdyYWZQdHIq
KTsKLWV4dGVybiB2b2lkIEdsb2JhbFRvTG9jYWwoUG9pbnQqKTsKLWV4dGVybiB2b2lkIE1hY1Nl
dFJlY3QoUmVjdCosIHNob3J0LCBzaG9ydCwgc2hvcnQsIHNob3J0KTsKLWV4dGVybiB2b2lkIE1h
Y1NldFJlY3RSZ24oUmduSGFuZGxlLCBzaG9ydCwgc2hvcnQsIHNob3J0LCBzaG9ydCk7Ci1leHRl
cm4gdm9pZCBNYWNVbmlvblJnbihSZ25IYW5kbGUsIFJnbkhhbmRsZSwgUmduSGFuZGxlKTsKLWV4
dGVybiB2b2lkIE1vdmVQb3J0VG8oc2hvcnQsIHNob3J0KTsKLWV4dGVybiB2b2lkIE9mZnNldFJl
Y3QoUmVjdCosIHNob3J0LCBzaG9ydCk7Ci1leHRlcm4gdm9pZCBPZmZzZXRSZ24oUmduSGFuZGxl
LCBzaG9ydCwgc2hvcnQpOwotZXh0ZXJuIHZvaWQgUGFpbnRSZWN0KGNvbnN0IFJlY3QqKTsKLWV4
dGVybiB2b2lkIFBlbk5vcm1hbCgpOwotZXh0ZXJuIHZvaWQgUG9ydFNpemUoc2hvcnQsIHNob3J0
KTsKLWV4dGVybiB2b2lkIFJlY3RSZ24oUmduSGFuZGxlLCBjb25zdCBSZWN0Kik7Ci1leHRlcm4g
dm9pZCBTZWN0UmduKFJnbkhhbmRsZSwgUmduSGFuZGxlLCBSZ25IYW5kbGUpOwotZXh0ZXJuIHZv
aWQgU2V0R1dvcmxkKENHcmFmUHRyLCBHREhhbmRsZSk7Ci1leHRlcm4gdm9pZCBTZXRPcmlnaW4o
c2hvcnQsIHNob3J0KTsKLWV4dGVybiB2b2lkIFNldFBvcnQoR3JhZlB0cik7Ci1leHRlcm4gdm9p
ZCBTZXRQb3J0Q2xpcFJlZ2lvbihDR3JhZlB0ciwgUmduSGFuZGxlKTsKLWV4dGVybiB2b2lkIFNl
dFBvcnRWaXNpYmxlUmVnaW9uKENHcmFmUHRyLCBSZ25IYW5kbGUpOwotCi1lbnVtIHsKLSAgICBi
bGFja0NvbG9yID0gMzMsCi0gICAgd2hpdGVDb2xvciA9IDMwLAotICAgIGdyZWVuQ29sb3IgPSAz
NDEsCi19OwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLy8gZGVm
aW5lZChRRF9IRUFERVJTX0FSRV9QUklWQVRFKSAmJiBRRF9IRUFERVJTX0FSRV9QUklWQVRFCi0K
LSNlbmRpZiAvLyBfX0xQNjRfXwotCi0jZW5kaWYgLy8gUXVpY2tEcmF3Q29tcGF0aWJpbGl0eV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBl
UGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbi5tbQppbmRleCA2ODU2N2Iz
Mzk0ZGQ4MWFlOWY1MTk3NDE4OTk0ZGJkMjhmM2ViMjdiLi4zZmNiNDY3ZmQ3ODc4NDMxYTE0ZmU3
OTk3ODQ3N2MyNTg5NWZhZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Q
bHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJD
YXJib24ubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE3IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzAsNiArMzAsOCBAQAogI2ltcG9ydCAiV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lmgi
CiAjaW1wb3J0ICJXZWJLaXRMb2dnaW5nLmgiCiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UuaCIKKyNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oPgorI2ltcG9ydCA8cGFs
L3NwaS9tYWMvTlNFdmVudFNQSS5oPgogCiAvLyBTZW5kIG51bGwgZXZlbnRzIDUwIHRpbWVzIGEg
c2Vjb25kIHdoZW4gYWN0aXZlLCBzbyBwbHVnLWlucyBsaWtlIEZsYXNoIGdldCBoaWdoIGZyYW1l
IHJhdGVzLgogI2RlZmluZSBOdWxsRXZlbnRJbnRlcnZhbEFjdGl2ZSAgICAgICAgIDAuMDIKQEAg
LTg1LDcgKzg3LDcgQEAgc3RhdGljIEV2ZW50TW9kaWZpZXJzIG1vZGlmaWVyc0ZvckV2ZW50KE5T
RXZlbnQgKmV2ZW50KQogCiBzdGF0aWMgdm9pZCBnZXRDYXJib25FdmVudChFdmVudFJlY29yZCAq
Y2FyYm9uRXZlbnQsIE5TRXZlbnQgKmNvY29hRXZlbnQpCiB7Ci0gICAgaWYgKFdLQ29udmVydE5T
RXZlbnRUb0NhcmJvbkV2ZW50KGNhcmJvbkV2ZW50LCBjb2NvYUV2ZW50KSkKKyAgICBpZiAoW2Nv
Y29hRXZlbnQgX2V2ZW50UmVmXSAmJiBDb252ZXJ0RXZlbnRSZWZUb0V2ZW50UmVjb3JkKChFdmVu
dFJlZilbY29jb2FFdmVudCBfZXZlbnRSZWZdLCBjYXJib25FdmVudCkpCiAgICAgICAgIHJldHVy
bjsKICAgICAKICAgICBOU1BvaW50IHdoZXJlID0gW1tjb2NvYUV2ZW50IHdpbmRvd10gY29udmVy
dEJhc2VUb1NjcmVlbjpbY29jb2FFdmVudCBsb2NhdGlvbkluV2luZG93XV07CkBAIC0yMTAsNyAr
MjEyLDcgQEAgdm9pZCBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbjo6bW91c2VN
b3ZlZChOU0V2ZW50KiB0aGVFdmVudCkKIHZvaWQgV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDYXJib246OmtleURvd24oTlNFdmVudCAqdGhlRXZlbnQpCiB7CiAgICAgbV9zdXNwZW5kS2V5
VXBFdmVudHMgPSB0cnVlOwotICAgIFdLU2VuZEtleUV2ZW50VG9UU00odGhlRXZlbnQpOworICAg
IFRTTVByb2Nlc3NSYXdLZXlFdmVudCgoRXZlbnRSZWYpW3RoZUV2ZW50IF9ldmVudFJlZl0pOwog
fQogCiB2b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjpzeW50aGV0aWNL
ZXlEb3duV2l0aENvbW1hbmRNb2RpZmllcihpbnQga2V5Q29kZSwgY2hhciBjaGFyYWN0ZXIpCkBA
IC0yMzgsNyArMjQwLDcgQEAgc3RhdGljIFVJbnQzMiBrZXlNZXNzYWdlRm9yRXZlbnQoTlNFdmVu
dCAqZXZlbnQpCiAgICAgCiB2b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9u
OjprZXlVcChOU0V2ZW50KiB0aGVFdmVudCkKIHsKLSAgICBXS1NlbmRLZXlFdmVudFRvVFNNKHRo
ZUV2ZW50KTsKKyAgICBUU01Qcm9jZXNzUmF3S2V5RXZlbnQoKEV2ZW50UmVmKVt0aGVFdmVudCBf
ZXZlbnRSZWZdKTsKICAgICAKICAgICAvLyBUU00gd29uJ3Qgc2VuZCBrZXlVcCBldmVudHMgc28g
d2UgaGF2ZSB0byBzZW5kIHRoZW0gb3Vyc2VsdmVzLgogICAgIC8vIE9ubHkgc2VuZCBrZXlVcCBl
dmVudHMgYWZ0ZXIgd2UgcmVjZWl2ZSB0aGUgVFNNIGNhbGxiYWNrIGJlY2F1c2UgdGhpcyBpcyB3
aGF0IHBsdWctaW4gZXhwZWN0IGZyb20gT1MgOS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhh
bmRsZXJDb2NvYS5tbQppbmRleCBkZTIwMTg5YTM3ZGMwOTI4NzgyZTg2MWIyYTY5YTAzYzc2MDhl
MTc4Li5mODAwMzRmMWVkNzM2OTdiNjExMGZiZmFlYWU5N2YwMjM5ZDQwOTFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRI
YW5kbGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJO
ZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDgtMjAxNyBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5LDggQEAKIAogI2ltcG9y
dCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0ICJXZWJOZXRzY2FwZVBsdWdpblZp
ZXcuaCIKKyNpbXBvcnQgPHBhbC9zcGkvbWFjL0hJVG9vbGJveFNQSS5oPgorI2ltcG9ydCA8cGFs
L3NwaS9tYWMvTlNFdmVudFNQSS5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgogCiBXZWJOZXRz
Y2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hOjpXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxl
ckNvY29hKFdlYk5ldHNjYXBlUGx1Z2luVmlldyogcGx1Z2luVmlldykKQEAgLTEyOCw3ICsxMzAs
NyBAQCB2b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6OmtleURvd24oTlNF
dmVudCAqZXZlbnQpCiAjaWZuZGVmIF9fTFA2NF9fCiAgICAgLy8gSWYgdGhlIHBsdWctaW4gZGlk
IG5vdCBoYW5kbGUgdGhlIGV2ZW50LCBwYXNzIGl0IG9uIHRvIHRoZSBJbnB1dCBNYW5hZ2VyLgog
ICAgIGlmIChyZXR2YWwpCi0gICAgICAgIFdLU2VuZEtleUV2ZW50VG9UU00oZXZlbnQpOworICAg
ICAgICBUU01Qcm9jZXNzUmF3S2V5RXZlbnQoKEV2ZW50UmVmKVtldmVudCBfZXZlbnRSZWZdKTsK
ICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHJldHZhbCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0K
aW5kZXggZjk2MWVmZTFlMjhjNDhiYjY1NGM1MWYzNmNhMDczMjgzY2M0NTdhMS4uYzY4MGZmN2Vl
MzFjOTNiOGZiNDkyMjk3ZTRlN2FkOTE0MWE0ZGRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW1wb3J0ICJXZWJOZXRzY2FwZVBsdWdpblZpZXcuaCIK
IAotI2ltcG9ydCAiUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5oIgogI2ltcG9ydCAiV2ViRGF0YVNv
dXJjZUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJEZWZhdWx0VUlEZWxlZ2F0ZS5oIgogI2ltcG9y
dCAiV2ViRnJhbWVJbnRlcm5hbC5oIgpAQCAtNzUsNiArNzQsNyBAQAogI2ltcG9ydCA8V2ViS2l0
TGVnYWN5L0RPTVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9XZWJVSURlbGVnYXRl
Lmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL1F1aWNr
RHJhd1NQSS5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1w
b3J0IDxydW50aW1lL0pTTG9jay5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTkx
NSw3ICs5MTUsNyBAQCAtKHZvaWQpdGVsbFF1aWNrVGltZVRvQ2hpbGwKICAgICBDR3JhZlB0ciBw
b3J0ID0gR2V0V2luZG93UG9ydCh3aW5kb3dSZWYpOwogICAgIDo6UmVjdCBib3VuZHM7CiAgICAg
R2V0UG9ydEJvdW5kcyhwb3J0LCAmYm91bmRzKTsKLSAgICBXS0NhbGxEcmF3aW5nTm90aWZpY2F0
aW9uKHBvcnQsICZib3VuZHMpOworICAgIENhbGxEcmF3aW5nTm90aWZpY2F0aW9ucyhwb3J0LCAm
Ym91bmRzLCBrQml0c1Byb2MpOwogI2VuZGlmIC8qIE5QX05PX1FVSUNLRFJBVyAqLwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319350</attachid>
            <date>2017-08-30 00:40:58 -0700</date>
            <delta_ts>2017-08-30 01:59:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176087-20170830004057.patch</filename>
            <type>text/plain</type>
            <size>57159</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCAwMTRhMTll
YWU0ZmNhYTAzYzk2NDYwYmRjMjliNDYxYjZhYjUwYTE2Li5kYjdmODRiZGYyYjFjZGIwZmNhMTZm
ODRiNGM4YWE0MzkxYjQ1YTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAog
MjAxNy0wOC0yOSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKKyAgICAgICAgW01h
Y10gVXBzdHJlYW0gQ2FyYm9uLXJlbGF0ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDg3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFBB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvRm91
bmRhdGlvblNQSS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMv
TlNXaW5kb3dTUEkuaC4KKyAgICAgICAgKiBwYWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TV2luZG93U1BJLmguCisg
ICAgICAgICogcGFsL3NwaS9tYWMvTlNFdmVudFNQSS5oOgorICAgICAgICAqIHBhbC9zcGkvbWFj
L05TV2luZG93U1BJLmg6CisgICAgICAgICogcGFsL3NwaS9tYWMvUXVpY2tEcmF3U1BJLmg6IEFk
ZGVkLgorCisyMDE3LTA4LTI5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKwogICAg
ICAgICBbWGNvZGVdIEZpeCB1cCBmaWxlIGFuZCBncm91cCBwYXRocyBpbiBQQUwueGNvZGVwcm9q
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwNzMK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAyZDMyNWU1OTU3MmI4ZTE5OTNiN2JmMTA1NDE1ZmY2ZmY4YmQ0MjVlLi5i
NmY2OGQ5ZWEyMjc5Zjk4YWQyOWVkMTJmNjY2MzM2MGVjMjgwMTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDE3LTA4LTI5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbTWFjXSBVcHN0cmVhbSBDYXJib24tcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzYwODcKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisg
ICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbToKKyAgICAgICAg
KFdlYktpdDo6Y2dXaW5kb3dJRCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6c2NyaXB0Q29k
ZUZyb21DdXJyZW50S2V5Ym9hcmRJbnB1dFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luOjpzZW5kQ29tcGxleFRleHRJbnB1dCk6CisKIDIwMTctMDgtMjkgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyBsb2dpYyBkb2VzIG5vdCB1bmRlcnN0YW5kIGN1c3RvbSBXZWJzaXRlRGF0YSBzdG9yZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggNTBiNjkyOTIyNzM2ODAwMDliNmFmN2QyNjNmMmNkZWJh
NzUyMGYwYS4uMzUwOWY4NmNjZWFkOTdjNzdmYzE2MmRhMmZjMTBmM2QzNjg4MGI5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wOC0yOSAgQW5keSBFc3RlcyAg
PGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gVXBzdHJlYW0gQ2FyYm9uLXJlbGF0
ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFdlYktpdExlZ2FjeS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCiAyMDE3LTA4LTI5ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRA
c29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBVc2UgZmluZF9wYWNrYWdlIGZvciB6bGliCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNGEzMDkxNzNjOTY5MGVlYzdhNjE0NGZiNTM0
YTI0ZjhiOTk4NDJjZi4uYjgzYWRjYmI2ZjgwNzllZTE5OGU2MjQ4ZTc4OWE3MmJiMzc5YWFlZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ2IEBACiAyMDE3LTA4LTI5
ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBbTWFjXSBVcHN0cmVh
bSBDYXJib24tcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwODcKKworICAgICAg
ICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJv
blV0aWxzLm06CisgICAgICAgIChnZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KToKKyAgICAgICAg
KFdlYkluaXRGb3JDYXJib24pOgorICAgICAgICAoUG9vbENsZWFuZXIpOgorICAgICAgICAqIENh
cmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tOgorICAgICAgICAoK1tDYXJib25XaW5kb3dBZGFw
dGVyIGZyYW1lVmlld0NsYXNzRm9yU3R5bGVNYXNrOl0pOgorICAgICAgICAoLVtDYXJib25XaW5k
b3dBZGFwdGVyIGluaXRXaXRoQ2FyYm9uV2luZG93UmVmOnRha2luZ093bmVyc2hpcDpkaXNhYmxl
T3JkZXJpbmc6Y2FyYm9uOl0pOgorICAgICAgICAoLVtDYXJib25XaW5kb3dBZGFwdGVyIF9vbGRQ
bGFjZVdpbmRvdzpdKToKKyAgICAgICAgKC1bQ2FyYm9uV2luZG93QWRhcHRlciBfd2luZG93TW92
ZWRUb1JlY3Q6XSk6CisgICAgICAgICogQ2FyYm9uL0hJVmlld0FkYXB0ZXIubToKKyAgICAgICAg
KiBDYXJib24vSElXZWJWaWV3Lm1tOgorICAgICAgICAoRHJhdyk6CisgICAgICAgIChDcmVhdGVO
U0V2ZW50QWRvcHRpbmdDR0V2ZW50KToKKyAgICAgICAgKENvcHlFdmVudENHRXZlbnQpOgorICAg
ICAgICAoQ3JlYXRlTlNFdmVudFdpdGhDYXJib25DbGlja0V2ZW50KToKKyAgICAgICAgKENsaWNr
KToKKyAgICAgICAgKENyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZlbnQpOgorICAgICAgICAoTW91
c2VVcCk6CisgICAgICAgIChDcmVhdGVOU0V2ZW50V2l0aENhcmJvbk1vdXNlTW92ZUV2ZW50KToK
KyAgICAgICAgKE1vdXNlTW92ZWQpOgorICAgICAgICAoTW91c2VEcmFnZ2VkKToKKyAgICAgICAg
KE1vdXNlV2hlZWxNb3ZlZCk6CisgICAgICAgIChXaW5kb3dIYW5kbGVyKToKKyAgICAgICAgKEhJ
V2ViVmlld0V2ZW50SGFuZGxlcik6CisgICAgICAgICogTWlzYy9RdWlja0RyYXdDb21wYXRpYmls
aXR5Lmg6IFJlbW92ZWQuCisgICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50
SGFuZGxlckNhcmJvbi5tbToKKyAgICAgICAgKGdldENhcmJvbkV2ZW50KToKKyAgICAgICAgKFdl
Yk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjprZXlEb3duKToKKyAgICAgICAgKFdl
Yk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjprZXlVcCk6CisgICAgICAgICogUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tOgorICAgICAgICAoV2Vi
TmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYTo6a2V5RG93bik6CisgICAgICAgICogUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgtW1dlYk5ldHNjYXBlUGx1
Z2luVmlldyB0ZWxsUXVpY2tUaW1lVG9DaGlsbF0pOgorCisyMDE3LTA4LTI5ICBBbmR5IEVzdGVz
ICA8YWVzdGVzQGFwcGxlLmNvbT4KKwogICAgICAgICBbTWFjXSBVcHN0cmVhbSBXS1NldE1ldGFk
YXRhVVJMKCkgZnJvbSBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjA0NgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWZkZTcwYmFmMDU4NzQz
M2Y0NzBhMzNlZmY4YWVmZjhhYWY1MzVlNi4uZmQzZWJjNmMxYWVjNDYyMzNiMjI3OWFhODNlYjMz
Yjg3NmRhMjEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtOTcsNiArOTcsOSBAQAogCQkxQzA5RDA1MzFFMzFDNDQxMDA3MjVG
MTggLyogQ3J5cHRvRGlnZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQzA5RDA1MjFFMzFDNDQxMDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0LmggKi87
IH07CiAJCTFDMDlEMDU2MUUzMUM0NjUwMDcyNUYxOCAvKiBDcnlwdG9EaWdlc3RDb21tb25Dcnlw
dG8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMw
OUQwNTUxRTMxQzQ2NTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAgKi87
IH07CiAJCTFDMDlEMDU4MUUzMUM1N0UwMDcyNUYxOCAvKiBjb25maWcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMDlEMDU3MUUzMUM1N0UwMDcyNUYx
OCAvKiBjb25maWcuaCAqLzsgfTsKKwkJQTEwMjY1ODcxRjU2NzQ2MTAwQjRDODQ0IC8qIEZvdW5k
YXRpb25TUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMDI2NTg2MUY1Njc0NjEwMEI0Qzg0NCAvKiBGb3VuZGF0aW9uU1BJLmggKi87IH07CisJCUEx
MDI2NTg5MUY1Njc0N0EwMEI0Qzg0NCAvKiBISVRvb2xib3hTUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMDI2NTg4MUY1Njc0N0EwMEI0Qzg0NCAv
KiBISVRvb2xib3hTUEkuaCAqLzsgfTsKKwkJQTEwMjY1OEIxRjU2NzQ4QzAwQjRDODQ0IC8qIFF1
aWNrRHJhd1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTEwMjY1OEExRjU2NzQ4QzAwQjRDODQ0IC8qIFF1aWNrRHJhd1NQSS5oICovOyB9OwogCQlB
MUY1NURDRjFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRjU1RENFMUY1NTI4RUMwMEVEQjc1RiAv
KiBNZXRhZGF0YVNQSS5oICovOyB9OwogCQlBMzBENDEyMTFGMEREMEVBMDBCNzE5NTQgLyogS2ls
bFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEz
MEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oICovOyB9OwogCQlBMzBENDEyMjFG
MEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmdOb25lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxs
UmluZ05vbmUuY3BwICovOyB9OwpAQCAtMjA5LDYgKzIxMiw5IEBACiAJCTFDMDlEMDYzMUUzMUVD
MzEwMDcyNUYxOCAvKiBCYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0
aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDNjdDRUEx
MUUzMkVEQTgwMEY4MEYyRSAvKiBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQueGNjb25maWc7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUM2N0NFQTIxRTMyRUUyNjAwRjgwRjJFIC8qIFZlcnNpb24ueGNj
b25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gVmVyc2lvbi54Y2NvbmZpZzsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTEwMjY1ODYxRjU2NzQ2MTAwQjRDODQ0IC8q
IEZvdW5kYXRpb25TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm91bmRh
dGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTAyNjU4ODFGNTY3NDdB
MDBCNEM4NDQgLyogSElUb29sYm94U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEhJVG9vbGJveFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTAyNjU4
QTFGNTY3NDhDMDBCNEM4NDQgLyogUXVpY2tEcmF3U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFF1aWNrRHJhd1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBMUY1NURDRTFGNTUyOEVDMDBFREI3NUYgLyogTWV0YWRhdGFTUEkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWV0YWRhdGFTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUUx
RjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEtpbGxSaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMEQ0MTFG
MUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZ05vbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gS2lsbFJpbmdOb25lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI4MSw2ICsyODcsNyBAQAogCQkJCTBDMkRBMTIzMUYzQkVCNDkwMERCQzMxNyAv
KiBDRk5TVVJMQ29ubmVjdGlvblNQSS5oICovLAogCQkJCTBDMkRBMTI0MUYzQkVCNDkwMERCQzMx
NyAvKiBDb3JlVGV4dFNQSS5oICovLAogCQkJCTBDMkRBMTI1MUYzQkVCNDkwMERCQzMxNyAvKiBE
YXRhRGV0ZWN0b3JzQ29yZVNQSS5oICovLAorCQkJCUExMDI2NTg2MUY1Njc0NjEwMEI0Qzg0NCAv
KiBGb3VuZGF0aW9uU1BJLmggKi8sCiAJCQkJMEMyREExMjYxRjNCRUI0OTAwREJDMzE3IC8qIElP
UE1MaWJTUEkuaCAqLywKIAkJCQkwQzJEQTEyNzFGM0JFQjQ5MDBEQkMzMTcgLyogSU9QU0xpYlNQ
SS5oICovLAogCQkJCTBDMkRBMTI4MUYzQkVCNDkwMERCQzMxNyAvKiBJT1JldHVyblNQSS5oICov
LApAQCAtMzMxLDYgKzMzOCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwQzc3ODU3MDFGNDUx
MzBGMDBGNEVCQjYgLyogQVZGb3VuZGF0aW9uU1BJLmggKi8sCiAJCQkJMEM3Nzg1NzExRjQ1MTMw
RjAwRjRFQkI2IC8qIERhdGFEZXRlY3RvcnNTUEkuaCAqLywKKwkJCQlBMTAyNjU4ODFGNTY3NDdB
MDBCNEM4NDQgLyogSElUb29sYm94U1BJLmggKi8sCiAJCQkJMEM3Nzg1NzIxRjQ1MTMwRjAwRjRF
QkI2IC8qIExvb2t1cFNQSS5oICovLAogCQkJCTBDNzc4NTczMUY0NTEzMEYwMEY0RUJCNiAvKiBN
ZWRpYVJlbW90ZVNQSS5oICovLAogCQkJCUExRjU1RENFMUY1NTI4RUMwMEVEQjc1RiAvKiBNZXRh
ZGF0YVNQSS5oICovLApAQCAtMzUzLDYgKzM2MSw3IEBACiAJCQkJMEM3Nzg1ODQxRjQ1MTMwRjAw
RjRFQkI2IC8qIE5TV2luZG93U1BJLmggKi8sCiAJCQkJMEM3Nzg1ODUxRjQ1MTMwRjAwRjRFQkI2
IC8qIFBJUFNQSS5oICovLAogCQkJCTBDNzc4NTg2MUY0NTEzMEYwMEY0RUJCNiAvKiBRVEtpdFNQ
SS5oICovLAorCQkJCUExMDI2NThBMUY1Njc0OEMwMEI0Qzg0NCAvKiBRdWlja0RyYXdTUEkuaCAq
LywKIAkJCQkwQzc3ODU4NzFGNDUxMzBGMDBGNEVCQjYgLyogUXVpY2tMb29rTWFjU1BJLmggKi8s
CiAJCQkJMEM3Nzg1ODgxRjQ1MTMwRjAwRjRFQkI2IC8qIFRVQ2FsbFNQSS5oICovLAogCQkJKTsK
QEAgLTQ5OSw3ICs1MDgsOSBAQAogCQkJCTBDNzc4NThBMUY0NTEzMEYwMEY0RUJCNiAvKiBEYXRh
RGV0ZWN0b3JzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxQTFGNDNBNEM3MDAyRUFD
MDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEOUU3MzFF
RUY1QUY2MDBEQkMzMTcgLyogRXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLywKKwkJCQlBMTAy
NjU4NzFGNTY3NDYxMDBCNEM4NDQgLyogRm91bmRhdGlvblNQSS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEM1QUY5MUIxRjQzQTRDNzAwMkVBQzAyIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUExMDI2NTg5MUY1Njc0N0EwMEI0Qzg0NCAvKiBISVRvb2xib3hTUEku
aCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTFGMUYzQkU5RTAwMERCQzMxNyAvKiBJbWFnZUlP
U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0MjFGM0JFQjQ5MDBEQkMzMTcgLyogSU9Q
TUxpYlNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNDMxRjNCRUI0OTAwREJDMzE3IC8q
IElPUFNMaWJTUEkuaCBpbiBIZWFkZXJzICovLApAQCAtNTUxLDYgKzU2Miw3IEBACiAJCQkJMEMy
REExNTYxRjNCRUI0OTAwREJDMzE3IC8qIHB0aHJlYWRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBDNzc4NTlGMUY0NTEzMEYwMEY0RUJCNiAvKiBRVEtpdFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEMyREExNTcxRjNCRUI0OTAwREJDMzE3IC8qIFF1YXJ0ekNvcmVTUEkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUExMDI2NThCMUY1Njc0OEMwMEI0Qzg0NCAvKiBRdWlja0RyYXdTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBDNzc4NUEwMUY0NTEzMEYwMEY0RUJCNiAvKiBRdWlja0xvb2tNYWNT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTIwMUY0M0E0QzcwMDJFQUMwMiAvKiBRdWlj
a0xvb2tTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU4MUYzQkVCNDkwMERCQzMxNyAv
KiBTZXJ2ZXJzU1BJLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NvY29hL0ZvdW5kYXRpb25TUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NvY29hL0ZvdW5kYXRpb25TUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODQxNzVkMTJiOWUzYzdi
ZGYyNmQyZWJiNTMwMzY4ZWE3N2VlZTBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY29jb2EvRm91bmRhdGlvblNQSS5oCkBAIC0wLDAgKzEsNDEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisK
KyNpbmNsdWRlIDxGb3VuZGF0aW9uL05TUHJpdmF0ZURlY2xzLmg+CisKKyNlbmRpZgorCit0eXBl
ZGVmIHZvaWQqIE5TQXV0b3JlbGVhc2VQb29sTWFyazsKKworV1RGX0VYVEVSTl9DX0JFR0lOCisK
K05TQXV0b3JlbGVhc2VQb29sTWFyayBOU1B1c2hBdXRvcmVsZWFzZVBvb2woTlNVSW50ZWdlciBj
YXBhY2l0eSk7Cit2b2lkIE5TUG9wQXV0b3JlbGVhc2VQb29sKE5TQXV0b3JlbGVhc2VQb29sTWFy
ayk7CisKK1dURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21h
Yy9ISVRvb2xib3hTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDM0ODc3NzcyZGNjNThmMDJhMTY3OGE3NmNl
MmZhMDViOGFmYWNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvbWFjL0hJVG9vbGJveFNQSS5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbmNsdWRlIDxISVRv
b2xib3gvSElUb29sYm94UHJpdi5oPgorCisjZWxzZQorCisjZGVmaW5lIGtUU01JbnB1dFNvdXJj
ZVByb3BlcnR5U2NyaXB0Q29kZSBDRlNUUigiVFNNSW5wdXRTb3VyY2VQcm9wZXJ0eVNjcmlwdENv
ZGUiKQorCisjZW5kaWYKKwordHlwZWRlZiBzdHJ1Y3QgX19UU01JbnB1dFNvdXJjZSogVFNNSW5w
dXRTb3VyY2VSZWY7Cit0eXBlZGVmIENGU3RyaW5nUmVmIFRTTUlucHV0U291cmNlUHJvcGVydHlU
YWc7CisKK1dURl9FWFRFUk5fQ19CRUdJTgorCitPU1N0YXR1cyBfU3luY1dpbmRvd1dpdGhDR0Fm
dGVyTW92ZShXaW5kb3dSZWYpOworQ0dXaW5kb3dJRCBHZXROYXRpdmVXaW5kb3dGcm9tV2luZG93
UmVmKFdpbmRvd1JlZik7CitPU1N0YXR1cyBUU01Qcm9jZXNzUmF3S2V5RXZlbnQoRXZlbnRSZWYp
OworRXZlbnRSZWYgR2V0Q3VycmVudEV2ZW50KCk7CitDRlR5cGVSZWYgVFNNR2V0SW5wdXRTb3Vy
Y2VQcm9wZXJ0eShUU01JbnB1dFNvdXJjZVJlZiwgVFNNSW5wdXRTb3VyY2VQcm9wZXJ0eVRhZyk7
CisKK1dURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL21hYy9OU0V2ZW50U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNF
dmVudFNQSS5oCmluZGV4IDg1NzdjZTU4M2VhMWMyMjhkNDRjYmYyNDg1NWY3MGZjZGNmMmYxMTgu
Ljc5MTc4NGQ1MTc5Y2FlNzg4MzcyNmIyMTI3ZmZiZmU5MDI2MDY5ZjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9OU0V2ZW50U1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvbWFjL05TRXZlbnRTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsMTAgKzMzLDIwIEBACiAKICNl
bHNlCiAKK05TX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKIGVudW0gewogICAgIE5TRXZlbnRTd2lw
ZVRyYWNraW5nQ29uc3VtZU1vdXNlRXZlbnRzID0gMHgxIDw8IDIKIH07CiAKK0BpbnRlcmZhY2Ug
TlNFdmVudCAoKQorLSAobnVsbGFibGUgTlNFdmVudCAqKV9pbml0V2l0aENHRXZlbnQ6KG51bGxh
YmxlIENHRXZlbnRSZWYpY2dFdmVudCBldmVudFJlZjoobnVsbGFibGUgdm9pZCopZXZlbnRSZWY7
CistIChudWxsYWJsZSB2b2lkKilfZXZlbnRSZWYgTlNfUkVUVVJOU19JTk5FUl9QT0lOVEVSOwor
LSAoTlNFdmVudCAqKV9ldmVudFJlbGF0aXZlVG9XaW5kb3c6KE5TV2luZG93ICopd2luZG93Owor
QGVuZAorCitOU19BU1NVTUVfTk9OTlVMTF9FTkQKKwogI2VuZGlmCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TV2luZG93U1BJLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaAppbmRleCAwMmMzM2Y3MTM1
NTdlYWRjNWQwNjEyN2Q5OTI5MDdhNjY2NGMyNjZkLi5iYWI4NDAwZjA0OWQ5NGI5MmRlZmVhOWFl
OTUzMTYyZmYyMTU4OTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9t
YWMvTlNXaW5kb3dTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNX
aW5kb3dTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC00MSw2ICs0MSwxMCBAQAogCiBAZW5kCiAKK2VudW0geworICAgIF9OU0NhcmJv
bldpbmRvd01hc2sgPSAxIDw8IDI1LAorfTsKKwogI2VuZGlmCiAKICNlbmRpZiAvLyBQTEFURk9S
TShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvUXVpY2tE
cmF3U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvUXVpY2tEcmF3U1BJLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmVkMmRjY2QyZDEwYmZmZTNjYjU1MDhiYWRjYTY1YTM2ZTYxMDU3ZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9RdWlja0RyYXdT
UEkuaApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmbmRlZiBfX0xQNjRfXworCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2luY2x1
ZGUgPFFEL1F1aWNrZHJhd1ByaXYuaD4KKworI2Vsc2UKKworI2RlZmluZSBNYWNTZXRSZWN0IFNl
dFJlY3QKKyNkZWZpbmUgTWFjU2V0UmVjdFJnbiBTZXRSZWN0UmduCisjZGVmaW5lIE1hY1VuaW9u
UmduIFVuaW9uUmduCisKK2VudW0geworICAgIGJsYWNrQ29sb3IgPSAzMywKKyAgICB3aGl0ZUNv
bG9yID0gMzAsCisgICAgZ3JlZW5Db2xvciA9IDM0MSwKK307CisKK2VudW0geworICAgIGtCaXRz
UHJvYyA9IDgsCit9OworCisjZW5kaWYKKwordHlwZWRlZiBsb25nIFFERHJhd2luZ1R5cGU7CisK
K1dURl9FWFRFUk5fQ19CRUdJTgorCitCb29sZWFuIEVtcHR5UmduKFJnbkhhbmRsZSk7CitPU1N0
YXR1cyBDcmVhdGVDR0NvbnRleHRGb3JQb3J0KENHcmFmUHRyLCBDR0NvbnRleHRSZWYqKTsKK09T
U3RhdHVzIFN5bmNDR0NvbnRleHRPcmlnaW5XaXRoUG9ydChDR0NvbnRleHRSZWYsIENHcmFmUHRy
KTsKK1BpeE1hcEhhbmRsZSBHZXRQb3J0UGl4TWFwKENHcmFmUHRyKTsKK1FERXJyIE5ld0dXb3Js
ZEZyb21QdHIoR1dvcmxkUHRyKiwgVUludDMyLCBjb25zdCBSZWN0KiwgQ1RhYkhhbmRsZSwgR0RI
YW5kbGUsIEdXb3JsZEZsYWdzLCBQdHIsIFNJbnQzMik7CitSZWN0KiBHZXRQb3J0Qm91bmRzKENH
cmFmUHRyLCBSZWN0Kik7CitSZWN0KiBHZXRSZWdpb25Cb3VuZHMoUmduSGFuZGxlLCBSZWN0Kik7
CitSZ25IYW5kbGUgR2V0UG9ydENsaXBSZWdpb24oQ0dyYWZQdHIsIFJnbkhhbmRsZSk7CitSZ25I
YW5kbGUgR2V0UG9ydFZpc2libGVSZWdpb24oQ0dyYWZQdHIsIFJnbkhhbmRsZSk7CitSZ25IYW5k
bGUgTmV3UmduKCk7Cit2b2lkIEJhY2tDb2xvcihsb25nKTsKK3ZvaWQgQ2FsbERyYXdpbmdOb3Rp
ZmljYXRpb25zKENHcmFmUHRyLCBjb25zdCBSZWN0KiwgUUREcmF3aW5nVHlwZSk7Cit2b2lkIERp
c3Bvc2VHV29ybGQoR1dvcmxkUHRyKTsKK3ZvaWQgRGlzcG9zZVJnbihSZ25IYW5kbGUpOwordm9p
ZCBGb3JlQ29sb3IobG9uZyk7Cit2b2lkIEdldEdXb3JsZChDR3JhZlB0ciosIEdESGFuZGxlKik7
Cit2b2lkIEdldFBvcnQoR3JhZlB0ciopOwordm9pZCBHbG9iYWxUb0xvY2FsKFBvaW50Kik7Cit2
b2lkIE1hY1NldFJlY3QoUmVjdCosIHNob3J0LCBzaG9ydCwgc2hvcnQsIHNob3J0KTsKK3ZvaWQg
TWFjU2V0UmVjdFJnbihSZ25IYW5kbGUsIHNob3J0LCBzaG9ydCwgc2hvcnQsIHNob3J0KTsKK3Zv
aWQgTWFjVW5pb25SZ24oUmduSGFuZGxlLCBSZ25IYW5kbGUsIFJnbkhhbmRsZSk7Cit2b2lkIE1v
dmVQb3J0VG8oc2hvcnQsIHNob3J0KTsKK3ZvaWQgT2Zmc2V0UmVjdChSZWN0Kiwgc2hvcnQsIHNo
b3J0KTsKK3ZvaWQgT2Zmc2V0UmduKFJnbkhhbmRsZSwgc2hvcnQsIHNob3J0KTsKK3ZvaWQgUGFp
bnRSZWN0KGNvbnN0IFJlY3QqKTsKK3ZvaWQgUGVuTm9ybWFsKCk7Cit2b2lkIFBvcnRTaXplKHNo
b3J0LCBzaG9ydCk7Cit2b2lkIFJlY3RSZ24oUmduSGFuZGxlLCBjb25zdCBSZWN0Kik7Cit2b2lk
IFNlY3RSZ24oUmduSGFuZGxlLCBSZ25IYW5kbGUsIFJnbkhhbmRsZSk7Cit2b2lkIFNldEdXb3Js
ZChDR3JhZlB0ciwgR0RIYW5kbGUpOwordm9pZCBTZXRPcmlnaW4oc2hvcnQsIHNob3J0KTsKK3Zv
aWQgU2V0UG9ydChHcmFmUHRyKTsKK3ZvaWQgU2V0UG9ydENsaXBSZWdpb24oQ0dyYWZQdHIsIFJn
bkhhbmRsZSk7Cit2b2lkIFNldFBvcnRWaXNpYmxlUmVnaW9uKENHcmFmUHRyLCBSZ25IYW5kbGUp
OworCitXVEZfRVhURVJOX0NfRU5ECisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9Q
bHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCmluZGV4IDUyOWM0YjUzMzlhMWM4
ODRkMjVlMGUyYjRlMGI1MDkyZWEyOWQ0MTguLmRkNTMzNzAyNDdmMGE2Yjc0YTAxYmZjYzhhYTk2
ZmE2ZmZmMzQ0MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMv
UGx1Z2luUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFj
L1BsdWdpblByb2Nlc3NNYWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dApAQCAtNDYsNiArNDYsNyBAQAogI2ltcG9ydCA8bWFjaC9tYWNoX3ZtLmg+CiAjaW1wb3J0IDxt
YWNoL3ZtX3N0YXRpc3RpY3MuaD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgorI2ltcG9ydCA8
cGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg+CiAjaW1wb3J0IDxzeXNleGl0cy5oPgogI2ltcG9y
dCA8d3RmL0hhc2hTZXQuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtOTYs
NyArOTcsNyBAQCBzdGF0aWMgYm9vbCB3aW5kb3dDb3ZlcnNBbnlTY3JlZW4oV2luZG93UmVmIHdp
bmRvdykKIAogc3RhdGljIENHV2luZG93SUQgY2dXaW5kb3dJRChXaW5kb3dSZWYgd2luZG93KQog
ewotICAgIHJldHVybiByZWludGVycHJldF9jYXN0PENHV2luZG93SUQ+KFdLR2V0TmF0aXZlV2lu
ZG93RnJvbVdpbmRvd1JlZih3aW5kb3cpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxD
R1dpbmRvd0lEPihHZXROYXRpdmVXaW5kb3dGcm9tV2luZG93UmVmKHdpbmRvdykpOwogfQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQppbmRleCAyMDFiM2RjZDgz
OTk0ODZiOGU0ZTJkOTBjNzU5ZjJhOTUxZWQ0MzI5Li5hMzEyMGU2MjUzODNiZWIyYWY3MDcwMjcw
ZjQ3Zjg1ODk5MzBjMjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3
LDYgKzM3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQg
PFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CisjaW1w
b3J0IDxwYWwvc3BpL21hYy9ISVRvb2xib3hTUEkuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCkBAIC05ODgsNiArOTg5
LDIxIEBAIHN0YXRpYyBib29sIGNvbnZlcnRTdHJpbmdUb0tleUNvZGVzKFN0cmluZ1ZpZXcgc3Ry
aW5nLCBTY3JpcHRDb2RlIHNjcmlwdENvZGUsIFZlCiB9CiAjZW5kaWYKIAorI2lmbmRlZiBOUF9O
T19DQVJCT04KK3N0YXRpYyBTY3JpcHRDb2RlIHNjcmlwdENvZGVGcm9tQ3VycmVudEtleWJvYXJk
SW5wdXRTb3VyY2UoKQoreworICAgIFNjcmlwdENvZGUgc2NyaXB0Q29kZSA9IHNtUm9tYW47Cisg
ICAgYXV0byBpbnB1dFNvdXJjZSA9IGFkb3B0Q0YoVElTQ29weUN1cnJlbnRLZXlib2FyZElucHV0
U291cmNlKCkpOworCisgICAgQ0ZUeXBlUmVmIHNjcmlwdENvZGVOdW1iZXIgPSBUU01HZXRJbnB1
dFNvdXJjZVByb3BlcnR5KChUU01JbnB1dFNvdXJjZVJlZilpbnB1dFNvdXJjZS5nZXQoKSwga1RT
TUlucHV0U291cmNlUHJvcGVydHlTY3JpcHRDb2RlKTsKKyAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQo
c2NyaXB0Q29kZU51bWJlcikgPT0gQ0ZOdW1iZXJHZXRUeXBlSUQoKSk7CisgICAgaWYgKHNjcmlw
dENvZGVOdW1iZXIpCisgICAgICAgIENGTnVtYmVyR2V0VmFsdWUoKENGTnVtYmVyUmVmKXNjcmlw
dENvZGVOdW1iZXIsIGtDRk51bWJlclNJbnQxNlR5cGUsICZzY3JpcHRDb2RlKTsKKworICAgIHJl
dHVybiBzY3JpcHRDb2RlOworfQorI2VuZGlmCisKIHZvaWQgTmV0c2NhcGVQbHVnaW46OnNlbmRD
b21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQogewogICAgIGlmICghbV9w
bHVnaW5XYW50c0xlZ2FjeUNvY29hVGV4dElucHV0KSB7CkBAIC0xMDExLDcgKzEwMjcsNyBAQCB2
b2lkIE5ldHNjYXBlUGx1Z2luOjpzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRl
eHRJbnB1dCkKICAgICB9CiAjaWZuZGVmIE5QX05PX0NBUkJPTgogICAgIGNhc2UgTlBFdmVudE1v
ZGVsQ2FyYm9uOiB7Ci0gICAgICAgIFNjcmlwdENvZGUgc2NyaXB0Q29kZSA9IFdLR2V0U2NyaXB0
Q29kZUZyb21DdXJyZW50S2V5Ym9hcmRJbnB1dFNvdXJjZSgpOworICAgICAgICBTY3JpcHRDb2Rl
IHNjcmlwdENvZGUgPSBzY3JpcHRDb2RlRnJvbUN1cnJlbnRLZXlib2FyZElucHV0U291cmNlKCk7
CiAgICAgICAgIFZlY3RvcjxVSW50OD4ga2V5Q29kZXM7CiAKICAgICAgICAgaWYgKCFjb252ZXJ0
U3RyaW5nVG9LZXlDb2Rlcyh0ZXh0SW5wdXQsIHNjcmlwdENvZGUsIGtleUNvZGVzKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGQ0YmVlZWFkZWYxYTc4OGE0OTI0YTRiNjA5MTk0YzcyNDM3ZDBk
ZWMuLmMyMjQzMDU5NmQ2NTkyMzMzY2NkYzM1ZTYwOTg0OTYxNmJkNzBlNDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJLaXRMZWdhY3kueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTQ5LDcgKzE0OSw2IEBACiAJCTU5OEFEOTI4MTIwMUNGMzIwMEFCQUU0
RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9jay5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5OEFEOTI3MTIwMUNGMzIwMEFCQUU0RSAv
KiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9jay5tbSAqLzsgfTsKIAkJNTk4QUQ5MkEx
MjAxQ0YzQjAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5OEFE
OTI5MTIwMUNGM0IwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9ja0lu
dGVybmFsLmggKi87IH07CiAJCTU5OEFEQTQ2MTIwMjI3NTAwMEFCQUU0RSAvKiBXZWJEZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1OThBREE0NTEyMDIyNzUwMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRp
b25Qcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCTVDNzcwNjcyMUQxMTFCMjIwMDEyNzAwRiAvKiBRdWlja0RyYXdDb21wYXRpYmlsaXR5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Qzc3MDY3
MTFEMTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5oICovOyB9OwogCQk1
RDdCRjgxNDBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDdCRjgxMjBDMkExRDkwMDA4Q0UwNkQg
LyogV2ViSW5zcGVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNUQ3QkY4MTUwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEN0JGODEzMEMy
QTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNwZWN0b3IubW0gKi87IH07CiAJCTVERTgzQTdBMEQwRjdG
OTQwMENBRDEyQSAvKiBXZWJKYXZhU2NyaXB0VGV4dElucHV0UGFuZWwubmliIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1REU4M0E3NDBEMEY3Rjk0MDBD
QUQxMkEgLyogV2ViSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsLm5pYiAqLzsgfTsKQEAgLTMxOSw3
ICszMTgsNiBAQAogCQk5Mzk4MTBGRjA4MjRCRjAxMDA4REYwMzggLyogQ2FyYm9uV2luZG93RnJh
bWUubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY3RUJF
RTk1MDNGOURCQTEwM0NBMERFNiAvKiBDYXJib25XaW5kb3dGcmFtZS5tICovOyB9OwogCQk5Mzk4
MTEwMDA4MjRCRjAxMDA4REYwMzggLyogSElWaWV3QWRhcHRlci5tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjdFQkVFOUIwM0Y5REJBMTAzQ0EwREU2IC8q
IEhJVmlld0FkYXB0ZXIubSAqLzsgc2V0dGluZ3MgPSB7Q09NUElMRVJfRkxBR1MgPSAiLVduby1k
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyI7IH07IH07CiAJCTkzOTgxMTAxMDgyNEJGMDEwMDhERjAz
OCAvKiBDYXJib25VdGlscy5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjc5Qjk3NDkwNDAxOTkzNDAzNjkwOUQyIC8qIENhcmJvblV0aWxzLm0gKi87IH07
Ci0JCTkzOTgxMTAyMDgyNEJGMDEwMDhERjAzOCAvKiBISVdlYlZpZXcubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGN0VCRUVBQjAzRjlEQkExMDNDQTBE
RTYgLyogSElXZWJWaWV3Lm1tICovOyBzZXR0aW5ncyA9IHtDT01QSUxFUl9GTEFHUyA9ICItV25v
LWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIjsgfTsgfTsKIAkJOTM5ODExMDMwODI0QkYwMTAwOERG
MDM4IC8qIFdlYktpdEVycm9ycy5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODM3MzBGOTgwM0ZCMUU2NjAwMDQ3MzZFIC8qIFdlYktpdEVycm9ycy5tICov
OyB9OwogCQk5Mzk4MTEwNjA4MjRCRjAxMDA4REYwMzggLyogV2ViRnJhbWVWaWV3Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBOEI1MkYwNDI4MkI1
OTAwQ0EyRDNBIC8qIFdlYkZyYW1lVmlldy5tbSAqLzsgfTsKIAkJOTM5ODExMDcwODI0QkYwMTAw
OERGMDM4IC8qIFdlYlZpZXcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MUE4QjU3QTA0MjgzNEY3MDBDQTJEM0EgLyogV2ViVmlldy5tbSAqLzsgfTsK
QEAgLTY4MCw2ICs2NzgsNyBAQAogCQk5M0VCMTc4RDA5Rjg4RDQ2MDA5MUY4RkYgLyogV2ViU3lz
dGVtSW50ZXJmYWNlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNFQjE3OEMwOUY4OEQ0NjAwOTFGOEZGIC8qIFdlYlN5c3RlbUludGVyZmFjZS5tbSAq
LzsgfTsKIAkJOTNFQjE3OEYwOUY4OEQ1MTAwOTFGOEZGIC8qIFdlYlN5c3RlbUludGVyZmFjZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFQjE3OEUw
OUY4OEQ1MTAwOTFGOEZGIC8qIFdlYlN5c3RlbUludGVyZmFjZS5oICovOyB9OwogCQk5M0ZERTkz
MzBENzlDQUYzMDA3NEYwMjkgLyogV2ViSGlzdG9yeUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0ZERTkzMjBENzlDQUYzMDA3NEYwMjkg
LyogV2ViSGlzdG9yeUludGVybmFsLmggKi87IH07CisJCUExMDI2NTgzMUY1NjU0MDMwMEI0Qzg0
NCAvKiBISVdlYlZpZXcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMTAyNjU4MjFGNTY1NDAzMDBCNEM4NDQgLyogSElXZWJWaWV3Lm1tICovOyB9Owog
CQlBMTBDMUQxODE4MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVmYXVsdEZvcm1EZWxlZ2F0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwQzFEMTAxODIw
MkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGb3JtRGVsZWdhdGUuaCAqLzsgfTsKIAkJQTEwQzFE
MTkxODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGb3JtRGVsZWdhdGUubSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMEMxRDExMTgyMDJGOUMwMDM2
ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLm0gKi87IH07CiAJCUExMEMxRDFBMTgyMDJG
OUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0RnJhbWVMb2FkRGVsZWdhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMEMxRDEyMTgyMDJGOUMwMDM2ODgz
QSAvKiBXZWJEZWZhdWx0RnJhbWVMb2FkRGVsZWdhdGUuaCAqLzsgfTsKQEAgLTk4OCw3ICs5ODcs
NiBAQAogCQk1OThBRDkyNzEyMDFDRjMyMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlck1vY2subW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9jay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTk4QUQ5MjkxMjAxQ0YzQjAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVudGF0aW9u
UHJvdmlkZXJNb2NrSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2tJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1OThBREE0NTEyMDIyNzUwMDBBQkFFNEUgLyogV2ViRGV2aWNlT3Jp
ZW50YXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJE
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTVDNzcwNjcxMUQxMTFCMjIwMDEyNzAwRiAvKiBRdWlja0RyYXdDb21wYXRpYmlsaXR5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1aWNrRHJhd0NvbXBhdGliaWxpdHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQ3QkY4MTIwQzJBMUQ5MDAwOENFMDZEIC8q
IFdlYkluc3BlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSW5z
cGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEN0JGODEzMEMyQTFEOTAw
MDhDRTA2RCAvKiBXZWJJbnNwZWN0b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViSW5zcGVjdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1REU4M0E3NTBEMEY3Rjk0MDBDQUQxMkEgLyogRW5nbGlzaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIubmliOyBuYW1lID0gRW5nbGlz
aDsgcGF0aCA9IEVuZ2xpc2gubHByb2ovV2ViSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsLm5pYjsg
c291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwpAQCAtMTQyMCw2ICsxNDE4LDcgQEAKIAkJOTNG
REU5MzIwRDc5Q0FGMzAwNzRGMDI5IC8qIFdlYkhpc3RvcnlJbnRlcm5hbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJIaXN0b3J5SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOUNBRTlEMDcwMjUyQTQxMzBFQ0ExNkVBIC8qIFdlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOUNGMEUyNDkwMjEzNjFCMDBFQ0ExNkVB
IC8qIFdlYkZyYW1lUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYkZyYW1lUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKKwkJQTEwMjY1ODIxRjU2NTQwMzAwQjRD
ODQ0IC8qIEhJV2ViVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEhJV2ViVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwQzFEMTAx
ODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGb3JtRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViRGVmYXVsdEZvcm1EZWxlZ2F0ZS5oOyBwYXRoID0gaW9z
L0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdEZvcm1EZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0g
U09VUkNFX1JPT1Q7IH07CiAJCUExMEMxRDExMTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0
Rm9ybURlbGVnYXRlLm0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgbmFtZSA9IFdlYkRl
ZmF1bHRGb3JtRGVsZWdhdGUubTsgcGF0aCA9IGlvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1
bHRGb3JtRGVsZWdhdGUubTsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlBMTBDMUQx
MjE4MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVmYXVsdEZyYW1lTG9hZERlbGVnYXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkRlZmF1bHRGcmFtZUxvYWREZWxlZ2F0ZS5o
OyBwYXRoID0gaW9zL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdEZyYW1lTG9hZERlbGVnYXRl
Lmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTE1OTcsNyArMTU5Niw2IEBACiAJ
CUY3RUJFRTlBMDNGOURCQTEwM0NBMERFNiAvKiBISVZpZXdBZGFwdGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhJVmlld0FkYXB0ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJ
CUY3RUJFRTlCMDNGOURCQTEwM0NBMERFNiAvKiBISVZpZXdBZGFwdGVyLm0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IEhJVmlld0FkYXB0ZXIu
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCUY3RUJFRUFBMDNGOURCQTEwM0NBMERFNiAvKiBISVdlYlZpZXcuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSElXZWJWaWV3Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlGN0VC
RUVBQjAzRjlEQkExMDNDQTBERTYgLyogSElXZWJWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGZpbGVF
bmNvZGluZyA9IDMwOyBwYXRoID0gSElXZWJWaWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB1c2VzVGFicyA9IDA7IH07CiAJCUY4MzRBQUQ1MEU2NEIxQzcwMEUyNzM3QyAvKiBXZWJUZXh0
SXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVGV4dEl0ZXJh
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY4MzRBQUQ2MEU2NEIxQzcwMEUy
NzM3QyAvKiBXZWJUZXh0SXRlcmF0b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJUZXh0SXRlcmF0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY4Q0ExNUI1MDI5QTM5RDkwMTAwMDEyMiAvKiBXZWJBdXRoZW50aWNhdGlvblBhbmVsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xNzY5LDcgKzE3NjcsNiBAQAogCQkJY2hpbGRyZW4gPSAo
CiAJCQkJQTEwQzFEMjAxODIwMkZBRjAwMzY4ODNBIC8qIGlvcyAqLywKIAkJCQkyOUFFRjk1RDEz
NEM3NTU0MDBGRTUwOTYgLyogT3V0bG9va1F1aXJrc1VzZXJTY3JpcHQuanMgKi8sCi0JCQkJNUM3
NzA2NzExRDExMUIyMjAwMTI3MDBGIC8qIFF1aWNrRHJhd0NvbXBhdGliaWxpdHkuaCAqLywKIAkJ
CQk1MjQxQURGMzBCMUJDNDhBMDA0MDEyQkQgLyogV2ViQ2FjaGUuaCAqLywKIAkJCQk1MjQxQURG
NDBCMUJDNDhBMDA0MDEyQkQgLyogV2ViQ2FjaGUubW0gKi8sCiAJCQkJRjU5RUFFM0UwMjUzQzdF
RTAxODYzNUNBIC8qIFdlYkNvcmVTdGF0aXN0aWNzLmggKi8sCkBAIC0yNjcyLDcgKzI2NjksNyBA
QAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlGN0VCRUVBQTAzRjlE
QkExMDNDQTBERTYgLyogSElXZWJWaWV3LmggKi8sCi0JCQkJRjdFQkVFQUIwM0Y5REJBMTAzQ0Ew
REU2IC8qIEhJV2ViVmlldy5tbSAqLywKKwkJCQlBMTAyNjU4MjFGNTY1NDAzMDBCNEM4NDQgLyog
SElXZWJWaWV3Lm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSAiQyBBUEkiOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTI5MzYsNyArMjkzMyw2IEBACiAJCQkJN0MwMUNCODUxNzM0MzVD
OTAwQzVEODA3IC8qIFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyREJFOUYw
RjI1MUUzQTAwMzZGOEE2IC8qIFByb3h5SW5zdGFuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUUx
Njk4MzYyMTEzNDZEMUIwMDg5NDExNSAvKiBQcm94eVJ1bnRpbWVPYmplY3QuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTVDNzcwNjcyMUQxMTFCMjIwMDEyNzAwRiAvKiBRdWlja0RyYXdDb21wYXRpYmls
aXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTBDMUQ2MjE4MjAzMDBFMDAzNjg4M0EgLyogU2Vh
cmNoUG9wdXBNZW51SU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzAxQ0I4NzE3MzQzNUM5MDBD
NUQ4MDcgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTZCMzEz
MjFBNTFGM0E5MDA0MjI5NzUgLyogU3RvcmFnZUFyZWFJbXBsLmggaW4gSGVhZGVycyAqLywKQEAg
LTM1MTMsNyArMzUwOSw3IEBACiAJCQkJOTNENDM3OUExRDU3QUJFRjAwQUI4NUVBIC8qIEV4Y2Vw
dGlvbkhhbmRsZXJzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2MDUxOTMxNzUwMkE1RDAwQkM2
MkY1IC8qIEhpc3RvcnlQcm9wZXJ0eUxpc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk5Mzk4MTEw
MDA4MjRCRjAxMDA4REYwMzggLyogSElWaWV3QWRhcHRlci5tIGluIFNvdXJjZXMgKi8sCi0JCQkJ
OTM5ODExMDIwODI0QkYwMTAwOERGMDM4IC8qIEhJV2ViVmlldy5tbSBpbiBTb3VyY2VzICovLAor
CQkJCUExMDI2NTgzMUY1NjU0MDMwMEI0Qzg0NCAvKiBISVdlYlZpZXcubW0gaW4gU291cmNlcyAq
LywKIAkJCQkxQThERUQ1MTBFRTg4QjhBMDBGMjUwMjIgLyogSG9zdGVkTmV0c2NhcGVQbHVnaW5T
dHJlYW0ubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTBDMUQzMzE4MjAyRkM1MDAzNjg4M0EgLyog
TWVtb3J5TWVhc3VyZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQUY1Q0VCMEVEREUxRkUwMDhE
ODgzRCAvKiBOZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uVXRpbHMubSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25VdGlscy5tCmluZGV4IGM1ODYyM2Q0
MDcxZGViODQ3OGYyMDllY2I4ODdkYjNlMmVlYzY4NTEuLmZhZDJmNjBmZWQ3ZGI0MTgzMTQ0YjNm
Mjk5NzM5OTRlMzJjZTBhZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0Nh
cmJvbi9DYXJib25VdGlscy5tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9D
YXJib25VdGlscy5tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJDYXJib25VdGlscy5oIgog
I2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29h
L0ZvdW5kYXRpb25TUEkuaD4KIAogZXh0ZXJuIENHSW1hZ2VSZWYgX05TQ3JlYXRlSW1hZ2VSZWYo
IHVuc2lnbmVkIGNoYXIgKmNvbnN0IGJpdG1hcERhdGFbNV0sIGludCBwaXhlbHNXaWRlLCBpbnQg
cGl4ZWxzSGlnaCwgaW50IGJpdHNQZXJTYW1wbGUsIGludCBzYW1wbGVzUGVyUGl4ZWwsIGludCBi
aXRzUGVyUGl4ZWwsIGludCBieXRlc1BlclJvdywgQk9PTCBpc1BsYW5hciwgQk9PTCBoYXNBbHBo
YSwgTlNTdHJpbmcgKmNvbG9yU3BhY2VOYW1lLCBDR0NvbG9yU3BhY2VSZWYgY3VzdG9tQ29sb3JT
cGFjZSwgaWQgc291cmNlT2JqKTsKIApAQCAtNDEsNiArNDIsMTQgQEAKIAogdm9pZCAgICAgICAg
ICAgICAgICAgICAgSElXZWJWaWV3UmVnaXN0ZXJDbGFzcyggdm9pZCApOwogCitzdGF0aWMgdW5z
aWduZWQgZ2V0TlNBdXRvcmVsZWFzZVBvb2xDb3VudCh2b2lkKQoreworICAgIHZvaWQqIHYgPSBO
U1B1c2hBdXRvcmVsZWFzZVBvb2woMCk7CisgICAgdWludHB0cl90IG51bVBvb2xzID0gKHVpbnRw
dHJfdCl2OworICAgIE5TUG9wQXV0b3JlbGVhc2VQb29sKHYpOworICAgIHJldHVybiBudW1Qb29s
czsKK30KKwogdm9pZAogV2ViSW5pdEZvckNhcmJvbigpCiB7CkBAIC01Niw3ICs2NSw3IEBACiAg
ICAgICAgIE5TQXBwbGljYXRpb25Mb2FkKCk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgIHNQ
b29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY1dpdGhab25lOk5VTExdIGluaXRdOwotICAg
ICAgICBudW1Qb29scyA9IFdLR2V0TlNBdXRvcmVsZWFzZVBvb2xDb3VudCgpOworICAgICAgICBu
dW1Qb29scyA9IGdldE5TQXV0b3JlbGVhc2VQb29sQ291bnQoKTsKICAgICAgICAgCiAgICAgICAg
IHBvb2xMb29wID0gR2V0Q3VycmVudEV2ZW50TG9vcCAoKTsKIApAQCAtODIsMTIgKzkxLDEyIEBA
CiAgICAgICAgIENGU3RyaW5nUmVmIG1vZGUgPSBDRlJ1bkxvb3BDb3B5Q3VycmVudE1vZGUoIChD
RlJ1bkxvb3BSZWYpR2V0Q0ZSdW5Mb29wRnJvbUV2ZW50TG9vcCggR2V0Q3VycmVudEV2ZW50TG9v
cCgpICkpOwogICAgICAgICBFdmVudExvb3BSZWYgdGhpc0xvb3AgPSBHZXRDdXJyZW50RXZlbnRM
b29wICgpOwogICAgICAgICBpZiAoIENGRXF1YWwoIG1vZGUsIGtDRlJ1bkxvb3BEZWZhdWx0TW9k
ZSApICYmIHRoaXNMb29wID09IHBvb2xMb29wKSB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBjdXJy
ZW50TnVtUG9vbHMgPSBXS0dldE5TQXV0b3JlbGVhc2VQb29sQ291bnQoKS0xOyAgICAgICAgICAg
IAorICAgICAgICAgICAgdW5zaWduZWQgY3VycmVudE51bVBvb2xzID0gZ2V0TlNBdXRvcmVsZWFz
ZVBvb2xDb3VudCgpLTE7ICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoY3VycmVudE51bVBv
b2xzID09IG51bVBvb2xzKXsKICAgICAgICAgICAgICAgICBbc1Bvb2wgZHJhaW5dOwogICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgIHNQb29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBh
bGxvY1dpdGhab25lOk5VTExdIGluaXRdOwotICAgICAgICAgICAgICAgIG51bVBvb2xzID0gV0tH
ZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KCk7CisgICAgICAgICAgICAgICAgbnVtUG9vbHMgPSBn
ZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICAgICAgQ0ZSZWxlYXNlKCBtb2RlICk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCmluZGV4IDYwMDlkZmNkODcwNzM0ZTMw
MmI5NDg1MTkwOWFjYTZjOTlhOGVlM2YuLjFiZDUzZTg5MDdkN2Y3MDkzNDQ4MmEwZjUwZDc4N2Zl
ZGI0Mzc0MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJi
b25XaW5kb3dBZGFwdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9D
YXJib25XaW5kb3dBZGFwdGVyLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC03Myw2ICs3Myw4IEBACiAjaW1wb3J0IDxhc3NlcnQuaD4K
IAogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgorI2ltcG9ydCA8cGFsL3Nw
aS9tYWMvSElUb29sYm94U1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1dpbmRvd1NQSS5o
PgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYv
TWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KQEAgLTgxLDYgKzgzLDkgQEAK
ICNpbXBvcnQgIldlYk5TT2JqZWN0RXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJUeXBlc0ludGVybmFs
LmgiCiAKK2V4dGVybiBjb25zdCBPU1R5cGUgTlNBcHBLaXRQcm9wZXJ0eUNyZWF0b3I7CitleHRl
cm4gY29uc3QgT1NUeXBlIE5TQ2FyYm9uV2luZG93UHJvcGVydHlUYWc7CisKIEBpbnRlcmZhY2Ug
TlNXaW5kb3coSElXZWJGcmFtZVZpZXcpCiAtIChpZClfaW5pdENvbnRlbnQ6KGNvbnN0IE5TUmVj
dCAqKWNvbnRlbnRSZWN0IHN0eWxlTWFzazoodW5zaWduZWQgaW50KWFTdHlsZSBiYWNraW5nOihO
U0JhY2tpbmdTdG9yZVR5cGUpYnVmZmVyaW5nVHlwZSBkZWZlcjooQk9PTClmbGFnIGNvbnRlbnRW
aWV3OmFWaWV3OwogLSAodm9pZClfb2xkUGxhY2VXaW5kb3c6KE5TUmVjdClmcmFtZVJlY3Q7CkBA
IC0xMTEsNyArMTE2LDcgQEAgQGltcGxlbWVudGF0aW9uIENhcmJvbldpbmRvd0FkYXB0ZXIKICsg
KENsYXNzKWZyYW1lVmlld0NsYXNzRm9yU3R5bGVNYXNrOih1bnNpZ25lZCBpbnQpc3R5bGUgewog
CiAgICAgLy8gVGhlcmUncyBvbmx5IG9uZSBhcHByb3ByaWF0ZSB3aW5kb3cgc3R5bGUsIGFuZCBv
bmx5IG9uZSBhcHByb3ByaWF0ZSB3aW5kb3cgZnJhbWUgY2xhc3MuCi0gICAgYXNzZXJ0KHN0eWxl
ICYgV0tDYXJib25XaW5kb3dNYXNrKCkpOworICAgIGFzc2VydChzdHlsZSAmIF9OU0NhcmJvbldp
bmRvd01hc2spOwogICAgIHJldHVybiBbQ2FyYm9uV2luZG93RnJhbWUgY2xhc3NdOwogCiB9CkBA
IC0xNTYsNyArMTYxLDcgQEAgLSAoaWQpaW5pdFdpdGhDYXJib25XaW5kb3dSZWY6KFdpbmRvd1Jl
ZilpbldpbmRvd1JlZiB0YWtpbmdPd25lcnNoaXA6KEJPT0wpaW5XaW4KIAlfY2FyYm9uID0gaW5D
YXJib247CiAKICAgICAvLyBGaW5kIG91dCB0aGUgd2luZG93J3MgQ29yZUdyYXBoaWNzIHdpbmRv
dyByZWZlcmVuY2UuCi0gICAgbmF0aXZlV2luZG93ID0gV0tHZXROYXRpdmVXaW5kb3dGcm9tV2lu
ZG93UmVmKGluV2luZG93UmVmKTsKKyAgICBuYXRpdmVXaW5kb3cgPSAodm9pZCopR2V0TmF0aXZl
V2luZG93RnJvbVdpbmRvd1JlZihpbldpbmRvd1JlZik7CiAKICAgICAvLyBGaW5kIG91dCB0aGUg
d2luZG93J3MgQ2FyYm9uIHdpbmRvdyBhdHRyaWJ1dGVzLgogICAgIEdldFdpbmRvd0F0dHJpYnV0
ZXMoaW5XaW5kb3dSZWYsICZ3aW5kb3dBdHRyaWJ1dGVzKTsKQEAgLTE3NSw3ICsxODAsNyBAQCAt
IChpZClpbml0V2l0aENhcmJvbldpbmRvd1JlZjooV2luZG93UmVmKWluV2luZG93UmVmIHRha2lu
Z093bmVyc2hpcDooQk9PTClpbldpbgogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAg
ICAgLy8gRmlndXJlIG91dCB0aGUgd2luZG93J3Mgc3R5bGUgbWFzay4KLSAgICBzdHlsZU1hc2sg
PSBXS0NhcmJvbldpbmRvd01hc2soKTsKKyAgICBzdHlsZU1hc2sgPSBfTlNDYXJib25XaW5kb3dN
YXNrOwogICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd0Nsb3NlQm94QXR0cmlidXRl
KQogICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tDbG9zYWJsZTsKICAgICBp
ZiAod2luZG93QXR0cmlidXRlcyAmIGtXaW5kb3dSZXNpemFibGVBdHRyaWJ1dGUpCkBAIC0yNDIs
NyArMjQ3LDcgQEAgLSAoaWQpaW5pdFdpdGhDYXJib25XaW5kb3dSZWY6KFdpbmRvd1JlZilpbldp
bmRvd1JlZiB0YWtpbmdPd25lcnNoaXA6KEJPT0wpaW5XaW4KICAgICAvLyBQdXQgYSBwb2ludGVy
IHRvIHRoaXMgQ29jb2EgTlNXaW5kb3cgaW4gYSBDYXJib24gd2luZG93IHByb3BlcnR5IHRhZy4K
ICAgICAvLyBSaWdodCBub3csIHRoaXMgaXMganVzdCB1c2VkIGJ5IE5TVmlld0NhcmJvbkNvbnRy
b2wuICBNLlAuIE5vdGljZSAtIDEwLzkvMDAKICAgICB3aW5kb3dBc1Byb3BlcnR5ID0gc2VsZjsK
LSAgICBvc1N0YXR1cyA9IFNldFdpbmRvd1Byb3BlcnR5KF93aW5kb3dSZWYsIFdLQ2FyYm9uV2lu
ZG93UHJvcGVydHlDcmVhdG9yKCksIFdLQ2FyYm9uV2luZG93UHJvcGVydHlUYWcoKSwgc2l6ZW9m
KE5TV2luZG93ICopLCAmd2luZG93QXNQcm9wZXJ0eSk7CisgICAgb3NTdGF0dXMgPSBTZXRXaW5k
b3dQcm9wZXJ0eShfd2luZG93UmVmLCBOU0FwcEtpdFByb3BlcnR5Q3JlYXRvciwgTlNDYXJib25X
aW5kb3dQcm9wZXJ0eVRhZywgc2l6ZW9mKE5TV2luZG93ICopLCAmd2luZG93QXNQcm9wZXJ0eSk7
CiAgICAgaWYgKG9zU3RhdHVzIT1ub0VycikgewogICAgICAgICBbc2VsZiByZWxlYXNlXTsKICAg
ICAgICAgcmV0dXJuIG5pbDsKQEAgLTU1NCw3ICs1NTksNyBAQCAtICh2b2lkKV9vbGRQbGFjZVdp
bmRvdzooTlNSZWN0KWZyYW1lUmVjdCB7CiAKICAgICAvLyBUZWxsIENhcmJvbiB0byB1cGRhdGUg
aXRzIHZhcmlvdXMgcmVnaW9ucy4KICAgICAvLyBEZXNwaXRlIGl0cyBuYW1lLCB0aGlzIGZ1bmN0
aW9uIHNob3VsZCBiZSBjYWxsZWQgZWFybHkgYW5kIG9mdGVuLCBldmVuIGlmIHRoZSB3aW5kb3cg
aXNuJ3QgdmlzaWJsZSB5ZXQuICAyNzAyNjQ4LiAgTS5QLiBOb3RpY2UgLSA3LzI0LzAxCi0gICAg
b3NTdGF0dXMgPSBXS1N5bmNXaW5kb3dXaXRoQ0dBZnRlck1vdmUoX3dpbmRvd1JlZik7CisgICAg
b3NTdGF0dXMgPSBfU3luY1dpbmRvd1dpdGhDR0FmdGVyTW92ZShfd2luZG93UmVmKTsKICAgICBp
ZiAob3NTdGF0dXMhPW5vRXJyKSBOU0xvZyhAIkEgQ2FyYm9uIHdpbmRvdydzIGJvdW5kcyBjb3Vs
ZG4ndCBiZSBzeW5jaHJvbml6ZWQgKCVpKS4iLCAoaW50KW9zU3RhdHVzKTsKIAogfQpAQCAtNjE0
LDcgKzYxOSw3IEBAIC0gKHZvaWQpX3dpbmRvd01vdmVkVG9SZWN0OihOU1JlY3QpYWN0dWFsRnJh
bWUgewogCiAgICAgLy8gTGV0IENhcmJvbiBrbm93IHRoYXQgdGhlIHdpbmRvdyBoYXMgYmVlbiBt
b3ZlZCwgdW5sZXNzIHRoaXMgbWV0aG9kIGlzIGJlaW5nIGNhbGxlZCAiZWFybHkuIgogICAgIGlm
IChfd0ZsYWdzLnZpc2libGUpIHsKLSAgICAgICAgb3NTdGF0dXMgPSBXS1N5bmNXaW5kb3dXaXRo
Q0dBZnRlck1vdmUoX3dpbmRvd1JlZik7CisgICAgICAgIG9zU3RhdHVzID0gX1N5bmNXaW5kb3dX
aXRoQ0dBZnRlck1vdmUoX3dpbmRvd1JlZik7CiAgICAgICAgIGlmIChvc1N0YXR1cyE9bm9FcnIp
IE5TTG9nKEAiQSBDYXJib24gd2luZG93J3MgYm91bmRzIGNvdWxkbid0IGJlIHN5bmNocm9uaXpl
ZCAoJWkpLiIsIChpbnQpb3NTdGF0dXMpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJVmlld0FkYXB0ZXIubSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0KaW5kZXggY2QyMDhmNzkwYzA1YWQ5MTQ0NTBh
NmY4YjYxZmUxNjFlYzlhZjg5NC4uMzU1MzcwNzUyZGVhMDY3OTViMzU4ZTlkYjgxNzhmYmExY2Q5
NzAzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJVmlld0Fk
YXB0ZXIubQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vSElWaWV3QWRhcHRl
ci5tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTMwLDggKzMwLDggQEAKIAogI2ltcG9ydCAiSElWaWV3QWRhcHRlci5oIgogCi0j
aW1wb3J0ICJRdWlja0RyYXdDb21wYXRpYmlsaXR5LmgiCiAjaW1wb3J0ICJXZWJOU09iamVjdEV4
dHJhcy5oIgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvUXVpY2tEcmF3U1BJLmg+CiAjaW1wb3J0IDx3
dGYvQXNzZXJ0aW9ucy5oPgogCiBzdGF0aWMgdm9pZCBTZXRWaWV3TmVlZHNEaXNwbGF5KEhJVmll
d1JlZiBpblZpZXcsIFJnbkhhbmRsZSBpblJlZ2lvbiwgQm9vbGVhbiBpbk5lZWRzRGlzcGxheSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vSElXZWJWaWV3Lm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJV2ViVmlldy5tbQppbmRleCAwYWUw
MTQ3MDJmZDM5MWNjZTU4MjZhNGEwMWEwOGZmZjJjMDRiZTZjLi4zNDU4NWMyNTJjM2IxOGNhY2Q2
ZTA3YWQ1ZTk0NDg3NzlkOGJlNDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DYXJib24vSElXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJv
bi9ISVdlYlZpZXcubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTMyLDEwICszMiwxMSBAQAogCiAjaW1wb3J0ICJDYXJib25XaW5kb3dB
ZGFwdGVyLmgiCiAjaW1wb3J0ICJISVZpZXdBZGFwdGVyLmgiCi0jaW1wb3J0ICJRdWlja0RyYXdD
b21wYXRpYmlsaXR5LmgiCiAjaW1wb3J0ICJXZWJIVE1MVmlld0ludGVybmFsLmgiCiAjaW1wb3J0
ICJXZWJLaXQuaCIKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8
cGFsL3NwaS9tYWMvTlNFdmVudFNQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvUXVpY2tEcmF3
U1BJLmg+CiAjaW1wb3J0IDx3dGYvT2JqY1J1bnRpbWVFeHRyYXMuaD4KIAogQGludGVyZmFjZSBO
U1dpbmRvdyAoQXBwS2l0U2VjcmV0c0hJV2ViVmlld0tub3dzKQpAQCAtMzA2LDkgKzMwNywxMiBA
QCBEcmF3KCBISVdlYlZpZXcqIGluVmlldywgUmduSGFuZGxlIGxpbWl0UmduLCBDR0NvbnRleHRS
ZWYgaW5Db250ZXh0ICkKICAgICAgICAgR3JhZlB0ciBwb3J0OwogICAgICAgICBSZWN0IHBvcnRS
ZWN0OwogCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgICAgIEdldFBv
cnQoICZwb3J0ICk7CiAgICAgICAgIEdldFBvcnRCb3VuZHMoIHBvcnQsICZwb3J0UmVjdCApOwog
ICAgICAgICBDcmVhdGVDR0NvbnRleHRGb3JQb3J0KCBwb3J0LCAmaW5Db250ZXh0ICk7CisjcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogICAgICAgICBTeW5jQ0dDb250ZXh0T3JpZ2luV2l0
aFBvcnQoIGluQ29udGV4dCwgcG9ydCApOwogICAgICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0o
IGluQ29udGV4dCwgMCwgKHBvcnRSZWN0LmJvdHRvbSAtIHBvcnRSZWN0LnRvcCkgKTsKICAgICAg
ICAgQ0dDb250ZXh0U2NhbGVDVE0oIGluQ29udGV4dCwgMSwgLTEgKTsKQEAgLTQzNiw2ICs0NDAs
NjQgQEAgR2V0V2luZG93UmVmKCBISVdlYlZpZXcqIGluVmlldyApCiAgICAgICAgcmV0dXJuIEdl
dENvbnRyb2xPd25lciggaW5WaWV3LT5mVmlld1JlZiApOwogfQogCitzdGF0aWMgTlNFdmVudCAq
CitDcmVhdGVOU0V2ZW50QWRvcHRpbmdDR0V2ZW50KCBDR0V2ZW50UmVmIGNnRXZlbnQsIEV2ZW50
UmVmIGV2ZW50UmVmICkKK3sKKyAgICBOU0V2ZW50ICpyZXN1bHQgPSBbW05TRXZlbnQgYWxsb2Nd
IF9pbml0V2l0aENHRXZlbnQ6Y2dFdmVudCBldmVudFJlZjpldmVudFJlZl07CisgICAgQ0ZSZWxl
YXNlKGNnRXZlbnQpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBCb29sZWFuCitD
b3B5RXZlbnRDR0V2ZW50KCBFdmVudFJlZiBldmVudCwgQ0dFdmVudFJlZiogY2dFdmVudCApCit7
CisgICAgaWYgKCgqY2dFdmVudCA9IENvcHlFdmVudENHRXZlbnQoZXZlbnQpKSkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgCisgICAgLy8gVGhpcyBldmVudCBtaWdodCBub3QgaGF2ZSBiZWVu
IGNyZWF0ZWQgZGlyZWN0bHkgZnJvbSBhIENHUyBldmVudCwgYW5kIG1pZ2h0IG5vdAorICAgIC8v
IGhhdmUgYSBDR0V2ZW50UmVmIGFzc29jaWF0ZWQgd2l0aCBpdC4gSW4gdGhhdCBjYXNlLCB0cnkg
dXNpbmcgdGhlIGV2ZW50IG1vc3QKKyAgICAvLyByZWNlbnRseSBkaXNwYXRjaGVkIGJ5IHRoZSBl
dmVudCBkaXNwYXRjaGVyLCB3aGljaCBpcyBsaWtlbHkgdG8gYmUgdGhlIG9yaWdpbmFsCisgICAg
Ly8gdXNlci1pbnB1dCBldmVudCBjb250YWluaW5nIGEgQ0dFdmVudFJlZi4KKyAgICBldmVudCA9
IEdldEN1cnJlbnRFdmVudCgpOworICAgIGlmIChldmVudCAmJiAoKmNnRXZlbnQgPSBDb3B5RXZl
bnRDR0V2ZW50KGV2ZW50KSkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBmYWxz
ZTsKK30KKworc3RhdGljIE5TRXZlbnQgKgorQ3JlYXRlTlNFdmVudFdpdGhDYXJib25DbGlja0V2
ZW50KCBFdmVudFJlZiBpbkV2ZW50LCBXaW5kb3dSZWYgd2luZG93UmVmICkKK3sKKyAgICBFdmVu
dFJlZiBuZXdFdmVudDsKKyAgICBQb2ludCB3aGVyZTsKKyAgICBPU1N0YXR1cyBlcnI7CisgICAg
VUludDMyIG1vZGlmaWVyczsKKyAgICBSZWN0IHdpbmRSZWN0OworICAgIAorICAgIENHRXZlbnRS
ZWYgY2dFdmVudCA9IE5VTEw7CisgICAgaWYgKCFDb3B5RXZlbnRDR0V2ZW50KGluRXZlbnQsICZj
Z0V2ZW50KSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAKKyAgICAvLyBXZSBuZWVkIHRvIG1h
a2UgdGhlIGV2ZW50IGJlIGEga0V2ZW50TW91c2VEb3duIGV2ZW50LCBvciB0aGUgd2Via2l0IG1p
Z2h0IHRyaXAgdXAgd2hlbgorICAgIC8vIHdlIGNsaWNrIG9uIGEgTmV0c2NhcGUgcGx1Z2luLiBJ
dCBjYWxscyBDb252ZXJ0RXZlbnRSZWZUb0V2ZW50UmVjb3JkLCBhc3N1bWluZworICAgIC8vIHRo
YXQgbW91c2VEb3duIHdhcyBwYXNzZWQgYW4gZXZlbnQgd2l0aCBhIHJlYWwgbW91c2UgZG93biBl
dmVudFJlZi4gV2UganVzdCBuZWVkIGEKKyAgICAvLyBtaW5pbWFsIG9uZSBoZXJlLgorICAgIAor
ICAgIGVyciA9IENyZWF0ZUV2ZW50KE5VTEwsIGtFdmVudENsYXNzTW91c2UsIGtFdmVudE1vdXNl
RG93biwgR2V0RXZlbnRUaW1lKGluRXZlbnQpLCAwLCAmbmV3RXZlbnQpOworICAgIGlmIChlcnIg
IT0gbm9FcnIpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgCisgICAgR2V0RXZlbnRQYXJhbWV0
ZXIoaW5FdmVudCwga0V2ZW50UGFyYW1XaW5kb3dNb3VzZUxvY2F0aW9uLCB0eXBlUURQb2ludCwg
TlVMTCwgc2l6ZW9mKFBvaW50KSwgTlVMTCwgJndoZXJlKTsKKyAgICBHZXRXaW5kb3dCb3VuZHMo
d2luZG93UmVmLCBrV2luZG93U3RydWN0dXJlUmduLCAmd2luZFJlY3QpOworICAgIHdoZXJlLmgg
Kz0gd2luZFJlY3QubGVmdDsKKyAgICB3aGVyZS52ICs9IHdpbmRSZWN0LnRvcDsKKyAgICAKKyAg
ICBHZXRFdmVudFBhcmFtZXRlcihpbkV2ZW50LCBrRXZlbnRQYXJhbUtleU1vZGlmaWVycywgdHlw
ZVVJbnQzMiwgTlVMTCwgc2l6ZW9mKFVJbnQzMiksIE5VTEwsICZtb2RpZmllcnMpOworICAgIFNl
dEV2ZW50UGFyYW1ldGVyKG5ld0V2ZW50LCBrRXZlbnRQYXJhbU1vdXNlTG9jYXRpb24sIHR5cGVR
RFBvaW50LCBzaXplb2YoUG9pbnQpLCAmd2hlcmUpOworICAgIFNldEV2ZW50UGFyYW1ldGVyKG5l
d0V2ZW50LCBrRXZlbnRQYXJhbUtleU1vZGlmaWVycywgdHlwZVVJbnQzMiwgc2l6ZW9mKFVJbnQz
MiksICZtb2RpZmllcnMpOworICAgIAorICAgIHJldHVybiBDcmVhdGVOU0V2ZW50QWRvcHRpbmdD
R0V2ZW50KGNnRXZlbnQsIG5ld0V2ZW50KTsKK30KKwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAvLyBDbGljawogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00NDMsNyArNTA1
LDcgQEAgR2V0V2luZG93UmVmKCBISVdlYlZpZXcqIGluVmlldyApCiBzdGF0aWMgT1NTdGF0dXMK
IENsaWNrKEhJV2ViVmlldyogaW5WaWV3LCBFdmVudFJlZiBpbkV2ZW50KQogewotICAgIE5TRXZl
bnQgKmtpdEV2ZW50ID0gV0tDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkNsaWNrRXZlbnQoaW5FdmVu
dCwgR2V0V2luZG93UmVmKGluVmlldykpOworICAgIE5TRXZlbnQgKmtpdEV2ZW50ID0gQ3JlYXRl
TlNFdmVudFdpdGhDYXJib25DbGlja0V2ZW50KGluRXZlbnQsIEdldFdpbmRvd1JlZihpblZpZXcp
KTsKIAogICAgIGlmICghaW5WaWV3LT5mSXNDb21wb3NpdGVkKQogICAgICAgICBTdGFydFVwZGF0
ZU9ic2VydmVyKGluVmlldyk7CkBAIC00NTgsNiArNTIwLDE2IEBAIENsaWNrKEhJV2ViVmlldyog
aW5WaWV3LCBFdmVudFJlZiBpbkV2ZW50KQogICAgIHJldHVybiBub0VycjsKIH0KIAorc3RhdGlj
IE5TRXZlbnQgKgorQ3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVudCggRXZlbnRSZWYgaW5FdmVu
dCApCit7CisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBldmVudFdpdGhFdmVudFJlZjpp
bkV2ZW50XTsKKyAgICBpZiAoIWV2ZW50KQorICAgICAgICBldmVudCA9IFtOU0V2ZW50IGV2ZW50
V2l0aEV2ZW50UmVmOkdldEN1cnJlbnRFdmVudCgpXTsKKworICAgIHJldHVybiBbZXZlbnQgcmV0
YWluXTsKK30KKwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBNb3VzZVVwCiAvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ2NSwxNSArNTM3LDMyIEBAIENsaWNrKEhJV2Vi
VmlldyogaW5WaWV3LCBFdmVudFJlZiBpbkV2ZW50KQogc3RhdGljIE9TU3RhdHVzCiBNb3VzZVVw
KCBISVdlYlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCApCiB7Ci0JTlNFdmVudCoga2l0
RXZlbnQgPSBXS0NyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZlbnQoaW5FdmVudCk7CisgICAgTlNF
dmVudCoga2l0RXZlbnQgPSBDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkV2ZW50KGluRXZlbnQpOwog
CiAgICAgW2luVmlldy0+ZktpdFdpbmRvdyBzZW5kRXZlbnQ6a2l0RXZlbnRdOwotCQorCiAgICAg
W2tpdEV2ZW50IHJlbGVhc2VdOwotICAgIAorCiAJcmV0dXJuIG5vRXJyOwogfQogCitzdGF0aWMg
TlNFdmVudCAqCitDcmVhdGVOU0V2ZW50V2l0aENhcmJvbk1vdXNlTW92ZUV2ZW50KCBFdmVudFJl
ZiBpbkV2ZW50LCBOU1dpbmRvdyAqd2luZG93ICkKK3sKKyAgICBOU0V2ZW50KiBraXRFdmVudCA9
IFtOU0V2ZW50IGV2ZW50V2l0aEV2ZW50UmVmOmluRXZlbnRdOworCisgICAgLy8gRklYTUU6IFdv
cmtzIGFyb3VuZCBidWcgMzU4NTY0NC4gQ2FuIHJlbW92ZSBpdCBvbmNlIHRoYXQgYnVnIGlzIGZp
eGVkLgorICAgIC8vIFdlIHByZWZsaWdodCBoZXJlIGFuZCBkb24ndCBkbyBhbnkgd29yayB3aGVu
IHRoZSB3aW5kb3cgaXMgYWxyZWFkeSBjb3JyZWN0CisgICAgLy8gYmVjYXVzZSBfZXZlbnRSZWxh
dGl2ZVRvV2luZG93IHdpbGwgbWFsZnVuY3Rpb24gaWYgdGhlIGV2ZW50J3Mgd2luZG93IG1ldGhv
ZAorICAgIC8vIGhhcyBiZWVuIGhpamFja2VkIGJ5IHRoZSBidWcgd29ya2Fyb3VuZCB1c2VkIGJ5
IENvbnRyaWJ1dGUuIEl0J3MgZmluZSB0byBqdXN0CisgICAgLy8gbGVhdmUgdGhlIGV2ZW50IGFs
b25lIGlmIHRoZSB3aW5kb3cgaXMgYWxyZWFkeSBjb3JyZWN0LgorCisgICAgaWYgKFtraXRFdmVu
dCB3aW5kb3ddICE9IHdpbmRvdykKKyAgICAgICAga2l0RXZlbnQgPSBba2l0RXZlbnQgX2V2ZW50
UmVsYXRpdmVUb1dpbmRvdzp3aW5kb3ddOworCisgICAgcmV0dXJuIFtraXRFdmVudCByZXRhaW5d
OworfQorCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIE1vdXNlTW92ZWQKIC8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDgxLDcgKzU3MCw3IEBAIE1vdXNlVXAoIEhJV2Vi
VmlldyogaW5WaWV3LCBFdmVudFJlZiBpbkV2ZW50ICkKIHN0YXRpYyBPU1N0YXR1cwogTW91c2VN
b3ZlZCggSElXZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQgKQogewotICAgIE5TRXZl
bnQgKmtpdEV2ZW50ID0gV0tDcmVhdGVOU0V2ZW50V2l0aENhcmJvbk1vdXNlTW92ZUV2ZW50KGlu
RXZlbnQsIGluVmlldy0+ZktpdFdpbmRvdyk7CisgICAgTlNFdmVudCAqa2l0RXZlbnQgPSBDcmVh
dGVOU0V2ZW50V2l0aENhcmJvbk1vdXNlTW92ZUV2ZW50KGluRXZlbnQsIGluVmlldy0+ZktpdFdp
bmRvdyk7CiAgICAgW2luVmlldy0+ZktpdFdpbmRvdyBzZW5kRXZlbnQ6a2l0RXZlbnRdOwogCVtr
aXRFdmVudCByZWxlYXNlXTsKIApAQCAtNDk1LDEyICs1ODQsMTIgQEAgTW91c2VNb3ZlZCggSElX
ZWJWaWV3KiBpblZpZXcsIEV2ZW50UmVmIGluRXZlbnQgKQogc3RhdGljIE9TU3RhdHVzCiBNb3Vz
ZURyYWdnZWQoIEhJV2ViVmlldyogaW5WaWV3LCBFdmVudFJlZiBpbkV2ZW50ICkKIHsKLQlOU0V2
ZW50KiBraXRFdmVudCA9IFdLQ3JlYXRlTlNFdmVudFdpdGhDYXJib25FdmVudChpbkV2ZW50KTsK
KyAgICBOU0V2ZW50KiBraXRFdmVudCA9IENyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZlbnQoaW5F
dmVudCk7CiAKICAgICBbaW5WaWV3LT5mS2l0V2luZG93IHNlbmRFdmVudDpraXRFdmVudF07CiAK
LQlba2l0RXZlbnQgcmVsZWFzZV07Ci0JCisgICAgW2tpdEV2ZW50IHJlbGVhc2VdOworCiAJcmV0
dXJuIG5vRXJyOwogfQogCkBAIC01MTEsMTIgKzYwMCwxMiBAQCBNb3VzZURyYWdnZWQoIEhJV2Vi
VmlldyogaW5WaWV3LCBFdmVudFJlZiBpbkV2ZW50ICkKIHN0YXRpYyBPU1N0YXR1cwogTW91c2VX
aGVlbE1vdmVkKCBISVdlYlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCApCiB7Ci0JTlNF
dmVudCoga2l0RXZlbnQgPSBXS0NyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZlbnQoaW5FdmVudCk7
CisgICAgTlNFdmVudCoga2l0RXZlbnQgPSBDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkV2ZW50KGlu
RXZlbnQpOwogCiAgICAgW2luVmlldy0+ZktpdFdpbmRvdyBzZW5kRXZlbnQ6a2l0RXZlbnRdOwog
Ci0JW2tpdEV2ZW50IHJlbGVhc2VdOwotCQorICAgIFtraXRFdmVudCByZWxlYXNlXTsKKwogCXJl
dHVybiBub0VycjsKIH0KIApAQCAtNjg0LDcgKzc3Myw3IEBAIFdpbmRvd0hhbmRsZXIoIEV2ZW50
SGFuZGxlckNhbGxSZWYgaW5DYWxsUmVmLCBFdmVudFJlZiBpbkV2ZW50LCB2b2lkKiBpblVzZXJE
YXRhCiAJCQkJCU5TUmVzcG9uZGVyKiByZXNwb25kZXIgPSBba2l0V2luZG93IGZpcnN0UmVzcG9u
ZGVyXTsKIAkJCQkJaWYgKCByZXNwb25kZXIgIT0ga2l0V2luZG93ICkKIAkJCQkJewotICAgICAg
ICAgICAgICAgICAgICAgICAga2l0RXZlbnQgPSBXS0NyZWF0ZU5TRXZlbnRXaXRoQ2FyYm9uRXZl
bnQoaW5FdmVudCk7CisgICAgICAgICAgICAgICAgICAgICAgICBraXRFdmVudCA9IENyZWF0ZU5T
RXZlbnRXaXRoQ2FyYm9uRXZlbnQoaW5FdmVudCk7CiAJCQkJCQkKIAkJCQkJCVtraXRXaW5kb3cg
c2VuZEV2ZW50OmtpdEV2ZW50XTsKIAkJCQkJCVtraXRFdmVudCByZWxlYXNlXTsKQEAgLTEyNjUs
NyArMTM1NCw3IEBAIEhJV2ViVmlld0V2ZW50SGFuZGxlcigKIAogCQljYXNlIGtFdmVudENsYXNz
S2V5Ym9hcmQ6CiAJCQl7Ci0JCQkJTlNFdmVudCoga2l0RXZlbnQgPSBXS0NyZWF0ZU5TRXZlbnRX
aXRoQ2FyYm9uRXZlbnQoaW5FdmVudCk7CisgICAgICAgICAgICAgICAgTlNFdmVudCoga2l0RXZl
bnQgPSBDcmVhdGVOU0V2ZW50V2l0aENhcmJvbkV2ZW50KGluRXZlbnQpOwogCQkJCVt2aWV3LT5m
S2l0V2luZG93IHNlbmRTdXBlckV2ZW50OmtpdEV2ZW50XTsKIAkJCQlba2l0RXZlbnQgcmVsZWFz
ZV07CiAJCQkJcmVzdWx0ID0gbm9FcnI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9NaXNjL1F1aWNrRHJhd0NvbXBhdGliaWxpdHkuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL01pc2MvUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjZmY1NTNmYzBiMDNkMzA1NzgzMDhkYTRlM2VlM2UyYmQ0ZTg4YmMzLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL01pc2MvUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5oCisrKyAvZGV2L251bGwKQEAgLTEs
OTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUXVpY2tEcmF3Q29tcGF0aWJpbGl0eV9o
Ci0jZGVmaW5lIFF1aWNrRHJhd0NvbXBhdGliaWxpdHlfaAotCi0jaWZuZGVmIF9fTFA2NF9fCi0K
LSNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KLQotI2lmIGRlZmluZWQoUURfSEVBREVSU19BUkVf
UFJJVkFURSkgJiYgUURfSEVBREVSU19BUkVfUFJJVkFURQotCi0jaWZkZWYgX19jcGx1c3BsdXMK
LWV4dGVybiAiQyIgewotI2VuZGlmCi0KLSNkZWZpbmUgTWFjU2V0UmVjdCBTZXRSZWN0Ci0jZGVm
aW5lIE1hY1NldFJlY3RSZ24gU2V0UmVjdFJnbgotI2RlZmluZSBNYWNVbmlvblJnbiBVbmlvblJn
bgotCi1leHRlcm4gQm9vbGVhbiBFbXB0eVJnbihSZ25IYW5kbGUpOwotZXh0ZXJuIE9TU3RhdHVz
IENyZWF0ZUNHQ29udGV4dEZvclBvcnQoQ0dyYWZQdHIsIENHQ29udGV4dFJlZiopOwotZXh0ZXJu
IE9TU3RhdHVzIFN5bmNDR0NvbnRleHRPcmlnaW5XaXRoUG9ydChDR0NvbnRleHRSZWYsIENHcmFm
UHRyKTsKLWV4dGVybiBQaXhNYXBIYW5kbGUgR2V0UG9ydFBpeE1hcChDR3JhZlB0cik7Ci1leHRl
cm4gUURFcnIgTmV3R1dvcmxkRnJvbVB0cihHV29ybGRQdHIqLCBVSW50MzIsIGNvbnN0IFJlY3Qq
LCBDVGFiSGFuZGxlLCBHREhhbmRsZSwgR1dvcmxkRmxhZ3MsIFB0ciwgU0ludDMyKTsKLWV4dGVy
biBSZWN0KiBHZXRQb3J0Qm91bmRzKENHcmFmUHRyLCBSZWN0Kik7Ci1leHRlcm4gUmVjdCogR2V0
UmVnaW9uQm91bmRzKFJnbkhhbmRsZSwgUmVjdCopOwotZXh0ZXJuIFJnbkhhbmRsZSBHZXRQb3J0
Q2xpcFJlZ2lvbihDR3JhZlB0ciwgUmduSGFuZGxlKTsKLWV4dGVybiBSZ25IYW5kbGUgR2V0UG9y
dFZpc2libGVSZWdpb24oQ0dyYWZQdHIsIFJnbkhhbmRsZSk7Ci1leHRlcm4gUmduSGFuZGxlIE5l
d1JnbigpOwotZXh0ZXJuIHZvaWQgQmFja0NvbG9yKGxvbmcpOwotZXh0ZXJuIHZvaWQgRGlzcG9z
ZUdXb3JsZChHV29ybGRQdHIpOwotZXh0ZXJuIHZvaWQgRGlzcG9zZVJnbihSZ25IYW5kbGUpOwot
ZXh0ZXJuIHZvaWQgRm9yZUNvbG9yKGxvbmcpOwotZXh0ZXJuIHZvaWQgR2V0R1dvcmxkKENHcmFm
UHRyKiwgR0RIYW5kbGUqKTsKLWV4dGVybiB2b2lkIEdldFBvcnQoR3JhZlB0ciopOwotZXh0ZXJu
IHZvaWQgR2xvYmFsVG9Mb2NhbChQb2ludCopOwotZXh0ZXJuIHZvaWQgTWFjU2V0UmVjdChSZWN0
Kiwgc2hvcnQsIHNob3J0LCBzaG9ydCwgc2hvcnQpOwotZXh0ZXJuIHZvaWQgTWFjU2V0UmVjdFJn
bihSZ25IYW5kbGUsIHNob3J0LCBzaG9ydCwgc2hvcnQsIHNob3J0KTsKLWV4dGVybiB2b2lkIE1h
Y1VuaW9uUmduKFJnbkhhbmRsZSwgUmduSGFuZGxlLCBSZ25IYW5kbGUpOwotZXh0ZXJuIHZvaWQg
TW92ZVBvcnRUbyhzaG9ydCwgc2hvcnQpOwotZXh0ZXJuIHZvaWQgT2Zmc2V0UmVjdChSZWN0Kiwg
c2hvcnQsIHNob3J0KTsKLWV4dGVybiB2b2lkIE9mZnNldFJnbihSZ25IYW5kbGUsIHNob3J0LCBz
aG9ydCk7Ci1leHRlcm4gdm9pZCBQYWludFJlY3QoY29uc3QgUmVjdCopOwotZXh0ZXJuIHZvaWQg
UGVuTm9ybWFsKCk7Ci1leHRlcm4gdm9pZCBQb3J0U2l6ZShzaG9ydCwgc2hvcnQpOwotZXh0ZXJu
IHZvaWQgUmVjdFJnbihSZ25IYW5kbGUsIGNvbnN0IFJlY3QqKTsKLWV4dGVybiB2b2lkIFNlY3RS
Z24oUmduSGFuZGxlLCBSZ25IYW5kbGUsIFJnbkhhbmRsZSk7Ci1leHRlcm4gdm9pZCBTZXRHV29y
bGQoQ0dyYWZQdHIsIEdESGFuZGxlKTsKLWV4dGVybiB2b2lkIFNldE9yaWdpbihzaG9ydCwgc2hv
cnQpOwotZXh0ZXJuIHZvaWQgU2V0UG9ydChHcmFmUHRyKTsKLWV4dGVybiB2b2lkIFNldFBvcnRD
bGlwUmVnaW9uKENHcmFmUHRyLCBSZ25IYW5kbGUpOwotZXh0ZXJuIHZvaWQgU2V0UG9ydFZpc2li
bGVSZWdpb24oQ0dyYWZQdHIsIFJnbkhhbmRsZSk7Ci0KLWVudW0gewotICAgIGJsYWNrQ29sb3Ig
PSAzMywKLSAgICB3aGl0ZUNvbG9yID0gMzAsCi0gICAgZ3JlZW5Db2xvciA9IDM0MSwKLX07Ci0K
LSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvLyBkZWZpbmVkKFFEX0hF
QURFUlNfQVJFX1BSSVZBVEUpICYmIFFEX0hFQURFUlNfQVJFX1BSSVZBVEUKLQotI2VuZGlmIC8v
IF9fTFA2NF9fCi0KLSNlbmRpZiAvLyBRdWlja0RyYXdDb21wYXRpYmlsaXR5X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVu
dEhhbmRsZXJDYXJib24ubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5l
dHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uLm1tCmluZGV4IDY4NTY3YjMzOTRkZDgxYWU5
ZjUxOTc0MTg5OTRkYmQyOGYzZWIyN2IuLjNmY2I0NjdmZDc4Nzg0MzFhMTRmZTc5OTc4NDc3YzI1
ODk1ZmFkMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2Vi
TmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib24ubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbi5tbQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTcgQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
MCw2ICszMCw4IEBACiAjaW1wb3J0ICJXZWJOZXRzY2FwZVBsdWdpblZpZXcuaCIKICNpbXBvcnQg
IldlYktpdExvZ2dpbmcuaCIKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5oIgorI2lt
cG9ydCA8cGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9O
U0V2ZW50U1BJLmg+CiAKIC8vIFNlbmQgbnVsbCBldmVudHMgNTAgdGltZXMgYSBzZWNvbmQgd2hl
biBhY3RpdmUsIHNvIHBsdWctaW5zIGxpa2UgRmxhc2ggZ2V0IGhpZ2ggZnJhbWUgcmF0ZXMuCiAj
ZGVmaW5lIE51bGxFdmVudEludGVydmFsQWN0aXZlICAgICAgICAgMC4wMgpAQCAtODUsNyArODcs
NyBAQCBzdGF0aWMgRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzRm9yRXZlbnQoTlNFdmVudCAqZXZl
bnQpCiAKIHN0YXRpYyB2b2lkIGdldENhcmJvbkV2ZW50KEV2ZW50UmVjb3JkICpjYXJib25FdmVu
dCwgTlNFdmVudCAqY29jb2FFdmVudCkKIHsKLSAgICBpZiAoV0tDb252ZXJ0TlNFdmVudFRvQ2Fy
Ym9uRXZlbnQoY2FyYm9uRXZlbnQsIGNvY29hRXZlbnQpKQorICAgIGlmIChbY29jb2FFdmVudCBf
ZXZlbnRSZWZdICYmIENvbnZlcnRFdmVudFJlZlRvRXZlbnRSZWNvcmQoKEV2ZW50UmVmKVtjb2Nv
YUV2ZW50IF9ldmVudFJlZl0sIGNhcmJvbkV2ZW50KSkKICAgICAgICAgcmV0dXJuOwogICAgIAog
ICAgIE5TUG9pbnQgd2hlcmUgPSBbW2NvY29hRXZlbnQgd2luZG93XSBjb252ZXJ0QmFzZVRvU2Ny
ZWVuOltjb2NvYUV2ZW50IGxvY2F0aW9uSW5XaW5kb3ddXTsKQEAgLTIxMCw3ICsyMTIsNyBAQCB2
b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uOjptb3VzZU1vdmVkKE5TRXZl
bnQqIHRoZUV2ZW50KQogdm9pZCBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbjo6
a2V5RG93bihOU0V2ZW50ICp0aGVFdmVudCkKIHsKICAgICBtX3N1c3BlbmRLZXlVcEV2ZW50cyA9
IHRydWU7Ci0gICAgV0tTZW5kS2V5RXZlbnRUb1RTTSh0aGVFdmVudCk7CisgICAgVFNNUHJvY2Vz
c1Jhd0tleUV2ZW50KChFdmVudFJlZilbdGhlRXZlbnQgX2V2ZW50UmVmXSk7CiB9CiAKIHZvaWQg
V2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib246OnN5bnRoZXRpY0tleURvd25XaXRo
Q29tbWFuZE1vZGlmaWVyKGludCBrZXlDb2RlLCBjaGFyIGNoYXJhY3RlcikKQEAgLTIzOCw3ICsy
NDAsNyBAQCBzdGF0aWMgVUludDMyIGtleU1lc3NhZ2VGb3JFdmVudChOU0V2ZW50ICpldmVudCkK
ICAgICAKIHZvaWQgV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib246OmtleVVwKE5T
RXZlbnQqIHRoZUV2ZW50KQogewotICAgIFdLU2VuZEtleUV2ZW50VG9UU00odGhlRXZlbnQpOwor
ICAgIFRTTVByb2Nlc3NSYXdLZXlFdmVudCgoRXZlbnRSZWYpW3RoZUV2ZW50IF9ldmVudFJlZl0p
OwogICAgIAogICAgIC8vIFRTTSB3b24ndCBzZW5kIGtleVVwIGV2ZW50cyBzbyB3ZSBoYXZlIHRv
IHNlbmQgdGhlbSBvdXJzZWx2ZXMuCiAgICAgLy8gT25seSBzZW5kIGtleVVwIGV2ZW50cyBhZnRl
ciB3ZSByZWNlaXZlIHRoZSBUU00gY2FsbGJhY2sgYmVjYXVzZSB0aGlzIGlzIHdoYXQgcGx1Zy1p
biBleHBlY3QgZnJvbSBPUyA5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
UGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29h
Lm1tCmluZGV4IGRlMjAxODlhMzdkYzA5Mjg3ODJlODYxYjJhNjlhMDNjNzYwOGUxNzguLmY4MDAz
NGYxZWQ3MzY5N2I2MTEwZmJmYWVhZTk3ZjAyMzlkNDA5MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1
Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOC0yMDE3IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNiArMjksOCBAQAogCiAjaW1wb3J0ICJXZWJLaXRT
eXN0ZW1JbnRlcmZhY2UuaCIKICNpbXBvcnQgIldlYk5ldHNjYXBlUGx1Z2luVmlldy5oIgorI2lt
cG9ydCA8cGFsL3NwaS9tYWMvSElUb29sYm94U1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9O
U0V2ZW50U1BJLmg+CiAjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CiAKIFdlYk5ldHNjYXBlUGx1Z2lu
RXZlbnRIYW5kbGVyQ29jb2E6OldlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EoV2Vi
TmV0c2NhcGVQbHVnaW5WaWV3KiBwbHVnaW5WaWV3KQpAQCAtMTI4LDcgKzEzMCw3IEBAIHZvaWQg
V2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYTo6a2V5RG93bihOU0V2ZW50ICpldmVu
dCkKICNpZm5kZWYgX19MUDY0X18KICAgICAvLyBJZiB0aGUgcGx1Zy1pbiBkaWQgbm90IGhhbmRs
ZSB0aGUgZXZlbnQsIHBhc3MgaXQgb24gdG8gdGhlIElucHV0IE1hbmFnZXIuCiAgICAgaWYgKHJl
dHZhbCkKLSAgICAgICAgV0tTZW5kS2V5RXZlbnRUb1RTTShldmVudCk7CisgICAgICAgIFRTTVBy
b2Nlc3NSYXdLZXlFdmVudCgoRXZlbnRSZWYpW2V2ZW50IF9ldmVudFJlZl0pOwogI2Vsc2UKICAg
ICBVTlVTRURfUEFSQU0ocmV0dmFsKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCBmOTYx
ZWZlMWUyOGM0OGJiNjU0YzUxZjM2Y2EwNzMyODNjYzQ1N2ExLi5jNjgwZmY3ZWUzMWM5M2I4ZmI0
OTIyOTdlNGU3YWQ5MTQxYTRkZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw3
ICszMCw2IEBACiAKICNpbXBvcnQgIldlYk5ldHNjYXBlUGx1Z2luVmlldy5oIgogCi0jaW1wb3J0
ICJRdWlja0RyYXdDb21wYXRpYmlsaXR5LmgiCiAjaW1wb3J0ICJXZWJEYXRhU291cmNlSW50ZXJu
YWwuaCIKICNpbXBvcnQgIldlYkRlZmF1bHRVSURlbGVnYXRlLmgiCiAjaW1wb3J0ICJXZWJGcmFt
ZUludGVybmFsLmgiCkBAIC03NSw2ICs3NCw3IEBACiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9N
UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L1dlYlVJRGVsZWdhdGUuaD4KICNpbXBv
cnQgPG9iamMvcnVudGltZS5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvUXVpY2tEcmF3U1BJLmg+
CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHJ1bnRp
bWUvSlNMb2NrLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtOTE1LDcgKzkxNSw3
IEBAIC0odm9pZCl0ZWxsUXVpY2tUaW1lVG9DaGlsbAogICAgIENHcmFmUHRyIHBvcnQgPSBHZXRX
aW5kb3dQb3J0KHdpbmRvd1JlZik7CiAgICAgOjpSZWN0IGJvdW5kczsKICAgICBHZXRQb3J0Qm91
bmRzKHBvcnQsICZib3VuZHMpOwotICAgIFdLQ2FsbERyYXdpbmdOb3RpZmljYXRpb24ocG9ydCwg
JmJvdW5kcyk7CisgICAgQ2FsbERyYXdpbmdOb3RpZmljYXRpb25zKHBvcnQsICZib3VuZHMsIGtC
aXRzUHJvYyk7CiAjZW5kaWYgLyogTlBfTk9fUVVJQ0tEUkFXICovCiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>