<?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>138044</bug_id>
          
          <creation_ts>2014-10-24 04:37:06 -0700</creation_ts>
          <short_desc>Add optimized fullscreen mode.</short_desc>
          <delta_ts>2014-11-03 12:45:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>138320</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Jones">jeremyj-wk</reporter>
          <assigned_to name="Jeremy Jones">jeremyj-wk</assigned_to>
          <cc>andersca</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1043959</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-10-24 04:37:06 -0700</bug_when>
    <thetext>Add optimized fullscreen mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043985</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-10-24 11:07:21 -0700</bug_when>
    <thetext>What does &quot;optimized fullscreen&quot; mean?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044285</commentid>
    <comment_count>2</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-10-27 12:06:13 -0700</bug_when>
    <thetext>rdar://problem/18762317</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044296</commentid>
    <comment_count>3</comment_count>
      <attachid>240492</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-10-27 12:26:02 -0700</bug_when>
    <thetext>Created attachment 240492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044297</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-27 12:28:43 -0700</bug_when>
    <thetext>Attachment 240492 did not pass style-queue:


ERROR: Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:873:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:956:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 2 in 26 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>1044369</commentid>
    <comment_count>5</comment_count>
      <attachid>240516</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-10-27 17:49:06 -0700</bug_when>
    <thetext>Created attachment 240516
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044371</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-27 17:50:42 -0700</bug_when>
    <thetext>Attachment 240516 did not pass style-queue:


ERROR: Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:873:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:888:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:955:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 26 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>1044533</commentid>
    <comment_count>7</comment_count>
      <attachid>240516</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-10-28 10:45:34 -0700</bug_when>
    <thetext>Comment on attachment 240516
Patch

r=me, but this still needs to be signed off by a WK2 reviewer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044539</commentid>
    <comment_count>8</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-10-28 10:49:19 -0700</bug_when>
    <thetext>WK2 parts look fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044593</commentid>
    <comment_count>9</comment_count>
      <attachid>240565</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-10-28 13:07:23 -0700</bug_when>
    <thetext>Created attachment 240565
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044594</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-28 13:09:01 -0700</bug_when>
    <thetext>Attachment 240565 did not pass style-queue:


ERROR: Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:868:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:883:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:950:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 26 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>1044634</commentid>
    <comment_count>11</comment_count>
      <attachid>240565</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-28 16:14:40 -0700</bug_when>
    <thetext>Comment on attachment 240565
Patch for landing.

Clearing flags on attachment: 240565

Committed r175279: &lt;http://trac.webkit.org/changeset/175279&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240492</attachid>
            <date>2014-10-27 12:26:02 -0700</date>
            <delta_ts>2014-10-27 17:49:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138044-20141027122617.patch</filename>
            <type>text/plain</type>
            <size>42568</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJjZGY0YTljOWIwODJk
NmFhN2E4YTU4NWUzNmRjNmE3ZGY2ZTE2ZS4uODRhYjE1Y2FjOTcyNjZlNjM0NjVjOWI2Zjg5ZWY4
NzczNTc1NGYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE0LTEwLTI0ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgb3B0aW1pemVkIGZ1
bGxzY3JlZW4gbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzODA0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEVuYWJsZSBkaWZmZXJlbnQgdHlwZXMgb2YgZnVsbHNjcmVlbiB2aWRlbyBiZWhhdmlv
ci4KKyAgICAgICAgQWRkIGFuIGVudW0gcGFyYW1ldGVyIHRvIGVudGVyVmlkZW9GdWxsc2NyZWVu
Rm9yVmlkZW9FbGVtZW50IGZvciBhbHRlcm5hdGUgdHlwZXMgb2YgZnVsbHNjcmVlbi4KKyAgICAg
ICAgQWRkIGdlc3R1cmUgZm9yIGFsdGVybmF0ZSBmdWxsc2NyZWVuLgorCisgICAgICAgICogTW9k
dWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbHNIb3N0OjplbnRlckZ1bGxzY3JlZW5PcHRpbWl6ZWQpOiBhZGRlZAor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oOiBhZGRl
ZCBlbnRlckZ1bGxzY3JlZW5PcHRpbWl6ZWQKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuaWRsOiBhZGRlZCBlbnRlckZ1bGxzY3JlZW5PcHRpbWl6ZWQK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc2lPUy5qczoKKyAg
ICAgICAgKENvbnRyb2xsZXJJT1MucHJvdG90eXBlLmhhbmRsZUJhc2VHZXN0dXJlQ2hhbmdlKTog
cmVjb2duaXplIGFsdGVybmF0ZSBnZXN0dXJlCisgICAgICAgICogV2ViQ29yZS5leHAuaW46IGFk
ZGVkIHBhcmFtZXRlciB0byBzZXR1cEZ1bGxzY3JlZW4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cmVtb3Zl
ZEZyb20pIDogcmVwbGFjZSBtX2lzSW5WaWRlb0Z1bGxzY3JlZW4gd2l0aCBtX3ZpZGVvRnVsbHNj
cmVlblR5cGUKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnN0b3ApIDogZGl0
dG8KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmlzRnVsbHNjcmVlbikgOiBk
aXR0bworICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVu
KTogYWRkIHBhcmFtZXRlciB0byBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudAor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZXhpdEZ1bGxzY3JlZW4pOiByZXBs
YWNlIG1faXNJblZpZGVvRnVsbHNjcmVlbiB3aXRoIG1fdmlkZW9GdWxsc2NyZWVuVHlwZQorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuT3B0aW1pemVk
KTogYWRkZWQKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDogYWRkZWQgZW50ZXJG
dWxsc2NyZWVuT3B0aW1pemVkCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0Vs
ZW1lbnQpOiBhZGRlZCBwYXJhbWV0ZXIKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lmg6IGFkZCBwYXJhbWV0ZXIKKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tOgorICAgICAgICAo
LVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyIGVudGVyRnVsbHNjcmVlbjp0eXBlOl0pOiBh
ZGQgcGFyYW1ldGVyCisgICAgICAgICgtW1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIgZW50
ZXJGdWxsc2NyZWVuOl0pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOiByZW9yZGVyIHByb3RlY3RlZCB0byBhZnRlciBw
dWJsaWMKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQubW06CisgICAgICAgICgtW1dlYkFWUGxheWVyQ29udHJvbGxlciBwbGF5ZXJdKTogdGhp
cyBzdHViIGlzIG5vdyByZXF1aXJlZAorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIg
bGF5b3V0U3VibGF5ZXJzT2ZMYXllcjpdKTogdGhpcyBpcyBhIGJldHRlciB3YXkgdG8gdXBkYXRl
IHZpZGVvIGZyYW1lcworICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6
OnNldHVwRnVsbHNjcmVlbik6IGltcGxlbWVudCBvcHRpbWl6ZWQgZnVsbHNjcmVlbiBpbnRlcmZh
Y2UgCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxs
c2NyZWVuKTogZGl0dG8KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpleGl0RnVsbHNjcmVlbik6IGRpdHRvCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6cmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbik6IGRpdHRvCisKIDIwMTQt
MTAtMjMgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDYXJldHMgaW4gR01haWwgYW5kIGlDbG91ZCBjb21wb3NpdGlvbnMgYXJlIHRoZSBmb3JlZ3Jv
dW5kIHRleHQgY29sb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBjZGY3ZjJjYzIzZmQyMTgwN2MyY2Ux
ZDNmY2U3YmQ1YzEwZGY1MDhlLi5hN2FlYzViNGMwNWZlZWE0MjhjN2VjMWEyNGQ5NjJmNmQ1MGVm
ZjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTQtMTAtMjQgIEplcmVt
eSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBvcHRpbWl6ZWQgZnVs
bHNjcmVlbiBtb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM4MDQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRW5hYmxlIGRpZmZlcmVudCB0eXBlcyBvZiBmdWxsc2NyZWVuIHZpZGVvIGJlaGF2aW9y
LgorICAgICAgICBBZGQgYW4gZW51bSBwYXJhbWV0ZXIgdG8gZW50ZXJWaWRlb0Z1bGxzY3JlZW5G
b3JWaWRlb0VsZW1lbnQgZm9yIGFsdGVybmF0ZSB0eXBlcyBvZiBmdWxsc2NyZWVuLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6IEFkZCBmdWxsc2NyZWVuVHlw
ZSBwYXJhbWV0ZXIKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9F
bGVtZW50KTogZGl0dG8KKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgX2VudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50OnR5cGU6XSk6IGRp
dHRvCisgICAgICAgICgtW1dlYlZpZXcgX2VudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50Ol0pOiBEZWxldGVkLgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0ludGVybmFsLmg6IGRp
dHRvCisKIDIwMTQtMTAtMjMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBQcm92aWRlIGEgd2F5IHRvIGhhdmUgYWx0ZXJuYXRl
IGluc3BlY3RvciBhZ2VudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5ODlhYWQyM2VkNTNiZTM0YmYzNmY4YTk1
NGRmMjljOGU2N2JiZWQ2Li5kN2U5M2I0NjRlMGU4ZTk2Mzc2MDVlZDYxMzNiOGFhMDFlM2U0Njli
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQtMTAtMjQgIEplcmVteSBKb25lcyAg
PGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBvcHRpbWl6ZWQgZnVsbHNjcmVlbiBt
b2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4
MDQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5h
YmxlIGRpZmZlcmVudCB0eXBlcyBvZiBmdWxsc2NyZWVuIHZpZGVvIGJlaGF2aW9yLgorICAgICAg
ICBBZGQgYW4gZW51bSBwYXJhbWV0ZXIgdG8gZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0Vs
ZW1lbnQgZm9yIGFsdGVybmF0ZSB0eXBlcyBvZiBmdWxsc2NyZWVuLgorCisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDogQWRkIGZ1bGxzY3Jl
ZW5UeXBlIHBhcmFtZXRlcgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBkaXR0bworICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCk6IGRp
dHRvCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2Ny
ZWVuRm9yVmlkZW9FbGVtZW50KTogZGl0dG8KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOiBkaXR0bworICAgICAgICAqIFdlYlByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDogZGl0dG8KKyAgICAgICAgKiBXZWJQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVu
dCk6IGRpdHRvCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRp
ZENsZWFudXBGdWxsc2NyZWVuKTogZGl0dG8KKwogMjAxNC0xMC0yMyAgQmVuamFtaW4gUG91bGFp
biAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIFdLMl0gSWYgYSBwYWdlIGhh
cyB0aGUgZXhhY3Qgc2FtZSBWaXNpYmxlQ29udGVudFJlY3QgYXMgdGhlIHBhZ2UgYmVmb3JlLCBp
dHMgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlIGNhbiBiZSBpZ25vcmVkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0
LmNwcAppbmRleCBlNjMxZWZmMzZlNTA2NDY1MTIwZTM0MDMyMzgzMzNjN2M1ZDUyZmNkLi5lYjMw
MmY0MGVkNjk5NjQxZjQ1NWU2MTE5NWJmOGE3N2UyYjEyNjM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5j
cHAKQEAgLTE4Nyw2ICsxODcsMTMgQEAgdm9pZCBNZWRpYUNvbnRyb2xzSG9zdDo6ZXhpdGVkRnVs
bHNjcmVlbigpCiAgICAgaWYgKG1fdGV4dFRyYWNrQ29udGFpbmVyKQogICAgICAgICBtX3RleHRU
cmFja0NvbnRhaW5lci0+ZXhpdGVkRnVsbHNjcmVlbigpOwogfQorICAgIAordm9pZCBNZWRpYUNv
bnRyb2xzSG9zdDo6ZW50ZXJGdWxsc2NyZWVuT3B0aW1pemVkKCkKK3sKKyNpZiBFTkFCTEUoT1BU
SU1JWkVEX0ZVTExTQ1JFRU4pCisgICAgbV9tZWRpYUVsZW1lbnQtPmVudGVyRnVsbHNjcmVlbk9w
dGltaXplZCgpOworI2VuZGlmCit9CiAKIHZvaWQgTWVkaWFDb250cm9sc0hvc3Q6OnVwZGF0ZUNh
cHRpb25EaXNwbGF5U2l6ZXMoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaAppbmRleCAxNjQ3MjJhZWQ4Nzcx
YjNmMjNjNzlkNjM2NTlkZjY4OGYyY2EyNjc2Li4xYmVhMzFlOWM0ZTY4YzgxNTFiM2MxYzYyMTdj
M2JiZDE3YTcwNDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29u
dHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCB1cGRhdGVDYXB0aW9uRGlzcGxheVNpemVzKCk7CiAgICAgdm9pZCBlbnRlcmVk
RnVsbHNjcmVlbigpOwogICAgIHZvaWQgZXhpdGVkRnVsbHNjcmVlbigpOworICAgIHZvaWQgZW50
ZXJGdWxsc2NyZWVuT3B0aW1pemVkKCk7CiAKICAgICBTdHJpbmcgZXh0ZXJuYWxEZXZpY2VEaXNw
bGF5TmFtZSgpIGNvbnN0OwogICAgIFN0cmluZyBleHRlcm5hbERldmljZVR5cGUoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNv
bnRyb2xzSG9zdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVk
aWFDb250cm9sc0hvc3QuaWRsCmluZGV4IDY4ZDA0OGIyZGViZGYyY2I1NjU1N2YyYTQyNWQwMTEx
NmYxMDQwNTAuLjhkZjVlODhiODhlMmZkNjA0OWJhMjQ4ODA2Mzg3Y2E2OGFjY2EwZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xz
SG9zdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlh
Q29udHJvbHNIb3N0LmlkbApAQCAtNTUsNCArNTUsNSBAQCBlbnVtIERldmljZVR5cGUgewogICAg
IHZvaWQgdXBkYXRlVGV4dFRyYWNrQ29udGFpbmVyKCk7CiAgICAgdm9pZCBlbnRlcmVkRnVsbHNj
cmVlbigpOwogICAgIHZvaWQgZXhpdGVkRnVsbHNjcmVlbigpOworICAgIHZvaWQgZW50ZXJGdWxs
c2NyZWVuT3B0aW1pemVkKCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNpT1MuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc2lPUy5qcwppbmRleCBhOTVkNzZiN2IxMTdh
OGRlM2ViMWU1MzZmNDIwZGE0NTI3NDU1NDhkLi42YmRiZjAzMDI0YmZjYTc2Y2Q3ZWFiZmFlM2Jh
ODBjZjcxYzczZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29u
dHJvbHMvbWVkaWFDb250cm9sc2lPUy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhY29udHJvbHMvbWVkaWFDb250cm9sc2lPUy5qcwpAQCAtMzIwLDEyICszMjAsMTcgQEAgQ29u
dHJvbGxlcklPUy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
dmFyIHZlbG9jaXR5ID0gTWF0aC5hYnMoZXZlbnQuc2NhbGUgLSAxKSAvIGR1cmF0aW9uOwotCi0g
ICAgICAgIGlmIChldmVudC5zY2FsZSA8IDEuMjUgfHwgdmVsb2NpdHkgPCAyKQorICAgICAgICAK
KyAgICAgICAgaWYgKHZlbG9jaXR5IDwgMikKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICBkZWxldGUgdGhpcy5nZXN0dXJlU3RhcnRUaW1lOwotICAgICAgICB0aGlzLnZpZGVvLndlYmtp
dEVudGVyRnVsbHNjcmVlbigpOworICAgICAgICBpZiAoZXZlbnQuc2NhbGUgPj0gMS4yNSkgewor
ICAgICAgICAgICAgZGVsZXRlIHRoaXMuZ2VzdHVyZVN0YXJ0VGltZTsKKyAgICAgICAgICAgIHRo
aXMudmlkZW8ud2Via2l0RW50ZXJGdWxsc2NyZWVuKCk7CisgICAgICAgIH0gZWxzZSBpZiAoZXZl
bnQuc2NhbGUgPD0gMC43NSkgeworICAgICAgICAgICAgZGVsZXRlIHRoaXMuZ2VzdHVyZVN0YXJ0
VGltZTsKKyAgICAgICAgICAgIHRoaXMuaG9zdC5lbnRlckZ1bGxzY3JlZW5PcHRpbWl6ZWQoKTsK
KyAgICAgICAgfQogICAgIH0sCiAKICAgICBoYW5kbGVCYXNlR2VzdHVyZUVuZDogZnVuY3Rpb24o
ZXZlbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggM2FmNDdlNDVhMTU2ZjFkNmQzNTEyYjk0
ZmY1ZTQxOTBmNjU2NDBlZS4uY2E1YTY4OTI1MjQ3OTJkMzFmN2YwY2M5MTQxNWNiMGM1NGU0MTJm
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTM0NjAsNyArMzQ2MCw3IEBAIF9fWk43V2ViQ29y
ZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxMXNldER1cmF0aW9uRWQKIF9fWk43
V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNGV4aXRGdWxsc2NyZWVu
RU5TXzdJbnRSZWN0RQogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDE0c2V0Q3VycmVudFRpbWVFZGQKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQxNWVudGVyRnVsbHNjcmVlbkV2Ci1fX1pON1dlYkNvcmUzMldlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTVzZXR1cEZ1bGxzY3JlZW5FUjdDQUxheWVyTlNfN0lu
dFJlY3RFUDZVSVZpZXcKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQxNXNldHVwRnVsbHNjcmVlbkVSN0NBTGF5ZXJOU183SW50UmVjdEVQNlVJVmlld05TXzE2
SFRNTE1lZGlhRWxlbWVudDE5VmlkZW9GdWxsc2NyZWVuVHlwZUUKIF9fWk43V2ViQ29yZTMyV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxN2NsZWFudXBGdWxsc2NyZWVuRXYKIF9fWk43
V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxN3NldFNlZWthYmxlUmFu
Z2VzRVJLTlNfMTBUaW1lUmFuZ2VzRQogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDE4c2V0VmlkZW9EaW1lbnNpb25zRWJmZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYTM3ZGVhNzdhMzJjMDM4Y2IwMzc5ZmY2YTE2OTA4
MWRmZjc4ODY0Ni4uOTdhNGI5NTkxZDEzZGU3NWM1ODczYWU2ZDkyOWRmOGJjMGYwZTA0OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0yNzMsNiArMjczLDcg
QEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1fY2xvY2tUaW1lQXRMYXN0VXBkYXRl
RXZlbnQoMCkKICAgICAsIG1fbGFzdFRpbWVVcGRhdGVFdmVudE1vdmllVGltZShNZWRpYVRpbWU6
OnBvc2l0aXZlSW5maW5pdGVUaW1lKCkpCiAgICAgLCBtX2xvYWRTdGF0ZShXYWl0aW5nRm9yU291
cmNlKQorICAgICwgbV92aWRlb0Z1bGxzY3JlZW5UeXBlKFZpZGVvRnVsbHNjcmVlblR5cGVOb25l
KQogI2lmIFBMQVRGT1JNKElPUykKICAgICAsIG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eShNZWRp
YVBsYXllcjo6VmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0KQogI2VuZGlmCkBAIC0zMDIsNyArMzAz
LDYgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1fc2VudEVuZEV2ZW50KGZhbHNl
KQogICAgICwgbV9wYXVzZWRJbnRlcm5hbChmYWxzZSkKICAgICAsIG1fc2VuZFByb2dyZXNzRXZl
bnRzKHRydWUpCi0gICAgLCBtX2lzSW5WaWRlb0Z1bGxzY3JlZW4oZmFsc2UpCiAgICAgLCBtX2Ns
b3NlZENhcHRpb25zVmlzaWJsZShmYWxzZSkKICAgICAsIG1fd2Via2l0TGVnYWN5Q2xvc2VkQ2Fw
dGlvbk92ZXJyaWRlKGZhbHNlKQogICAgICwgbV9jb21wbGV0ZWx5TG9hZGVkKGZhbHNlKQpAQCAt
Njc5LDcgKzY3OSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlZEZyb20oQ29udGFp
bmVyTm9kZSYgaW5zZXJ0aW9uUG9pbnQpCiAgICAgICAgICAgICBtZWRpYUNvbnRyb2xzKCktPmhp
ZGUoKTsKICAgICAgICAgaWYgKG1fbmV0d29ya1N0YXRlID4gTkVUV09SS19FTVBUWSkKICAgICAg
ICAgICAgIHBhdXNlKCk7Ci0gICAgICAgIGlmIChtX2lzSW5WaWRlb0Z1bGxzY3JlZW4pCisgICAg
ICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlblR5cGUgIT0gVmlkZW9GdWxsc2NyZWVuVHlwZU5vbmUp
CiAgICAgICAgICAgICBleGl0RnVsbHNjcmVlbigpOwogCiAgICAgICAgIGlmIChtX3BsYXllcikg
ewpAQCAtNDY3MCw3ICs0NjcwLDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpjYW5TdXNwZW5k
KCkgY29uc3QKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c3RvcCgpCiB7CiAgICAgTE9HKE1lZGlh
LCAiSFRNTE1lZGlhRWxlbWVudDo6c3RvcCglcCkiLCB0aGlzKTsKLSAgICBpZiAobV9pc0luVmlk
ZW9GdWxsc2NyZWVuKQorICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlblR5cGUgIT0gVmlkZW9GdWxs
c2NyZWVuVHlwZU5vbmUpCiAgICAgICAgIGV4aXRGdWxsc2NyZWVuKCk7CiAgICAgCiAgICAgbV9p
bkFjdGl2ZURvY3VtZW50ID0gZmFsc2U7CkBAIC00NzY1LDcgKzQ3NjUsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKQogI2lmIEVOQUJMRShWSURFT19U
UkFDSykKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faXNJblZpZGVvRnVsbHNjcmVlbiAmJiBtX3Bs
YXllciA/IG1fcGxheWVyLT5yZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgOiBmYWxz
ZTsKKyAgICByZXR1cm4gKG1fdmlkZW9GdWxsc2NyZWVuVHlwZSAhPSBWaWRlb0Z1bGxzY3JlZW5U
eXBlTm9uZSkgJiYgbV9wbGF5ZXIgPyBtX3BsYXllci0+cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbigpIDogZmFsc2U7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0VGV4dFRy
YWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50YXRpb24qIHJlcHJlc2VudGF0aW9u
KQpAQCAtNDg1Nyw3ICs0ODU3LDcgQEAgZG91YmxlIEhUTUxNZWRpYUVsZW1lbnQ6Om1heEZhc3RG
b3J3YXJkUmF0ZSgpIGNvbnN0CiAgICAgCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmlzRnVsbHNj
cmVlbigpIGNvbnN0CiB7Ci0gICAgaWYgKG1faXNJblZpZGVvRnVsbHNjcmVlbikKKyAgICBpZiAo
bV92aWRlb0Z1bGxzY3JlZW5UeXBlICE9IFZpZGVvRnVsbHNjcmVlblR5cGVOb25lKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCkBAIC00ODc4
LDEwICs0ODc4LDExIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dG9nZ2xlRnVsbHNjcmVlblN0
YXRlKCkKICAgICAgICAgZW50ZXJGdWxsc2NyZWVuKCk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6ZW50ZXJGdWxsc2NyZWVuKCkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxs
c2NyZWVuKFZpZGVvRnVsbHNjcmVlblR5cGUgdHlwZSkKIHsKICAgICBMT0coTWVkaWEsICJIVE1M
TWVkaWFFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4oJXApIiwgdGhpcyk7Ci0gICAgaWYgKG1faXNJ
blZpZGVvRnVsbHNjcmVlbikKKyAgICBBU1NFUlQodHlwZSAhPSBWaWRlb0Z1bGxzY3JlZW5UeXBl
Tm9uZSk7CisgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuVHlwZSAhPSBWaWRlb0Z1bGxzY3JlZW5U
eXBlTm9uZSkKICAgICAgICAgcmV0dXJuOwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpA
QCAtNDg5MSwxOCArNDg5MiwyMyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNj
cmVlbigpCiAgICAgfQogI2VuZGlmCiAKLSAgICBtX2lzSW5WaWRlb0Z1bGxzY3JlZW4gPSB0cnVl
OworICAgIG1fdmlkZW9GdWxsc2NyZWVuVHlwZSA9IHR5cGU7CiAgICAgaWYgKGhhc01lZGlhQ29u
dHJvbHMoKSkKICAgICAgICAgbWVkaWFDb250cm9scygpLT5lbnRlcmVkRnVsbHNjcmVlbigpOwog
ICAgIGlmIChkb2N1bWVudCgpLnBhZ2UoKSAmJiBpczxIVE1MVmlkZW9FbGVtZW50PigqdGhpcykp
IHsKICAgICAgICAgSFRNTFZpZGVvRWxlbWVudCYgYXNWaWRlbyA9IGRvd25jYXN0PEhUTUxWaWRl
b0VsZW1lbnQ+KCp0aGlzKTsKICAgICAgICAgaWYgKGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUo
KS5jbGllbnQoKS5zdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbigpKSB7Ci0gICAgICAgICAgICBkb2N1
bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JW
aWRlb0VsZW1lbnQoJmFzVmlkZW8pOworICAgICAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNo
cm9tZSgpLmNsaWVudCgpLmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KCZhc1Zp
ZGVvLCBtX3ZpZGVvRnVsbHNjcmVlblR5cGUpOwogICAgICAgICAgICAgc2NoZWR1bGVFdmVudChl
dmVudE5hbWVzKCkud2Via2l0YmVnaW5mdWxsc2NyZWVuRXZlbnQpOwogICAgICAgICB9CiAgICAg
fQogfQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbigpCit7CisgICAg
ZW50ZXJGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVlblR5cGVTdGFuZGFyZCk7Cit9CisKIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6ZXhpdEZ1bGxzY3JlZW4oKQogewogICAgIExPRyhNZWRpYSwgIkhU
TUxNZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVuKCVwKSIsIHRoaXMpOwpAQCAtNDkxNCw4ICs0
OTIwLDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpleGl0RnVsbHNjcmVlbigpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAjZW5kaWYKLSAgICBBU1NFUlQobV9pc0luVmlkZW9GdWxsc2NyZWVu
KTsKLSAgICBtX2lzSW5WaWRlb0Z1bGxzY3JlZW4gPSBmYWxzZTsKKyAgICBBU1NFUlQobV92aWRl
b0Z1bGxzY3JlZW5UeXBlICE9IFZpZGVvRnVsbHNjcmVlblR5cGVOb25lKTsKKyAgICBtX3ZpZGVv
RnVsbHNjcmVlblR5cGUgPSBWaWRlb0Z1bGxzY3JlZW5UeXBlTm9uZTsKICAgICBpZiAoaGFzTWVk
aWFDb250cm9scygpKQogICAgICAgICBtZWRpYUNvbnRyb2xzKCktPmV4aXRlZEZ1bGxzY3JlZW4o
KTsKICAgICBpZiAoZG9jdW1lbnQoKS5wYWdlKCkgJiYgaXM8SFRNTFZpZGVvRWxlbWVudD4oKnRo
aXMpKSB7CkBAIC00OTI5LDYgKzQ5MzUsMTEgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpleGl0
RnVsbHNjcmVlbigpCiAgICAgfQogfQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVs
bHNjcmVlbk9wdGltaXplZCgpCit7CisgICAgZW50ZXJGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVl
blR5cGVPcHRpbWl6ZWQpOworfQorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZEJlY29tZUZ1
bGxzY3JlZW5FbGVtZW50KCkKIHsKICAgICBpZiAoaGFzTWVkaWFDb250cm9scygpKQpAQCAtNjAw
Miw2ICs2MDEzLDkgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpvdmVycmlkZUJhY2tncm91bmRQ
bGF5YmFja1Jlc3RyaWN0aW9uKCkgY29uc3QKICAgICBpZiAobV9wbGF5ZXIgJiYgbV9wbGF5ZXIt
PmlzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3MoKSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAjZW5kaWYKKyAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5UeXBlID09IFZpZGVvRnVsbHNjcmVl
blR5cGVPcHRpbWl6ZWQpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIAogICAgIHJldHVybiBm
YWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBiM2Fm
MDA3MDRlMzEyMGEyOWUyNTNlYzMyN2VkZGZmNzRiZDlhOTcyLi4zNDNkM2NkYjZlZTkyY2U2MzYz
N2U5YTA1YmY5N2VkNDkxZWY1MTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaApAQCAtMzkwLDggKzM5MCwxMSBAQCBwdWJsaWM6CiAgICAgCiAgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCBib29sIGlzRnVsbHNjcmVlbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQg
dG9nZ2xlRnVsbHNjcmVlblN0YXRlKCk7CisgICAgZW51bSBWaWRlb0Z1bGxzY3JlZW5UeXBlIHsg
VmlkZW9GdWxsc2NyZWVuVHlwZU5vbmUsIFZpZGVvRnVsbHNjcmVlblR5cGVTdGFuZGFyZCwgVmlk
ZW9GdWxsc2NyZWVuVHlwZU9wdGltaXplZCB9OworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKFZp
ZGVvRnVsbHNjcmVlblR5cGUpOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBv
dmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV4aXRGdWxsc2NyZWVuKCk7CisgICAg
dm9pZCBlbnRlckZ1bGxzY3JlZW5PcHRpbWl6ZWQoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBoYXND
bG9zZWRDYXB0aW9ucygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjbG9zZWRD
YXB0aW9uc1Zpc2libGUoKSBjb25zdCBvdmVycmlkZTsKQEAgLTc2NCw2ICs3NjcsNyBAQCBwcml2
YXRlOgogICAgIFJlZlB0cjxIVE1MU291cmNlRWxlbWVudD4gbV9jdXJyZW50U291cmNlTm9kZTsK
ICAgICBSZWZQdHI8Tm9kZT4gbV9uZXh0Q2hpbGROb2RlVG9Db25zaWRlcjsKIAorICAgIFZpZGVv
RnVsbHNjcmVlblR5cGUgbV92aWRlb0Z1bGxzY3JlZW5UeXBlOwogI2lmIFBMQVRGT1JNKElPUykK
ICAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV92aWRlb0Z1bGxzY3JlZW5MYXllcjsKICAg
ICBGbG9hdFJlY3QgbV92aWRlb0Z1bGxzY3JlZW5GcmFtZTsKQEAgLTgyNyw3ICs4MzEsNiBAQCBw
cml2YXRlOgogICAgIC8vIHN1cHBvcnQgcHJvZ3Jlc3MgZXZlbnRzIHNvIHNldHRpbmcgbV9zZW5k
UHJvZ3Jlc3NFdmVudHMgZGlzYWJsZXMgdGhlbSAKICAgICBib29sIG1fc2VuZFByb2dyZXNzRXZl
bnRzIDogMTsKIAotICAgIGJvb2wgbV9pc0luVmlkZW9GdWxsc2NyZWVuIDogMTsKICAgICBib29s
IG1fY2xvc2VkQ2FwdGlvbnNWaXNpYmxlIDogMTsKICAgICBib29sIG1fd2Via2l0TGVnYWN5Q2xv
c2VkQ2FwdGlvbk92ZXJyaWRlIDogMTsKICAgICBib29sIG1fY29tcGxldGVseUxvYWRlZCA6IDE7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyODdmZWFjZTlhYjQ4ZGNlMTc4ZDFm
NDg5YmQyZDdiNzFjNTk4NTczLi5lZTQ1YmQ5ZDBlNzE0YmU0ODgxNTdhNmI5OGQ3NDRhMzUwYzNj
MjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNp
bmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNsdWRlICJMYXllckZsdXNoVGhyb3R0bGVTdGF0
ZS5oIgogI2luY2x1ZGUgIlBvcHVwTWVudS5oIgpAQCAtMzM4LDcgKzMzOSw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JW
aWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBlbnRl
clZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50KiwgSFRNTE1l
ZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuVHlwZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGV4
aXRWaWRlb0Z1bGxzY3JlZW4oKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNGdWxsc2Ny
ZWVuRm9yVmlkZW9QbGF5YmFjaygpIHsgcmV0dXJuIGZhbHNlOyB9IAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFW
S2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlckFWS2l0LmgKaW5kZXggODMyNTMwZjU5MzdlNzhkOGYxZGFmOTM1OGUzMjAyYWYyYzA1
YTlmNi4uYzhjYzQ2MjZkZDFiYTE2YTY5MzU1ODI3ZTJiOGM3ZTJjNmI0Y2IzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJBVktpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQVZLaXQuaApAQCAtMzUsNyArMzUsNyBAQCBPQkpDX0NMQVNTIFVJVmll
dzsKIFdFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxl
ciA6IE5TT2JqZWN0CiAtICh2b2lkKXNldFZpZGVvRWxlbWVudDooV2ViQ29yZTo6SFRNTFZpZGVv
RWxlbWVudCopdmlkZW9FbGVtZW50OwogLSAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCopdmlk
ZW9FbGVtZW50OwotLSAodm9pZCllbnRlckZ1bGxzY3JlZW46KFVJVmlldyAqKXZpZXc7CistICh2
b2lkKWVudGVyRnVsbHNjcmVlbjooVUlWaWV3ICopdmlldyB0eXBlOihXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5UeXBlKXR5cGU7CiAtICh2b2lkKWV4aXRGdWxsc2Ny
ZWVuOwogLSAodm9pZClyZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuOwogQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXJBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQVZLaXQubW0KaW5kZXggODhhZjE5OThiNmZkM2QwMGUzOTljZDg5Nzc0
MjA4NTc5N2Q2Njk1Yi4uODhiYWIwOTBlMzU3N2U5OTcyNzBkMDk1Njg0ZTIyMzJmMzAxYzZlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bkNvbnRyb2xsZXJBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCkBAIC0xMTQsNyArMTE0LDcgQEAgcHVi
bGljOgogICAgIHJldHVybiBfdmlkZW9FbGVtZW50LmdldCgpOwogfQogCi0tICh2b2lkKWVudGVy
RnVsbHNjcmVlbjooVUlWaWV3ICopdmlldworLSAodm9pZCllbnRlckZ1bGxzY3JlZW46KFVJVmll
dyAqKXZpZXcgdHlwZTooSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuVHlwZSl0eXBl
CiB7CiAgICAgW3NlbGYgcmV0YWluXTsgLy8gQmFsYW5jZWQgYnkgLXJlbGVhc2UgaW4gZGlkRXhp
dEZ1bGxzY3JlZW46CiAgICAgCkBAIC0xMjUsNyArMTI1LDcgQEAgcHVibGljOgogICAgIF9pbnRl
cmZhY2UtPnNldFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKF9tb2RlbC5nZXQoKSk7CiAgICAgX21v
ZGVsLT5zZXRWaWRlb0VsZW1lbnQoX3ZpZGVvRWxlbWVudC5nZXQoKSk7CiAgICAgX3ZpZGVvRnVs
bHNjcmVlbkxheWVyID0gW0NBTGF5ZXIgbGF5ZXJdOwotICAgIF9pbnRlcmZhY2UtPnNldHVwRnVs
bHNjcmVlbigqX3ZpZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpLCBfdmlkZW9FbGVtZW50LT5jbGll
bnRSZWN0KCksIHZpZXcpOworICAgIF9pbnRlcmZhY2UtPnNldHVwRnVsbHNjcmVlbigqX3ZpZGVv
RnVsbHNjcmVlbkxheWVyLmdldCgpLCBfdmlkZW9FbGVtZW50LT5jbGllbnRSZWN0KCksIHZpZXcs
IHR5cGUpOwogfQogCiAtICh2b2lkKWV4aXRGdWxsc2NyZWVuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oCmluZGV4IGQ3YzEyNDQxZjVlNjQzYmIyODA5OWQ3ZmY1ODJlNzM5OWRkMWJmODQuLmYw
YzAwMmI1ZmJjYmZkMDY2NmIyYTM2ZWIwNWJhNTYyNzExZmZmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaWYgUExBVEZPUk0oSU9TKSAmJiBfX0lQ
SE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSA4MDAwMAogCiAjaW5jbHVkZSA8V2ViQ29y
ZS9FdmVudExpc3RlbmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBA
IC02MywyMyArNjQsNyBAQCBwdWJsaWM6CiBjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdAogICAgIDogcHVibGljIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZQogICAgICwg
cHVibGljIFJlZkNvdW50ZWQ8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHsKLSAg
ICAgICAgCi0gICAgUmV0YWluUHRyPFdlYkFWUGxheWVyQ29udHJvbGxlcj4gbV9wbGF5ZXJDb250
cm9sbGVyOwotICAgIFJldGFpblB0cjxBVlBsYXllclZpZXdDb250cm9sbGVyPiBtX3BsYXllclZp
ZXdDb250cm9sbGVyOwotICAgIFJldGFpblB0cjxDQUxheWVyPiBtX3ZpZGVvTGF5ZXI7Ci0gICAg
UmV0YWluUHRyPFdlYkFWVmlkZW9MYXllcj4gbV92aWRlb0xheWVyQ29udGFpbmVyOwotICAgIFdl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsKiBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsOwotICAgIFdlYlZp
ZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKiBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcjsK
IAotICAgIC8vIFRoZXNlIGFyZSBvbmx5IHVzZWQgd2hlbiBmdWxsc2NyZWVuIGlzIHByZXNlbnRl
ZCBpbiBhIHNlcGFyYXRlIHdpbmRvdy4KLSAgICBSZXRhaW5QdHI8VUlXaW5kb3c+IG1fd2luZG93
OwotICAgIFJldGFpblB0cjxVSVZpZXdDb250cm9sbGVyPiBtX3ZpZXdDb250cm9sbGVyOwotICAg
IFJldGFpblB0cjxVSVZpZXc+IG1fcGFyZW50VmlldzsKLQotICAgIFdlYkFWUGxheWVyQ29udHJv
bGxlciAqcGxheWVyQ29udHJvbGxlcigpOwotICAgIAotICAgIHZvaWQgZG9FbnRlckZ1bGxzY3Jl
ZW4oKTsKLSAgICAgICAgCiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQoKTsKICAgICB2aXJ0dWFsIH5XZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdCgpIHsgfQpAQCAtOTUsMTMgKzgwLDM0IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29u
c3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCkg
b3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNldExlZ2libGVNZWRp
YVNlbGVjdGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgb3B0aW9ucywgdWlu
dDY0X3Qgc2VsZWN0ZWRJbmRleCkgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB2b2lkIHNldEV4dGVybmFsUGxheWJhY2soYm9vbCBlbmFibGVkLCBFeHRlcm5hbFBsYXliYWNr
VGFyZ2V0VHlwZSwgV1RGOjpTdHJpbmcgbG9jYWxpemVkRGV2aWNlTmFtZSkgb3ZlcnJpZGU7Ci0K
LSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0dXBGdWxsc2NyZWVuKFBsYXRmb3Jt
TGF5ZXImLCBJbnRSZWN0IGluaXRpYWxSZWN0LCBVSVZpZXcgKik7CisgICAgCisgICAgV0VCQ09S
RV9FWFBPUlQgdmlydHVhbCB2b2lkIHNldHVwRnVsbHNjcmVlbihQbGF0Zm9ybUxheWVyJiwgSW50
UmVjdCBpbml0aWFsUmVjdCwgVUlWaWV3ICosIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNj
cmVlblR5cGUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3Jl
ZW4oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxzY3JlZW4oSW50
UmVjdCBmaW5hbFJlY3QpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBjbGVhbnVw
RnVsbHNjcmVlbigpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHJlcXVlc3RIaWRlQW5kRXhpdEZ1
bGxzY3JlZW4oKTsKKyAgICAKK3Byb3RlY3RlZDoKKyAgICAgICAgCisgICAgUmV0YWluUHRyPFdl
YkFWUGxheWVyQ29udHJvbGxlcj4gbV9wbGF5ZXJDb250cm9sbGVyOworICAgIFJldGFpblB0cjxB
VlBsYXllclZpZXdDb250cm9sbGVyPiBtX3BsYXllclZpZXdDb250cm9sbGVyOworICAgIFJldGFp
blB0cjxDQUxheWVyPiBtX3ZpZGVvTGF5ZXI7CisgICAgUmV0YWluUHRyPFdlYkFWVmlkZW9MYXll
cj4gbV92aWRlb0xheWVyQ29udGFpbmVyOworICAgIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKiBt
X3ZpZGVvRnVsbHNjcmVlbk1vZGVsOworICAgIFdlYlZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2Vy
dmVyKiBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcjsKKworICAgIC8vIFRoZXNlIGFyZSBvbmx5
IHVzZWQgd2hlbiBmdWxsc2NyZWVuIGlzIHByZXNlbnRlZCBpbiBhIHNlcGFyYXRlIHdpbmRvdy4K
KyAgICBSZXRhaW5QdHI8VUlXaW5kb3c+IG1fd2luZG93OworICAgIFJldGFpblB0cjxVSVZpZXdD
b250cm9sbGVyPiBtX3ZpZXdDb250cm9sbGVyOworICAgIFJldGFpblB0cjxVSVZpZXc+IG1fcGFy
ZW50VmlldzsKKyAgICBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5UeXBlIG1fdHlw
ZTsKKyAgICBib29sIG1fZXhpdFJlcXVlc3RlZDsKKyAgICBib29sIG1fZXhpdENvbXBsZXRlZDsK
KworICAgIFdlYkFWUGxheWVyQ29udHJvbGxlciAqcGxheWVyQ29udHJvbGxlcigpOworICAgIAor
ICAgIHZvaWQgZG9FbnRlckZ1bGxzY3JlZW4oKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdC5tbQppbmRleCA5ZTMyYWQwOWZmNTE4NDAxMzUyNmVjMDBiNzc0YzI4NGY5ZTFhMzkw
Li41YzdkZDBlOWM4MzlkOWMyODY4ZWFkODIwMWUzNzY0YmM3NTM1NjRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0Lm1tCkBAIC0xNTcsNiArMTU3LDEwIEBAIFNPRlRfTElOS19DT05TVEFO
VChDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUpCiAgICAgW3N1cGVyIGRlYWxs
b2NdOwogfQogCistIChBVlBsYXllciopIHBsYXllciB7CisgICAgcmV0dXJuIG5pbDsKK30KKwog
LSAoaWQpZm9yd2FyZGluZ1RhcmdldEZvclNlbGVjdG9yOihTRUwpc2VsZWN0b3IKIHsKICAgICBV
TlVTRURfUEFSQU0oc2VsZWN0b3IpOwpAQCAtNDYwLDYgKzQ2NCwxOCBAQCBTT0ZUX0xJTktfQ09O
U1RBTlQoQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogICAgIHJldHVybiBb
TlNTZXQgc2V0V2l0aE9iamVjdHM6QCJleHRlcm5hbFBsYXliYWNrQWN0aXZlIiwgbmlsXTsKIH0K
IAorLSAodm9pZClsYXlvdXRTdWJsYXllcnNPZkxheWVyOihDQUxheWVyICopbGF5ZXIKK3sKKyAg
ICBDR1JlY3QgbGF5ZXJCb3VuZHMgPSBbbGF5ZXIgYm91bmRzXTsKKyAgICBzZWxmLmRlbGVnYXRl
LT5zZXRWaWRlb0xheWVyRnJhbWUoQ0dSZWN0TWFrZSgwLCAwLCBDR1JlY3RHZXRXaWR0aChsYXll
ckJvdW5kcyksIENHUmVjdEdldEhlaWdodChsYXllckJvdW5kcykpKTsKKyAgICAKKyAgICBbQ0FU
cmFuc2FjdGlvbiBiZWdpbl07CisgICAgZm9yIChDQUxheWVyICpzdWJsYXllciBpbiBbbGF5ZXIg
c3VibGF5ZXJzXSkgeworICAgICAgICBbc3VibGF5ZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludE1h
a2UoMC41LCAwLjUpXTsKKyAgICAgICAgW3N1YmxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtl
KENHUmVjdEdldE1pZFgobGF5ZXJCb3VuZHMpLCBDR1JlY3RHZXRNaWRZKGxheWVyQm91bmRzKSld
OworICAgIH0KKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworfQogQGVuZAogCiBAaW50ZXJm
YWNlIFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24gOiBOU09iamVjdApAQCAtNzcyLDEyICs3ODgs
MjAgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0RXh0ZXJuYWxQ
bGF5YmFjayhib29sIGVuYWJsZWQsIEV4dGVybmEKICAgICB9KTsKIH0KIAotdm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0dXBGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXIm
IHZpZGVvTGF5ZXIsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QsIFVJVmlldyogcGFyZW50
VmlldykKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVwRnVsbHNj
cmVlbihQbGF0Zm9ybUxheWVyJiB2aWRlb0xheWVyLCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxS
ZWN0LCBVSVZpZXcqIHBhcmVudFZpZXcsIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVl
blR5cGUgdHlwZSkKIHsKICAgICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdD4gcHJvdGVjdCh0aGlzKTsKICAgICAKKyAgICBBU1NFUlQodHlwZSAhPSBIVE1M
TWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5UeXBlTm9uZSk7CiAgICAgbV92aWRlb0xheWVy
ID0gJnZpZGVvTGF5ZXI7CiAgICAgCisjaWYgRU5BQkxFKE9QVElNSVpFRF9GVUxMU0NSRUVOKQor
ICAgIG1fdHlwZSA9IHR5cGU7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0eXBlKTsKKyAgICBt
X3R5cGUgPSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5UeXBlU3RhbmRhcmQ7Cisj
ZW5kaWYKKyAgICAKICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
LCBeewogCiAgICAgICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKQEAgLTgzOSwxOSArODYzLDU4
IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVl
bigpCiB7CiAgICAgX19ibG9jayBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ+IHByb3RlY3QodGhpcyk7CiAgICAgCisgICAgbV9leGl0Q29tcGxldGVkID0gZmFsc2U7Cisg
ICAgbV9leGl0UmVxdWVzdGVkID0gZmFsc2U7CisgICAgCiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKICAgICAgICAgW21fdmlkZW9MYXllckNvbnRhaW5l
ciBzZXRCYWNrZ3JvdW5kQ29sb3I6W1tnZXRVSUNvbG9yQ2xhc3MoKSBibGFja0NvbG9yXSBDR0Nv
bG9yXV07Ci0gICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIGVudGVyRnVsbFNjcmVlbldp
dGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wsIE5TRXJyb3IqKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRTaG93c1BsYXliYWNrQ29udHJvbHM6WUVT
XTsKLQotICAgICAgICAgICAgV2ViVGhyZWFkUnVuKF57Ci0gICAgICAgICAgICAgICAgaWYgKG1f
ZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKQotICAgICAgICAgICAgICAgICAgICBtX2Z1bGxzY3Jl
ZW5DaGFuZ2VPYnNlcnZlci0+ZGlkRW50ZXJGdWxsc2NyZWVuKCk7Ci0KLSAgICAgICAgICAgICAg
ICBwcm90ZWN0ID0gbnVsbHB0cjsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9XTsKKyNpZiBF
TkFCTEUoT1BUSU1JWkVEX0ZVTExTQ1JFRU4pCisgICAgICAgIGlmIChtX3R5cGUgPT0gSFRNTE1l
ZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuVHlwZU9wdGltaXplZCkgeworICAgICAgICAgICAg
W21fcGxheWVyVmlld0NvbnRyb2xsZXIgc3RhcnRPcHRpbWl6ZWRGdWxsc2NyZWVuV2l0aFN0YXJ0
Q29tcGxldGlvbkhhbmRsZXI6XihCT09MIHN1Y2Nlc3MsIE5TRXJyb3IgKikgeworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldFNob3dz
UGxheWJhY2tDb250cm9sczpZRVNdOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IFdlYlRocmVhZFJ1biheeworICAgICAgICAgICAgICAgICAgICBbbV93aW5kb3cgc2V0SGlkZGVu
OllFU107CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZl
cikKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5k
aWRFbnRlckZ1bGxzY3JlZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgICAgIGlmICghc3VjY2VzcykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fdmlk
ZW9GdWxsc2NyZWVuTW9kZWwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV92aWRlb0Z1
bGxzY3JlZW5Nb2RlbC0+cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfSBzdG9wQ29tcGxldGlvbkhhbmRsZXI6XnsKKyAg
ICAgICAgICAgICAgICBtX2V4aXRDb21wbGV0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIGlm
IChtX2V4aXRSZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgW21fdmlkZW9MYXllckNv
bnRhaW5lciBzZXRCYWNrZ3JvdW5kQ29sb3I6W1tnZXRVSUNvbG9yQ2xhc3MoKSBjbGVhckNvbG9y
XSBDR0NvbG9yXV07CisgICAgICAgICAgICAgICAgICAgIFtbbV9wbGF5ZXJWaWV3Q29udHJvbGxl
ciB2aWV3XSBzZXRCYWNrZ3JvdW5kQ29sb3I6W2dldFVJQ29sb3JDbGFzcygpIGNsZWFyQ29sb3Jd
XTsKKyAgICAgICAgICAgICAgICAgICAgV2ViVGhyZWFkUnVuKF57CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZEV4aXRGdWxsc2NyZWVu
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwpCisgICAgICAgICAgICAgICAgICAgICAg
ICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5yZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9XTsKKyAgICAgICAgfSBlbHNlCisjZW5kaWYKKyAg
ICAgICAgaWYgKG1fdHlwZSA9PSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5UeXBl
U3RhbmRhcmQpIHsKKyAgICAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIGVudGVyRnVs
bFNjcmVlbldpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wsIE5TRXJyb3IqKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldFNob3dzUGxh
eWJhY2tDb250cm9sczpZRVNdOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFdl
YlRocmVhZFJ1biheeworICAgICAgICAgICAgICAgICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNl
cnZlci0+ZGlkRW50ZXJGdWxsc2NyZWVuKCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIH1dOworICAgICAgICB9CiAgICAgfSk7CiB9CiAKQEAgLTg1OSw2ICs5MjIsMTYg
QEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4o
V2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3QKIHsKICAgICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gcHJvdGVjdCh0aGlzKTsKICAgICAKKyAgICBtX2V4
aXRSZXF1ZXN0ZWQgPSB0cnVlOworICAgIGlmIChtX2V4aXRDb21wbGV0ZWQpIHsKKyAgICAgICAg
V2ViVGhyZWFkUnVuKF57CisgICAgICAgICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2
ZXIpCisgICAgICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZEV4aXRG
dWxsc2NyZWVuKCk7CisgICAgICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKKyAgICAgICAgfSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCiAgICAgbV9wbGF5ZXJDb250cm9sbGVyID0g
bmlsOwogICAgIAogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCks
IF57CkBAIC04NzEsMTYgKzk0NCwyNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpleGl0RnVsbHNjcmVlbihXZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdAogICAgICAg
ICBpZiAoW21fdmlkZW9MYXllckNvbnRhaW5lciB2aWRlb0xheWVyR3Jhdml0eV0gIT0gQVZWaWRl
b0xheWVyR3Jhdml0eVJlc2l6ZUFzcGVjdCkKICAgICAgICAgICAgIFttX3ZpZGVvTGF5ZXJDb250
YWluZXIgc2V0VmlkZW9MYXllckdyYXZpdHk6QVZWaWRlb0xheWVyR3Jhdml0eVJlc2l6ZUFzcGVj
dF07CiAgICAgICAgIFtbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBsYXlvdXRJZk5lZWRl
ZF07Ci0gICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVuV2l0aENv
bXBsZXRpb25IYW5kbGVyOl4oQk9PTCwgTlNFcnJvciopIHsKLSAgICAgICAgICAgIFttX3ZpZGVv
TGF5ZXJDb250YWluZXIgc2V0QmFja2dyb3VuZENvbG9yOltbZ2V0VUlDb2xvckNsYXNzKCkgY2xl
YXJDb2xvcl0gQ0dDb2xvcl1dOwotICAgICAgICAgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVy
IHZpZXddIHNldEJhY2tncm91bmRDb2xvcjpbZ2V0VUlDb2xvckNsYXNzKCkgY2xlYXJDb2xvcl1d
OworICAgICAgICAKKyNpZiBFTkFCTEUoT1BUSU1JWkVEX0ZVTExTQ1JFRU4pCisgICAgICAgIGlm
IChtX3R5cGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuVHlwZU9wdGltaXpl
ZCkgeworICAgICAgICAgICAgW21fd2luZG93IHNldEhpZGRlbjpOT107CiAKLSAgICAgICAgICAg
IFdlYlRocmVhZFJ1biheewotICAgICAgICAgICAgICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VP
YnNlcnZlcikKLSAgICAgICAgICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIt
PmRpZEV4aXRGdWxsc2NyZWVuKCk7Ci0gICAgICAgICAgICAgICAgcHJvdGVjdCA9IG51bGxwdHI7
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfV07CisgICAgICAgICAgICBbbV9wbGF5ZXJWaWV3
Q29udHJvbGxlciBzdG9wT3B0aW1pemVkRnVsbHNjcmVlbl07CisgICAgICAgIH0gZWxzZQorI2Vu
ZGlmCisgICAgICAgIGlmIChtX3R5cGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2Ny
ZWVuVHlwZVN0YW5kYXJkKSB7CisgICAgICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBl
eGl0RnVsbFNjcmVlbldpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wsIE5TRXJyb3IqKSB7Cisg
ICAgICAgICAgICAgICAgbV9leGl0Q29tcGxldGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBb
bV92aWRlb0xheWVyQ29udGFpbmVyIHNldEJhY2tncm91bmRDb2xvcjpbW2dldFVJQ29sb3JDbGFz
cygpIGNsZWFyQ29sb3JdIENHQ29sb3JdXTsKKyAgICAgICAgICAgICAgICBbW21fcGxheWVyVmll
d0NvbnRyb2xsZXIgdmlld10gc2V0QmFja2dyb3VuZENvbG9yOltnZXRVSUNvbG9yQ2xhc3MoKSBj
bGVhckNvbG9yXV07CisgICAgICAgICAgICAgICAgV2ViVGhyZWFkUnVuKF57CisgICAgICAgICAg
ICAgICAgICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5kaWRFeGl0RnVsbHNjcmVlbigp
OworICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgfV07CisgICAgICAgIH0KICAgICB9KTsKIH0KIApAQCAtOTUy
LDggKzEwMzYsMTAgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6aW52
YWxpZGF0ZSgpCiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJlcXVl
c3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4oKQogeworICAgIGlmIChtX3R5cGUgPT0gSFRNTE1lZGlh
RWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuVHlwZU9wdGltaXplZCkKKyAgICAgICAgcmV0dXJuOwor
ICAgIAogICAgIF9fYmxvY2sgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
PiBwcm90ZWN0KHRoaXMpOwotCiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5f
cXVldWUoKSwgXnsKICAgICAgICAgW21fd2luZG93IHNldEhpZGRlbjpZRVNdOwogICAgICAgICBb
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciBleGl0RnVsbFNjcmVlbkFuaW1hdGVkOk5PIGNvbXBsZXRp
b25IYW5kbGVyOl4oQk9PTCwgTlNFcnJvciopIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZjdmNzJmNzVkNDUxNTg5MGMy
YTMzODI4YjBiNGY5Y2VmZTM1MGFhOC4uYTQwN2NjODQzYzk4NDNjNzc3MzE4ZWQ5MjZjZGIzNGVl
NDE2ZDQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKQEAgLTE4Miw3ICsxODIsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUo
VklERU8pCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKCkgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCB2b2lkIGVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50
KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxl
bWVudCosIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlblR5cGUpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuKCkgb3ZlcnJpZGU7
CiAjZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCA5N2RlMjgwZDBkMmM2YTA3ZjlhOWU0MTFiOGVkYWUx
MDUxZmUyM2RjLi41NDA0M2IxZThmZTMyYzk2MGM1MGFlMTdkYzI5OTFmNGQ1NDMxNDEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lm1tCkBAIC05NTMsMTAgKzk1MywxMSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNW
aWRlb0Z1bGxzY3JlZW4oKQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFdlYkNocm9tZUNs
aWVudDo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVu
dCogdmlkZW9FbGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2Ny
ZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvRWxlbWVudCwgSFRNTE1l
ZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuVHlwZSB0eXBlKQogeworICAgIEFTU0VSVCh0eXBl
ICE9IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlblR5cGVOb25lKTsKICAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0gICAgW21fd2ViVmlldyBfZW50ZXJWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQ6dmlkZW9FbGVtZW50XTsKKyAgICBbbV93ZWJWaWV3IF9lbnRl
clZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudDp2aWRlb0VsZW1lbnQgdHlwZTp0eXBlXTsK
ICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KaW5kZXggODZjNDljNmE3Y2I5OWIxNzRlN2IxZmU0ODhkZWFiMzYxZTU5YWE3
Yy4uZWZkOTNjNjQzOGRhMjdlMjZkOTQ4YjY3N2Q1OGQ3Yzc0Y2M2YjI5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtODM2NSw3ICs4MzY1LDcgQEAgYm9vbCBMYXllckZs
dXNoQ29udHJvbGxlcjo6Zmx1c2hMYXllcnMoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoVklERU8p
Ci0tICh2b2lkKV9lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudDooV2ViQ29yZTo6
SFRNTFZpZGVvRWxlbWVudCopdmlkZW9FbGVtZW50CistICh2b2lkKV9lbnRlclZpZGVvRnVsbHNj
cmVlbkZvclZpZGVvRWxlbWVudDooV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCopdmlkZW9FbGVt
ZW50IHR5cGU6KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlblR5cGUp
dHlwZQogewogICAgIGlmIChfcHJpdmF0ZS0+ZnVsbHNjcmVlbkNvbnRyb2xsZXIpIHsKICAgICAg
ICAgaWYgKFtfcHJpdmF0ZS0+ZnVsbHNjcmVlbkNvbnRyb2xsZXIgdmlkZW9FbGVtZW50XSA9PSB2
aWRlb0VsZW1lbnQpIHsKQEAgLTgzODUsNyArODM4NSw3IEBAIGJvb2wgTGF5ZXJGbHVzaENvbnRy
b2xsZXI6OmZsdXNoTGF5ZXJzKCkKICAgICAgICAgX3ByaXZhdGUtPmZ1bGxzY3JlZW5Db250cm9s
bGVyID0gW1tXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyIGFsbG9jXSBpbml0XTsKICAgICAg
ICAgW19wcml2YXRlLT5mdWxsc2NyZWVuQ29udHJvbGxlciBzZXRWaWRlb0VsZW1lbnQ6dmlkZW9F
bGVtZW50XTsKICNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIFtfcHJpdmF0ZS0+ZnVsbHNjcmVl
bkNvbnRyb2xsZXIgZW50ZXJGdWxsc2NyZWVuOihVSVZpZXcgKilbW1tzZWxmIHdpbmRvd10gaG9z
dExheWVyXSBkZWxlZ2F0ZV1dOworICAgICAgICBbX3ByaXZhdGUtPmZ1bGxzY3JlZW5Db250cm9s
bGVyIGVudGVyRnVsbHNjcmVlbjooVUlWaWV3ICopW1tbc2VsZiB3aW5kb3ddIGhvc3RMYXllcl0g
ZGVsZWdhdGVdIHR5cGU6dHlwZV07CiAjZWxzZQogICAgICAgICBbX3ByaXZhdGUtPmZ1bGxzY3Jl
ZW5Db250cm9sbGVyIGVudGVyRnVsbHNjcmVlbjpbW3NlbGYgd2luZG93XSBzY3JlZW5dXTsKICNl
bmRpZgpAQCAtODQwMyw3ICs4NDAzLDcgQEAgYm9vbCBMYXllckZsdXNoQ29udHJvbGxlcjo6Zmx1
c2hMYXllcnMoKQogICAgIF9wcml2YXRlLT5mdWxsc2NyZWVuQ29udHJvbGxlciA9IG5pbDsKIH0K
IAotI2VuZGlmIC8vIEVOQUJMRShWSURFTykgJiYgIVBMQVRGT1JNKElPUykKKyNlbmRpZiAvLyBF
TkFCTEUoVklERU8pCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpICYmICFQTEFURk9STShJ
T1MpCiAtIChCT09MKV9zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50Oihjb25zdCBXZWJDb3Jl
OjpFbGVtZW50KillbGVtZW50IHdpdGhLZXlib2FyZDooQk9PTCl3aXRoS2V5Ym9hcmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmggYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDEyYTQzYmUxNTFl
Y2E2ZWY4ZGE3ODFhMDE1NjBjMGNmMDdmYmEwMTIuLjg2N2ZjOTc0ZThjZGI2N2M1NGFjMTMyODM5
MjA2ZWE3Njg2OGM4YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50
ZXJuYWwuaApAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9BbHRlcm5hdGl2ZVRl
eHRDbGllbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRmluZE9wdGlvbnMuaD4KICNpbXBvcnQgPFdl
YkNvcmUvRmxvYXRSZWN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTGF5b3V0TWlsZXN0b25lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9U
ZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUtleWJv
YXJkVUlNb2RlLmg+CkBAIC0yMzksNyArMjQwLDcgQEAgT0JKQ19DTEFTUyBOU1RleHRBbHRlcm5h
dGl2ZXM7CiAtICh2b2lkKV9wcmVmZXJlbmNlc0NoYW5nZWQ6KFdlYlByZWZlcmVuY2VzICopcHJl
ZmVyZW5jZXM7CiAKICNpZiBFTkFCTEUoVklERU8pICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCi0t
ICh2b2lkKV9lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudDooV2ViQ29yZTo6SFRN
TFZpZGVvRWxlbWVudCopdmlkZW9FbGVtZW50OworLSAodm9pZClfZW50ZXJWaWRlb0Z1bGxzY3Jl
ZW5Gb3JWaWRlb0VsZW1lbnQ6KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQqKXZpZGVvRWxlbWVu
dCB0eXBlOihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5UeXBlKXR5
cGU7CiAtICh2b2lkKV9leGl0VmlkZW9GdWxsc2NyZWVuOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5oCmluZGV4IDk4NWZmZTBkOGEwMTQ1Y2Y5YmE1NGUyNDkwNGM0ZmY3OTBlYWQ0
MGMuLmY4ODUyZTAxMjY0MTA2YWNjMzE1NTM1MmQ1NTRjYTM2YzIwNzBhMTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJikgb3ZlcnJpZGU7CiAKICAgICAvLyBUcmFuc2xhdGUgdG8gRnVsbHNjcmVlbkludGVyZmFj
ZQotICAgIHZvaWQgc2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90LCBXZWJDb3JlOjpJbnRS
ZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nRGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHZv
aWQgc2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90LCBXZWJDb3JlOjpJbnRSZWN0IGluaXRp
YWxSZWN0LCBmbG9hdCBob3N0aW5nRGV2aWNlU2NhbGVGYWN0b3IsIHVpbnQzMl90IHZpZGVvRnVs
bHNjcmVlblR5cGUpOwogICAgIHZvaWQgc2V0U2Vla2FibGVSYW5nZXNWZWN0b3IoVmVjdG9yPHN0
ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+Jik7CiAgICAgdm9pZCBzZXRFeHRlcm5hbFBsYXliYWNr
UHJvcGVydGllcyhib29sIGVuYWJsZWQsIHVpbnQzMl90IHRhcmdldFR5cGUsIFN0cmluZyBsb2Nh
bGl6ZWREZXZpY2VOYW1lKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4KaW5kZXggMDU5NTJmMzU1YTNhY2MwZWExMmIyNzA1OWZhYmJkNDNiNGI3OTc2
MC4uMDlhYTY5N2ViZTE3NTBhYzYzOGYwOGI4NzU0OGVhNTYwYzUwMDczZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTMxLDcgKzMxLDcgQEAgbWVz
c2FnZXMgLT4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5IHsKICAgICBTZXRFeHRlcm5h
bFBsYXliYWNrUHJvcGVydGllcyhib29sIGVuYWJsZWQsIHVpbnQzMl90IHRhcmdldFR5cGUsIFN0
cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1lKTsKICAgICBTZXREdXJhdGlvbihkb3VibGUgZHVyYXRp
b24pCiAgICAgU2V0UmF0ZShib29sIGlzUGxheWluZywgZG91YmxlIHJhdGUpCi0gICAgU2V0dXBG
dWxsc2NyZWVuV2l0aElEKHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBp
bml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9yKQorICAgIFNldHVwRnVsbHNjcmVl
bldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVySUQsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJl
Y3QsIGZsb2F0IGhvc3RpbmdTY2FsZUZhY3RvciwgdWludDMyX3QgdmlkZW9GdWxsc2NyZWVuVHlw
ZSkKICAgICBFbnRlckZ1bGxzY3JlZW4oKQogICAgIEV4aXRGdWxsc2NyZWVuKFdlYkNvcmU6Oklu
dFJlY3QgZmluYWxSZWN0KQogICAgIENsZWFudXBGdWxsc2NyZWVuKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubW0KaW5kZXggZWM3YmZkYmQyMTkzZDhiZjk3OGU2MDdmZWRkZjk5Yjg1Mjg0OGYz
Mi4uNGI2MzRiMGU4NzNmZmRkZTllNzNiZDU2OTMyMmJkYWY2OWY2ZDhiYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkubW0KQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQogICAgIG1fbGF5ZXJIb3N0LmNsZWFyKCk7CiB9
CiAKLXZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5X
aXRoSUQodWludDMyX3QgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0
LCBmbG9hdCBob3N0aW5nRGV2aWNlU2NhbGVGYWN0b3IpCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90IHZpZGVvTGF5ZXJJ
RCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ0RldmljZVNjYWxl
RmFjdG9yLCB1aW50MzJfdCB2aWRlb0Z1bGxzY3JlZW5UeXBlKQogewogICAgIEFTU0VSVCh2aWRl
b0xheWVySUQpOwogICAgIG1fbGF5ZXJIb3N0ID0gV0tNYWtlUmVuZGVyTGF5ZXIodmlkZW9MYXll
cklEKTsKQEAgLTkyLDcgKzkyLDggQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVySUQKICAgICB9CiAK
ICAgICBVSVZpZXcgKnBhcmVudFZpZXcgPSBkb3duY2FzdDxSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5PigqbV9wYWdlLT5kcmF3aW5nQXJlYSgpKS5yZW1vdGVMYXllclRyZWVIb3N0KCku
cm9vdExheWVyKCk7Ci0gICAgc2V0dXBGdWxsc2NyZWVuKCptX2xheWVySG9zdC5nZXQoKSwgaW5p
dGlhbFJlY3QsIHBhcmVudFZpZXcpOworICAgIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNj
cmVlblR5cGUgdHlwZSA9IHN0YXRpY19jYXN0PEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNj
cmVlblR5cGU+KHZpZGVvRnVsbHNjcmVlblR5cGUpOworICAgIHNldHVwRnVsbHNjcmVlbigqbV9s
YXllckhvc3QuZ2V0KCksIGluaXRpYWxSZWN0LCBwYXJlbnRWaWV3LCB0eXBlKTsKIH0KICAgICAK
IHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRTZWVrYWJsZVJhbmdlc1Zl
Y3RvcihWZWN0b3I8c3RkOjpwYWlyPGRvdWJsZSwgZG91YmxlPj4mIHJhbmdlcykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAppbmRleCA0NzlkZTRmOGZhZmMxYjVlYmM0YzI1YTlkMDdjNGZjYWY2MDc3
MTIzLi4xMjEwNTEwYjkzNDAwYTc5YTY1YjZhMWU2YzA3MzhhMjI3YWQ3OTQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCkBAIC05MDUsOSArOTA1LDEwIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50
OjpzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbigpCiAgICAgcmV0dXJuIG1fcGFnZS0+dmlkZW9GdWxs
c2NyZWVuTWFuYWdlcigpLT5zdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbigpOwogfQogCi12b2lkIFdl
YkNocm9tZUNsaWVudDo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29y
ZTo6SFRNTFZpZGVvRWxlbWVudCogdmlkZW9FbGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0Vs
ZW1lbnQqIHZpZGVvRWxlbWVudCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxs
c2NyZWVuVHlwZSB0eXBlKQogewotICAgIG1fcGFnZS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigp
LT5lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCh2aWRlb0VsZW1lbnQpOworICAg
IEFTU0VSVCh0eXBlICE9IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlblR5cGVOb25l
KTsKKyAgICBtX3BhZ2UtPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS0+ZW50ZXJWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQodmlkZW9FbGVtZW50LCB0eXBlKTsKIH0KIAogdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5k
ZXggZDE0ODYzMDNmZDBhNmVhNWJlYTcyYjg3NjJlYTA0YmFhNWVlYzExYy4uMTI0Nzk1MDIwZmIy
NDJkOGM3YzJkOTBjZmRkZGI1ZDY4Y2I3Mzc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0y
NTQsNyArMjU0LDcgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oKTsKLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJW
aWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCop
OworICAgIHZpcnR1YWwgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChX
ZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50KiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Vmlk
ZW9GdWxsc2NyZWVuVHlwZSk7CiAgICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW4o
KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKaW5kZXggNDBlOWI1NDhiY2JkYjkzYzcwOTVh
MTliOTFmYjk1M2YzOGJlY2ZmMS4uYjI4OTliMGRiODA1YzM3ZTEyNWIxMThjMGJlMDIwN2Q2NjU4
NTFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudExpc3RlbmVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybUNBTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQuaD4KQEAgLTU5LDcgKzYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIAog
ICAgIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oKSBjb25zdDsKLSAgICB2b2lkIGVudGVy
VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQq
KTsKKyAgICB2b2lkIGVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6
OkhUTUxWaWRlb0VsZW1lbnQqLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxz
Y3JlZW5UeXBlKTsKICAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW4oKTsKICAgICAKIHByb3Rl
Y3RlZDoKQEAgLTkyLDYgKzkzLDcgQEAgcHJvdGVjdGVkOgogICAgIAogICAgIGJvb2wgbV9pc0Fu
aW1hdGluZzsKICAgICBib29sIG1fdGFyZ2V0SXNGdWxsc2NyZWVuOworICAgIFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlblR5cGUgbV9mdWxsc2NyZWVuVHlwZTsKICAg
ICBib29sIG1faXNGdWxsc2NyZWVuOwogfTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4
IGVjNGRmMzA5YzIwOGVkY2MzZTU5M2FiNzgwNWQxYmIyNjA1ZGY2N2YuLjJjMjk5OGEzMmQ0ZWUy
Y2QxNzVjNzhmM2QyYTNkMzY4MjY3MDFjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpAQCAtODUs
MTEgKzg1LDE0IEBAIGJvb2wgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c3VwcG9ydHNWaWRl
b0Z1bGxzY3JlZW4oKSBjb25zdAogICAgIHJldHVybiBTZXR0aW5nczo6YXZLaXRFbmFibGVkKCk7
CiB9CiAKLXZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJWaWRlb0Z1bGxzY3Jl
ZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCogdmlkZW9FbGVtZW50KQordm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxl
bWVudChIVE1MVmlkZW9FbGVtZW50KiB2aWRlb0VsZW1lbnQsIEhUTUxNZWRpYUVsZW1lbnQ6OlZp
ZGVvRnVsbHNjcmVlblR5cGUgdHlwZSkKIHsKKyAgICBBU1NFUlQodHlwZSAhPSBIVE1MTWVkaWFF
bGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5UeXBlTm9uZSk7CisKICAgICBtX3ZpZGVvRWxlbWVudCA9
IHZpZGVvRWxlbWVudDsKIAogICAgIG1fdGFyZ2V0SXNGdWxsc2NyZWVuID0gdHJ1ZTsKKyAgICBt
X2Z1bGxzY3JlZW5UeXBlID0gdHlwZTsKIAogICAgIGlmIChtX2lzQW5pbWF0aW5nKQogICAgICAg
ICByZXR1cm47CkBAIC05OSw3ICsxMDIsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZQogCiAg
ICAgbV9sYXllckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9y
RXh0ZXJuYWxIb3N0aW5nUHJvY2VzcygpOwogICAgIAotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdl
czo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXR1cEZ1bGxzY3JlZW5XaXRoSUQo
bV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250ZXh0SUQoKSwgY2xpZW50UmVjdEZvckVsZW1lbnQo
dmlkZW9FbGVtZW50KSwgbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpKSwgbV9wYWdlLT5wYWdl
SUQoKSk7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHk6OlNldHVwRnVsbHNjcmVlbldpdGhJRChtX2xheWVySG9zdGluZ0NvbnRleHQtPmNv
bnRleHRJRCgpLCBjbGllbnRSZWN0Rm9yRWxlbWVudCh2aWRlb0VsZW1lbnQpLCBtX3BhZ2UtPmRl
dmljZVNjYWxlRmFjdG9yKCksIG1fZnVsbHNjcmVlblR5cGUpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsK
IH0KIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVu
KCkKQEAgLTIzNSw3ICsyMzgsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRp
ZENsZWFudXBGdWxsc2NyZWVuKCkKICAgICAvLyBlbnRlciBmdWxsc2NyZWVuIG5vdyBpZiBpdCB3
YXMgcHJldmlvdXNseSByZXF1ZXN0ZWQgZHVyaW5nIGFuIGFuaW1hdGlvbi4KICAgICBfX2Jsb2Nr
IFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudD4gcHJvdGVjdCh0aGlz
KTsKICAgICBXZWJUaHJlYWRSdW4oXiB7Ci0gICAgICAgIGVudGVyVmlkZW9GdWxsc2NyZWVuRm9y
VmlkZW9FbGVtZW50KG1fdmlkZW9FbGVtZW50LmdldCgpKTsKKyAgICAgICAgZW50ZXJWaWRlb0Z1
bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQobV92aWRlb0VsZW1lbnQuZ2V0KCksIG1fZnVsbHNjcmVl
blR5cGUpOwogICAgICAgICBwcm90ZWN0LmNsZWFyKCk7CiAgICAgfSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240516</attachid>
            <date>2014-10-27 17:49:06 -0700</date>
            <delta_ts>2014-10-28 10:45:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138044-20141027174914.patch</filename>
            <type>text/plain</type>
            <size>42620</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJjZGY0YTljOWIwODJk
NmFhN2E4YTU4NWUzNmRjNmE3ZGY2ZTE2ZS4uNmIwNTczZDA3MzU3NTI1NjE0ZTM1YTVjNzdiYjg5
MjQ0YjkyNzkyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE0LTEwLTI0ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgb3B0aW1pemVkIGZ1
bGxzY3JlZW4gbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzODA0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEVuYWJsZSBkaWZmZXJlbnQgbW9kZXMgb2YgZnVsbHNjcmVlbiB2aWRlbyBiZWhhdmlv
ci4KKyAgICAgICAgQWRkIGFuIGVudW0gcGFyYW1ldGVyIHRvIGVudGVyVmlkZW9GdWxsc2NyZWVu
Rm9yVmlkZW9FbGVtZW50IGZvciBhbHRlcm5hdGUgbW9kZXMgb2YgZnVsbHNjcmVlbi4KKyAgICAg
ICAgQWRkIGdlc3R1cmUgZm9yIGFsdGVybmF0ZSBmdWxsc2NyZWVuLgorCisgICAgICAgICogTW9k
dWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbHNIb3N0OjplbnRlckZ1bGxzY3JlZW5PcHRpbWl6ZWQpOiBhZGRlZAor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oOiBhZGRl
ZCBlbnRlckZ1bGxzY3JlZW5PcHRpbWl6ZWQKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuaWRsOiBhZGRlZCBlbnRlckZ1bGxzY3JlZW5PcHRpbWl6ZWQK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc2lPUy5qczoKKyAg
ICAgICAgKENvbnRyb2xsZXJJT1MucHJvdG90eXBlLmhhbmRsZUJhc2VHZXN0dXJlQ2hhbmdlKTog
cmVjb2duaXplIGFsdGVybmF0ZSBnZXN0dXJlCisgICAgICAgICogV2ViQ29yZS5leHAuaW46IGFk
ZGVkIHBhcmFtZXRlciB0byBzZXR1cEZ1bGxzY3JlZW4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cmVtb3Zl
ZEZyb20pIDogcmVwbGFjZSBtX2lzSW5WaWRlb0Z1bGxzY3JlZW4gd2l0aCBtX3ZpZGVvRnVsbHNj
cmVlbk1vZGUKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnN0b3ApIDogZGl0
dG8KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmlzRnVsbHNjcmVlbikgOiBk
aXR0bworICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVu
KTogYWRkIHBhcmFtZXRlciB0byBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudAor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZXhpdEZ1bGxzY3JlZW4pOiByZXBs
YWNlIG1faXNJblZpZGVvRnVsbHNjcmVlbiB3aXRoIG1fdmlkZW9GdWxsc2NyZWVuTW9kZQorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuT3B0aW1pemVk
KTogYWRkZWQKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDogYWRkZWQgZW50ZXJG
dWxsc2NyZWVuT3B0aW1pemVkCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0Vs
ZW1lbnQpOiBhZGRlZCBwYXJhbWV0ZXIKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lmg6IGFkZCBwYXJhbWV0ZXIKKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tOgorICAgICAgICAo
LVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyIGVudGVyRnVsbHNjcmVlbjptb2RlOl0pOiBh
ZGQgcGFyYW1ldGVyCisgICAgICAgICgtW1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIgZW50
ZXJGdWxsc2NyZWVuOl0pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOiByZW9yZGVyIHByb3RlY3RlZCB0byBhZnRlciBw
dWJsaWMKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQubW06CisgICAgICAgICgtW1dlYkFWUGxheWVyQ29udHJvbGxlciBwbGF5ZXJdKTogdGhp
cyBzdHViIGlzIG5vdyByZXF1aXJlZAorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIg
bGF5b3V0U3VibGF5ZXJzT2ZMYXllcjpdKTogdGhpcyBpcyBhIGJldHRlciB3YXkgdG8gdXBkYXRl
IHZpZGVvIGZyYW1lcworICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6
OnNldHVwRnVsbHNjcmVlbik6IGltcGxlbWVudCBvcHRpbWl6ZWQgZnVsbHNjcmVlbiBpbnRlcmZh
Y2UgCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxs
c2NyZWVuKTogZGl0dG8KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpleGl0RnVsbHNjcmVlbik6IGRpdHRvCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6cmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbik6IGRpdHRvCisKIDIwMTQt
MTAtMjMgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDYXJldHMgaW4gR01haWwgYW5kIGlDbG91ZCBjb21wb3NpdGlvbnMgYXJlIHRoZSBmb3JlZ3Jv
dW5kIHRleHQgY29sb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBjZGY3ZjJjYzIzZmQyMTgwN2MyY2Ux
ZDNmY2U3YmQ1YzEwZGY1MDhlLi4wZWY2MzQzYjFiZmE1ZjI4MzNjMGNkMWY5ZDFlNzRhZWNhYjc2
MDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTQtMTAtMjQgIEplcmVt
eSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBvcHRpbWl6ZWQgZnVs
bHNjcmVlbiBtb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM4MDQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRW5hYmxlIGRpZmZlcmVudCBtb2RlcyBvZiBmdWxsc2NyZWVuIHZpZGVvIGJlaGF2aW9y
LgorICAgICAgICBBZGQgYW4gZW51bSBwYXJhbWV0ZXIgdG8gZW50ZXJWaWRlb0Z1bGxzY3JlZW5G
b3JWaWRlb0VsZW1lbnQgZm9yIGFsdGVybmF0ZSBtb2RlcyBvZiBmdWxsc2NyZWVuLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6IEFkZCBmdWxsc2NyZWVuTW9k
ZSBwYXJhbWV0ZXIKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9F
bGVtZW50KTogZGl0dG8KKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgX2VudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50Om1vZGU6XSk6IGRp
dHRvCisgICAgICAgICgtW1dlYlZpZXcgX2VudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50Ol0pOiBEZWxldGVkLgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0ludGVybmFsLmg6IGRp
dHRvCisKIDIwMTQtMTAtMjMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBQcm92aWRlIGEgd2F5IHRvIGhhdmUgYWx0ZXJuYXRl
IGluc3BlY3RvciBhZ2VudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5ODlhYWQyM2VkNTNiZTM0YmYzNmY4YTk1
NGRmMjljOGU2N2JiZWQ2Li4zYzJlNjU5YmJmMjc5NzQ4NDJmODA4MGFmNmE5MzI4MDBkMjhiYjVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQtMTAtMjQgIEplcmVteSBKb25lcyAg
PGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBvcHRpbWl6ZWQgZnVsbHNjcmVlbiBt
b2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4
MDQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5h
YmxlIGRpZmZlcmVudCBtb2RlcyBvZiBmdWxsc2NyZWVuIHZpZGVvIGJlaGF2aW9yLgorICAgICAg
ICBBZGQgYW4gZW51bSBwYXJhbWV0ZXIgdG8gZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0Vs
ZW1lbnQgZm9yIGFsdGVybmF0ZSBtb2RlcyBvZiBmdWxsc2NyZWVuLgorCisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDogQWRkIGZ1bGxzY3Jl
ZW5Nb2RlIHBhcmFtZXRlcgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBkaXR0bworICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCk6IGRp
dHRvCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2Ny
ZWVuRm9yVmlkZW9FbGVtZW50KTogZGl0dG8KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOiBkaXR0bworICAgICAgICAqIFdlYlByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDogZGl0dG8KKyAgICAgICAgKiBXZWJQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVu
dCk6IGRpdHRvCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRp
ZENsZWFudXBGdWxsc2NyZWVuKTogZGl0dG8KKwogMjAxNC0xMC0yMyAgQmVuamFtaW4gUG91bGFp
biAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIFdLMl0gSWYgYSBwYWdlIGhh
cyB0aGUgZXhhY3Qgc2FtZSBWaXNpYmxlQ29udGVudFJlY3QgYXMgdGhlIHBhZ2UgYmVmb3JlLCBp
dHMgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlIGNhbiBiZSBpZ25vcmVkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0
LmNwcAppbmRleCBlNjMxZWZmMzZlNTA2NDY1MTIwZTM0MDMyMzgzMzNjN2M1ZDUyZmNkLi5lYjMw
MmY0MGVkNjk5NjQxZjQ1NWU2MTE5NWJmOGE3N2UyYjEyNjM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5j
cHAKQEAgLTE4Nyw2ICsxODcsMTMgQEAgdm9pZCBNZWRpYUNvbnRyb2xzSG9zdDo6ZXhpdGVkRnVs
bHNjcmVlbigpCiAgICAgaWYgKG1fdGV4dFRyYWNrQ29udGFpbmVyKQogICAgICAgICBtX3RleHRU
cmFja0NvbnRhaW5lci0+ZXhpdGVkRnVsbHNjcmVlbigpOwogfQorICAgIAordm9pZCBNZWRpYUNv
bnRyb2xzSG9zdDo6ZW50ZXJGdWxsc2NyZWVuT3B0aW1pemVkKCkKK3sKKyNpZiBFTkFCTEUoT1BU
SU1JWkVEX0ZVTExTQ1JFRU4pCisgICAgbV9tZWRpYUVsZW1lbnQtPmVudGVyRnVsbHNjcmVlbk9w
dGltaXplZCgpOworI2VuZGlmCit9CiAKIHZvaWQgTWVkaWFDb250cm9sc0hvc3Q6OnVwZGF0ZUNh
cHRpb25EaXNwbGF5U2l6ZXMoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaAppbmRleCAxNjQ3MjJhZWQ4Nzcx
YjNmMjNjNzlkNjM2NTlkZjY4OGYyY2EyNjc2Li4xYmVhMzFlOWM0ZTY4YzgxNTFiM2MxYzYyMTdj
M2JiZDE3YTcwNDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29u
dHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCB1cGRhdGVDYXB0aW9uRGlzcGxheVNpemVzKCk7CiAgICAgdm9pZCBlbnRlcmVk
RnVsbHNjcmVlbigpOwogICAgIHZvaWQgZXhpdGVkRnVsbHNjcmVlbigpOworICAgIHZvaWQgZW50
ZXJGdWxsc2NyZWVuT3B0aW1pemVkKCk7CiAKICAgICBTdHJpbmcgZXh0ZXJuYWxEZXZpY2VEaXNw
bGF5TmFtZSgpIGNvbnN0OwogICAgIFN0cmluZyBleHRlcm5hbERldmljZVR5cGUoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNv
bnRyb2xzSG9zdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVk
aWFDb250cm9sc0hvc3QuaWRsCmluZGV4IDY4ZDA0OGIyZGViZGYyY2I1NjU1N2YyYTQyNWQwMTEx
NmYxMDQwNTAuLjhkZjVlODhiODhlMmZkNjA0OWJhMjQ4ODA2Mzg3Y2E2OGFjY2EwZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xz
SG9zdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlh
Q29udHJvbHNIb3N0LmlkbApAQCAtNTUsNCArNTUsNSBAQCBlbnVtIERldmljZVR5cGUgewogICAg
IHZvaWQgdXBkYXRlVGV4dFRyYWNrQ29udGFpbmVyKCk7CiAgICAgdm9pZCBlbnRlcmVkRnVsbHNj
cmVlbigpOwogICAgIHZvaWQgZXhpdGVkRnVsbHNjcmVlbigpOworICAgIHZvaWQgZW50ZXJGdWxs
c2NyZWVuT3B0aW1pemVkKCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNpT1MuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc2lPUy5qcwppbmRleCBhOTVkNzZiN2IxMTdh
OGRlM2ViMWU1MzZmNDIwZGE0NTI3NDU1NDhkLi42YmRiZjAzMDI0YmZjYTc2Y2Q3ZWFiZmFlM2Jh
ODBjZjcxYzczZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29u
dHJvbHMvbWVkaWFDb250cm9sc2lPUy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhY29udHJvbHMvbWVkaWFDb250cm9sc2lPUy5qcwpAQCAtMzIwLDEyICszMjAsMTcgQEAgQ29u
dHJvbGxlcklPUy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
dmFyIHZlbG9jaXR5ID0gTWF0aC5hYnMoZXZlbnQuc2NhbGUgLSAxKSAvIGR1cmF0aW9uOwotCi0g
ICAgICAgIGlmIChldmVudC5zY2FsZSA8IDEuMjUgfHwgdmVsb2NpdHkgPCAyKQorICAgICAgICAK
KyAgICAgICAgaWYgKHZlbG9jaXR5IDwgMikKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICBkZWxldGUgdGhpcy5nZXN0dXJlU3RhcnRUaW1lOwotICAgICAgICB0aGlzLnZpZGVvLndlYmtp
dEVudGVyRnVsbHNjcmVlbigpOworICAgICAgICBpZiAoZXZlbnQuc2NhbGUgPj0gMS4yNSkgewor
ICAgICAgICAgICAgZGVsZXRlIHRoaXMuZ2VzdHVyZVN0YXJ0VGltZTsKKyAgICAgICAgICAgIHRo
aXMudmlkZW8ud2Via2l0RW50ZXJGdWxsc2NyZWVuKCk7CisgICAgICAgIH0gZWxzZSBpZiAoZXZl
bnQuc2NhbGUgPD0gMC43NSkgeworICAgICAgICAgICAgZGVsZXRlIHRoaXMuZ2VzdHVyZVN0YXJ0
VGltZTsKKyAgICAgICAgICAgIHRoaXMuaG9zdC5lbnRlckZ1bGxzY3JlZW5PcHRpbWl6ZWQoKTsK
KyAgICAgICAgfQogICAgIH0sCiAKICAgICBoYW5kbGVCYXNlR2VzdHVyZUVuZDogZnVuY3Rpb24o
ZXZlbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggM2FmNDdlNDVhMTU2ZjFkNmQzNTEyYjk0
ZmY1ZTQxOTBmNjU2NDBlZS4uZGQyZmM1OWI0MzM1NzhmMThhMzllM2FjMmViZTQwMmRiNzFhYzE1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTM0NjAsNyArMzQ2MCw3IEBAIF9fWk43V2ViQ29y
ZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxMXNldER1cmF0aW9uRWQKIF9fWk43
V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNGV4aXRGdWxsc2NyZWVu
RU5TXzdJbnRSZWN0RQogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDE0c2V0Q3VycmVudFRpbWVFZGQKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQxNWVudGVyRnVsbHNjcmVlbkV2Ci1fX1pON1dlYkNvcmUzMldlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTVzZXR1cEZ1bGxzY3JlZW5FUjdDQUxheWVyTlNfN0lu
dFJlY3RFUDZVSVZpZXcKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQxNXNldHVwRnVsbHNjcmVlbkVSN0NBTGF5ZXJOU183SW50UmVjdEVQNlVJVmlld05TXzE2
SFRNTE1lZGlhRWxlbWVudDE5VmlkZW9GdWxsc2NyZWVuTW9kZUUKIF9fWk43V2ViQ29yZTMyV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxN2NsZWFudXBGdWxsc2NyZWVuRXYKIF9fWk43
V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxN3NldFNlZWthYmxlUmFu
Z2VzRVJLTlNfMTBUaW1lUmFuZ2VzRQogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDE4c2V0VmlkZW9EaW1lbnNpb25zRWJmZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYTM3ZGVhNzdhMzJjMDM4Y2IwMzc5ZmY2YTE2OTA4
MWRmZjc4ODY0Ni4uZTNhZDE1NjgwMDljNmEyZGMwZjkxNWNkYmI0ZmMyY2ZlZjQyMzM4OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0yNzMsNiArMjczLDcg
QEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1fY2xvY2tUaW1lQXRMYXN0VXBkYXRl
RXZlbnQoMCkKICAgICAsIG1fbGFzdFRpbWVVcGRhdGVFdmVudE1vdmllVGltZShNZWRpYVRpbWU6
OnBvc2l0aXZlSW5maW5pdGVUaW1lKCkpCiAgICAgLCBtX2xvYWRTdGF0ZShXYWl0aW5nRm9yU291
cmNlKQorICAgICwgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlKFZpZGVvRnVsbHNjcmVlbk1vZGVOb25l
KQogI2lmIFBMQVRGT1JNKElPUykKICAgICAsIG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eShNZWRp
YVBsYXllcjo6VmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0KQogI2VuZGlmCkBAIC0zMDIsNyArMzAz
LDYgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1fc2VudEVuZEV2ZW50KGZhbHNl
KQogICAgICwgbV9wYXVzZWRJbnRlcm5hbChmYWxzZSkKICAgICAsIG1fc2VuZFByb2dyZXNzRXZl
bnRzKHRydWUpCi0gICAgLCBtX2lzSW5WaWRlb0Z1bGxzY3JlZW4oZmFsc2UpCiAgICAgLCBtX2Ns
b3NlZENhcHRpb25zVmlzaWJsZShmYWxzZSkKICAgICAsIG1fd2Via2l0TGVnYWN5Q2xvc2VkQ2Fw
dGlvbk92ZXJyaWRlKGZhbHNlKQogICAgICwgbV9jb21wbGV0ZWx5TG9hZGVkKGZhbHNlKQpAQCAt
Njc5LDcgKzY3OSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlZEZyb20oQ29udGFp
bmVyTm9kZSYgaW5zZXJ0aW9uUG9pbnQpCiAgICAgICAgICAgICBtZWRpYUNvbnRyb2xzKCktPmhp
ZGUoKTsKICAgICAgICAgaWYgKG1fbmV0d29ya1N0YXRlID4gTkVUV09SS19FTVBUWSkKICAgICAg
ICAgICAgIHBhdXNlKCk7Ci0gICAgICAgIGlmIChtX2lzSW5WaWRlb0Z1bGxzY3JlZW4pCisgICAg
ICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgIT0gVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUp
CiAgICAgICAgICAgICBleGl0RnVsbHNjcmVlbigpOwogCiAgICAgICAgIGlmIChtX3BsYXllcikg
ewpAQCAtNDY3MCw3ICs0NjcwLDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpjYW5TdXNwZW5k
KCkgY29uc3QKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c3RvcCgpCiB7CiAgICAgTE9HKE1lZGlh
LCAiSFRNTE1lZGlhRWxlbWVudDo6c3RvcCglcCkiLCB0aGlzKTsKLSAgICBpZiAobV9pc0luVmlk
ZW9GdWxsc2NyZWVuKQorICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgIT0gVmlkZW9GdWxs
c2NyZWVuTW9kZU5vbmUpCiAgICAgICAgIGV4aXRGdWxsc2NyZWVuKCk7CiAgICAgCiAgICAgbV9p
bkFjdGl2ZURvY3VtZW50ID0gZmFsc2U7CkBAIC00NzY1LDcgKzQ3NjUsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKQogI2lmIEVOQUJMRShWSURFT19U
UkFDSykKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faXNJblZpZGVvRnVsbHNjcmVlbiAmJiBtX3Bs
YXllciA/IG1fcGxheWVyLT5yZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgOiBmYWxz
ZTsKKyAgICByZXR1cm4gKG1fdmlkZW9GdWxsc2NyZWVuTW9kZSAhPSBWaWRlb0Z1bGxzY3JlZW5N
b2RlTm9uZSkgJiYgbV9wbGF5ZXIgPyBtX3BsYXllci0+cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbigpIDogZmFsc2U7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0VGV4dFRy
YWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50YXRpb24qIHJlcHJlc2VudGF0aW9u
KQpAQCAtNDg1Nyw3ICs0ODU3LDcgQEAgZG91YmxlIEhUTUxNZWRpYUVsZW1lbnQ6Om1heEZhc3RG
b3J3YXJkUmF0ZSgpIGNvbnN0CiAgICAgCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmlzRnVsbHNj
cmVlbigpIGNvbnN0CiB7Ci0gICAgaWYgKG1faXNJblZpZGVvRnVsbHNjcmVlbikKKyAgICBpZiAo
bV92aWRlb0Z1bGxzY3JlZW5Nb2RlICE9IFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCkBAIC00ODc4
LDEwICs0ODc4LDExIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dG9nZ2xlRnVsbHNjcmVlblN0
YXRlKCkKICAgICAgICAgZW50ZXJGdWxsc2NyZWVuKCk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6ZW50ZXJGdWxsc2NyZWVuKCkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxs
c2NyZWVuKFZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKIHsKICAgICBMT0coTWVkaWEsICJIVE1M
TWVkaWFFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4oJXApIiwgdGhpcyk7Ci0gICAgaWYgKG1faXNJ
blZpZGVvRnVsbHNjcmVlbikKKyAgICBBU1NFUlQobW9kZSAhPSBWaWRlb0Z1bGxzY3JlZW5Nb2Rl
Tm9uZSk7CisgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZSAhPSBWaWRlb0Z1bGxzY3JlZW5N
b2RlTm9uZSkKICAgICAgICAgcmV0dXJuOwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpA
QCAtNDg5MSwxOCArNDg5MiwyMyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNj
cmVlbigpCiAgICAgfQogI2VuZGlmCiAKLSAgICBtX2lzSW5WaWRlb0Z1bGxzY3JlZW4gPSB0cnVl
OworICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZSA9IG1vZGU7CiAgICAgaWYgKGhhc01lZGlhQ29u
dHJvbHMoKSkKICAgICAgICAgbWVkaWFDb250cm9scygpLT5lbnRlcmVkRnVsbHNjcmVlbigpOwog
ICAgIGlmIChkb2N1bWVudCgpLnBhZ2UoKSAmJiBpczxIVE1MVmlkZW9FbGVtZW50PigqdGhpcykp
IHsKICAgICAgICAgSFRNTFZpZGVvRWxlbWVudCYgYXNWaWRlbyA9IGRvd25jYXN0PEhUTUxWaWRl
b0VsZW1lbnQ+KCp0aGlzKTsKICAgICAgICAgaWYgKGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUo
KS5jbGllbnQoKS5zdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbigpKSB7Ci0gICAgICAgICAgICBkb2N1
bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JW
aWRlb0VsZW1lbnQoJmFzVmlkZW8pOworICAgICAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNo
cm9tZSgpLmNsaWVudCgpLmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KCZhc1Zp
ZGVvLCBtX3ZpZGVvRnVsbHNjcmVlbk1vZGUpOwogICAgICAgICAgICAgc2NoZWR1bGVFdmVudChl
dmVudE5hbWVzKCkud2Via2l0YmVnaW5mdWxsc2NyZWVuRXZlbnQpOwogICAgICAgICB9CiAgICAg
fQogfQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbigpCit7CisgICAg
ZW50ZXJGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCk7Cit9CisKIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6ZXhpdEZ1bGxzY3JlZW4oKQogewogICAgIExPRyhNZWRpYSwgIkhU
TUxNZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVuKCVwKSIsIHRoaXMpOwpAQCAtNDkxNCw4ICs0
OTIwLDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpleGl0RnVsbHNjcmVlbigpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAjZW5kaWYKLSAgICBBU1NFUlQobV9pc0luVmlkZW9GdWxsc2NyZWVu
KTsKLSAgICBtX2lzSW5WaWRlb0Z1bGxzY3JlZW4gPSBmYWxzZTsKKyAgICBBU1NFUlQobV92aWRl
b0Z1bGxzY3JlZW5Nb2RlICE9IFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKTsKKyAgICBtX3ZpZGVv
RnVsbHNjcmVlbk1vZGUgPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZTsKICAgICBpZiAoaGFzTWVk
aWFDb250cm9scygpKQogICAgICAgICBtZWRpYUNvbnRyb2xzKCktPmV4aXRlZEZ1bGxzY3JlZW4o
KTsKICAgICBpZiAoZG9jdW1lbnQoKS5wYWdlKCkgJiYgaXM8SFRNTFZpZGVvRWxlbWVudD4oKnRo
aXMpKSB7CkBAIC00OTI5LDYgKzQ5MzUsMTEgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpleGl0
RnVsbHNjcmVlbigpCiAgICAgfQogfQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVs
bHNjcmVlbk9wdGltaXplZCgpCit7CisgICAgZW50ZXJGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVl
bk1vZGVPcHRpbWl6ZWQpOworfQorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZEJlY29tZUZ1
bGxzY3JlZW5FbGVtZW50KCkKIHsKICAgICBpZiAoaGFzTWVkaWFDb250cm9scygpKQpAQCAtNjAw
Miw2ICs2MDEzLDkgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpvdmVycmlkZUJhY2tncm91bmRQ
bGF5YmFja1Jlc3RyaWN0aW9uKCkgY29uc3QKICAgICBpZiAobV9wbGF5ZXIgJiYgbV9wbGF5ZXIt
PmlzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3MoKSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAjZW5kaWYKKyAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlID09IFZpZGVvRnVsbHNjcmVl
bk1vZGVPcHRpbWl6ZWQpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIAogICAgIHJldHVybiBm
YWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBiM2Fm
MDA3MDRlMzEyMGEyOWUyNTNlYzMyN2VkZGZmNzRiZDlhOTcyLi5mNmNlMzk4NDc2MmExOWU0MGFm
NzU5MDM2YTJlYjA2MzRjZGMyNjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaApAQCAtMzkwLDggKzM5MCwxMSBAQCBwdWJsaWM6CiAgICAgCiAgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCBib29sIGlzRnVsbHNjcmVlbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQg
dG9nZ2xlRnVsbHNjcmVlblN0YXRlKCk7CisgICAgZW51bSBWaWRlb0Z1bGxzY3JlZW5Nb2RlIHsg
VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUsIFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCwgVmlk
ZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCB9OworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKFZp
ZGVvRnVsbHNjcmVlbk1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBv
dmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV4aXRGdWxsc2NyZWVuKCk7CisgICAg
dm9pZCBlbnRlckZ1bGxzY3JlZW5PcHRpbWl6ZWQoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBoYXND
bG9zZWRDYXB0aW9ucygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjbG9zZWRD
YXB0aW9uc1Zpc2libGUoKSBjb25zdCBvdmVycmlkZTsKQEAgLTc2NCw2ICs3NjcsNyBAQCBwcml2
YXRlOgogICAgIFJlZlB0cjxIVE1MU291cmNlRWxlbWVudD4gbV9jdXJyZW50U291cmNlTm9kZTsK
ICAgICBSZWZQdHI8Tm9kZT4gbV9uZXh0Q2hpbGROb2RlVG9Db25zaWRlcjsKIAorICAgIFZpZGVv
RnVsbHNjcmVlbk1vZGUgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlOwogI2lmIFBMQVRGT1JNKElPUykK
ICAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV92aWRlb0Z1bGxzY3JlZW5MYXllcjsKICAg
ICBGbG9hdFJlY3QgbV92aWRlb0Z1bGxzY3JlZW5GcmFtZTsKQEAgLTgyNyw3ICs4MzEsNiBAQCBw
cml2YXRlOgogICAgIC8vIHN1cHBvcnQgcHJvZ3Jlc3MgZXZlbnRzIHNvIHNldHRpbmcgbV9zZW5k
UHJvZ3Jlc3NFdmVudHMgZGlzYWJsZXMgdGhlbSAKICAgICBib29sIG1fc2VuZFByb2dyZXNzRXZl
bnRzIDogMTsKIAotICAgIGJvb2wgbV9pc0luVmlkZW9GdWxsc2NyZWVuIDogMTsKICAgICBib29s
IG1fY2xvc2VkQ2FwdGlvbnNWaXNpYmxlIDogMTsKICAgICBib29sIG1fd2Via2l0TGVnYWN5Q2xv
c2VkQ2FwdGlvbk92ZXJyaWRlIDogMTsKICAgICBib29sIG1fY29tcGxldGVseUxvYWRlZCA6IDE7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyODdmZWFjZTlhYjQ4ZGNlMTc4ZDFm
NDg5YmQyZDdiNzFjNTk4NTczLi4yNzM2N2Y1ZWMzYTc1ODllY2YyMzE5NzQxM2M2MjUxOTQ2MmM5
ZTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNp
bmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNsdWRlICJMYXllckZsdXNoVGhyb3R0bGVTdGF0
ZS5oIgogI2luY2x1ZGUgIlBvcHVwTWVudS5oIgpAQCAtMzM4LDcgKzMzOSw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JW
aWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBlbnRl
clZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50KiwgSFRNTE1l
ZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGV4
aXRWaWRlb0Z1bGxzY3JlZW4oKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNGdWxsc2Ny
ZWVuRm9yVmlkZW9QbGF5YmFjaygpIHsgcmV0dXJuIGZhbHNlOyB9IAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFW
S2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlckFWS2l0LmgKaW5kZXggODMyNTMwZjU5MzdlNzhkOGYxZGFmOTM1OGUzMjAyYWYyYzA1
YTlmNi4uYTIzMzYwY2UxYmFhMTE4M2RiOGIzZDkwMzgwYTA1NjczNGI0MWIwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJBVktpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQVZLaXQuaApAQCAtMzUsNyArMzUsNyBAQCBPQkpDX0NMQVNTIFVJVmll
dzsKIFdFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxl
ciA6IE5TT2JqZWN0CiAtICh2b2lkKXNldFZpZGVvRWxlbWVudDooV2ViQ29yZTo6SFRNTFZpZGVv
RWxlbWVudCopdmlkZW9FbGVtZW50OwogLSAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCopdmlk
ZW9FbGVtZW50OwotLSAodm9pZCllbnRlckZ1bGxzY3JlZW46KFVJVmlldyAqKXZpZXc7CistICh2
b2lkKWVudGVyRnVsbHNjcmVlbjooVUlWaWV3ICopdmlldyBtb2RlOihXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGU7CiAtICh2b2lkKWV4aXRGdWxsc2Ny
ZWVuOwogLSAodm9pZClyZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuOwogQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXJBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQVZLaXQubW0KaW5kZXggODhhZjE5OThiNmZkM2QwMGUzOTljZDg5Nzc0
MjA4NTc5N2Q2Njk1Yi4uYjYxMzJlZjZkYzEyMWUyMjE5NTlkNDRkYWM2ODdhY2IxNzVmMjRlYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bkNvbnRyb2xsZXJBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCkBAIC0xMTQsNyArMTE0LDcgQEAgcHVi
bGljOgogICAgIHJldHVybiBfdmlkZW9FbGVtZW50LmdldCgpOwogfQogCi0tICh2b2lkKWVudGVy
RnVsbHNjcmVlbjooVUlWaWV3ICopdmlldworLSAodm9pZCllbnRlckZ1bGxzY3JlZW46KFVJVmll
dyAqKXZpZXcgbW9kZTooSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSltb2Rl
CiB7CiAgICAgW3NlbGYgcmV0YWluXTsgLy8gQmFsYW5jZWQgYnkgLXJlbGVhc2UgaW4gZGlkRXhp
dEZ1bGxzY3JlZW46CiAgICAgCkBAIC0xMjUsNyArMTI1LDcgQEAgcHVibGljOgogICAgIF9pbnRl
cmZhY2UtPnNldFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKF9tb2RlbC5nZXQoKSk7CiAgICAgX21v
ZGVsLT5zZXRWaWRlb0VsZW1lbnQoX3ZpZGVvRWxlbWVudC5nZXQoKSk7CiAgICAgX3ZpZGVvRnVs
bHNjcmVlbkxheWVyID0gW0NBTGF5ZXIgbGF5ZXJdOwotICAgIF9pbnRlcmZhY2UtPnNldHVwRnVs
bHNjcmVlbigqX3ZpZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpLCBfdmlkZW9FbGVtZW50LT5jbGll
bnRSZWN0KCksIHZpZXcpOworICAgIF9pbnRlcmZhY2UtPnNldHVwRnVsbHNjcmVlbigqX3ZpZGVv
RnVsbHNjcmVlbkxheWVyLmdldCgpLCBfdmlkZW9FbGVtZW50LT5jbGllbnRSZWN0KCksIHZpZXcs
IG1vZGUpOwogfQogCiAtICh2b2lkKWV4aXRGdWxsc2NyZWVuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oCmluZGV4IGQ3YzEyNDQxZjVlNjQzYmIyODA5OWQ3ZmY1ODJlNzM5OWRkMWJmODQuLjMw
NWZhYzc1MDlmMzAwNWViZGNmMGIxOWMxZWIzNmZiMWE0NGExMTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaWYgUExBVEZPUk0oSU9TKSAmJiBfX0lQ
SE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSA4MDAwMAogCiAjaW5jbHVkZSA8V2ViQ29y
ZS9FdmVudExpc3RlbmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBA
IC02MywyMyArNjQsNyBAQCBwdWJsaWM6CiBjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdAogICAgIDogcHVibGljIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZQogICAgICwg
cHVibGljIFJlZkNvdW50ZWQ8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHsKLSAg
ICAgICAgCi0gICAgUmV0YWluUHRyPFdlYkFWUGxheWVyQ29udHJvbGxlcj4gbV9wbGF5ZXJDb250
cm9sbGVyOwotICAgIFJldGFpblB0cjxBVlBsYXllclZpZXdDb250cm9sbGVyPiBtX3BsYXllclZp
ZXdDb250cm9sbGVyOwotICAgIFJldGFpblB0cjxDQUxheWVyPiBtX3ZpZGVvTGF5ZXI7Ci0gICAg
UmV0YWluUHRyPFdlYkFWVmlkZW9MYXllcj4gbV92aWRlb0xheWVyQ29udGFpbmVyOwotICAgIFdl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsKiBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsOwotICAgIFdlYlZp
ZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKiBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcjsK
IAotICAgIC8vIFRoZXNlIGFyZSBvbmx5IHVzZWQgd2hlbiBmdWxsc2NyZWVuIGlzIHByZXNlbnRl
ZCBpbiBhIHNlcGFyYXRlIHdpbmRvdy4KLSAgICBSZXRhaW5QdHI8VUlXaW5kb3c+IG1fd2luZG93
OwotICAgIFJldGFpblB0cjxVSVZpZXdDb250cm9sbGVyPiBtX3ZpZXdDb250cm9sbGVyOwotICAg
IFJldGFpblB0cjxVSVZpZXc+IG1fcGFyZW50VmlldzsKLQotICAgIFdlYkFWUGxheWVyQ29udHJv
bGxlciAqcGxheWVyQ29udHJvbGxlcigpOwotICAgIAotICAgIHZvaWQgZG9FbnRlckZ1bGxzY3Jl
ZW4oKTsKLSAgICAgICAgCiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQoKTsKICAgICB2aXJ0dWFsIH5XZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdCgpIHsgfQpAQCAtOTUsMTMgKzgwLDM0IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29u
c3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCkg
b3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNldExlZ2libGVNZWRp
YVNlbGVjdGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgb3B0aW9ucywgdWlu
dDY0X3Qgc2VsZWN0ZWRJbmRleCkgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB2b2lkIHNldEV4dGVybmFsUGxheWJhY2soYm9vbCBlbmFibGVkLCBFeHRlcm5hbFBsYXliYWNr
VGFyZ2V0VHlwZSwgV1RGOjpTdHJpbmcgbG9jYWxpemVkRGV2aWNlTmFtZSkgb3ZlcnJpZGU7Ci0K
LSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0dXBGdWxsc2NyZWVuKFBsYXRmb3Jt
TGF5ZXImLCBJbnRSZWN0IGluaXRpYWxSZWN0LCBVSVZpZXcgKik7CisgICAgCisgICAgV0VCQ09S
RV9FWFBPUlQgdmlydHVhbCB2b2lkIHNldHVwRnVsbHNjcmVlbihQbGF0Zm9ybUxheWVyJiwgSW50
UmVjdCBpbml0aWFsUmVjdCwgVUlWaWV3ICosIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNj
cmVlbk1vZGUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3Jl
ZW4oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxzY3JlZW4oSW50
UmVjdCBmaW5hbFJlY3QpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBjbGVhbnVw
RnVsbHNjcmVlbigpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHJlcXVlc3RIaWRlQW5kRXhpdEZ1
bGxzY3JlZW4oKTsKKyAgICAKK3Byb3RlY3RlZDoKKyAgICAgICAgCisgICAgUmV0YWluUHRyPFdl
YkFWUGxheWVyQ29udHJvbGxlcj4gbV9wbGF5ZXJDb250cm9sbGVyOworICAgIFJldGFpblB0cjxB
VlBsYXllclZpZXdDb250cm9sbGVyPiBtX3BsYXllclZpZXdDb250cm9sbGVyOworICAgIFJldGFp
blB0cjxDQUxheWVyPiBtX3ZpZGVvTGF5ZXI7CisgICAgUmV0YWluUHRyPFdlYkFWVmlkZW9MYXll
cj4gbV92aWRlb0xheWVyQ29udGFpbmVyOworICAgIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKiBt
X3ZpZGVvRnVsbHNjcmVlbk1vZGVsOworICAgIFdlYlZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2Vy
dmVyKiBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcjsKKworICAgIC8vIFRoZXNlIGFyZSBvbmx5
IHVzZWQgd2hlbiBmdWxsc2NyZWVuIGlzIHByZXNlbnRlZCBpbiBhIHNlcGFyYXRlIHdpbmRvdy4K
KyAgICBSZXRhaW5QdHI8VUlXaW5kb3c+IG1fd2luZG93OworICAgIFJldGFpblB0cjxVSVZpZXdD
b250cm9sbGVyPiBtX3ZpZXdDb250cm9sbGVyOworICAgIFJldGFpblB0cjxVSVZpZXc+IG1fcGFy
ZW50VmlldzsKKyAgICBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1fbW9k
ZTsKKyAgICBib29sIG1fZXhpdFJlcXVlc3RlZDsKKyAgICBib29sIG1fZXhpdENvbXBsZXRlZDsK
KworICAgIFdlYkFWUGxheWVyQ29udHJvbGxlciAqcGxheWVyQ29udHJvbGxlcigpOworICAgIAor
ICAgIHZvaWQgZG9FbnRlckZ1bGxzY3JlZW4oKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdC5tbQppbmRleCA5ZTMyYWQwOWZmNTE4NDAxMzUyNmVjMDBiNzc0YzI4NGY5ZTFhMzkw
Li5kNWE0MjY5YWI2MzUzYmJjZTc1NDk2M2VmNjcwY2NiYTMxZjgxYmYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0Lm1tCkBAIC0xNTcsNiArMTU3LDEwIEBAIFNPRlRfTElOS19DT05TVEFO
VChDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUpCiAgICAgW3N1cGVyIGRlYWxs
b2NdOwogfQogCistIChBVlBsYXllciopIHBsYXllciB7CisgICAgcmV0dXJuIG5pbDsKK30KKwog
LSAoaWQpZm9yd2FyZGluZ1RhcmdldEZvclNlbGVjdG9yOihTRUwpc2VsZWN0b3IKIHsKICAgICBV
TlVTRURfUEFSQU0oc2VsZWN0b3IpOwpAQCAtNDYwLDYgKzQ2NCwxOCBAQCBTT0ZUX0xJTktfQ09O
U1RBTlQoQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogICAgIHJldHVybiBb
TlNTZXQgc2V0V2l0aE9iamVjdHM6QCJleHRlcm5hbFBsYXliYWNrQWN0aXZlIiwgbmlsXTsKIH0K
IAorLSAodm9pZClsYXlvdXRTdWJsYXllcnNPZkxheWVyOihDQUxheWVyICopbGF5ZXIKK3sKKyAg
ICBDR1JlY3QgbGF5ZXJCb3VuZHMgPSBbbGF5ZXIgYm91bmRzXTsKKyAgICBzZWxmLmRlbGVnYXRl
LT5zZXRWaWRlb0xheWVyRnJhbWUoQ0dSZWN0TWFrZSgwLCAwLCBDR1JlY3RHZXRXaWR0aChsYXll
ckJvdW5kcyksIENHUmVjdEdldEhlaWdodChsYXllckJvdW5kcykpKTsKKyAgICAKKyAgICBbQ0FU
cmFuc2FjdGlvbiBiZWdpbl07CisgICAgZm9yIChDQUxheWVyICpzdWJsYXllciBpbiBbbGF5ZXIg
c3VibGF5ZXJzXSkgeworICAgICAgICBbc3VibGF5ZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludE1h
a2UoMC41LCAwLjUpXTsKKyAgICAgICAgW3N1YmxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtl
KENHUmVjdEdldE1pZFgobGF5ZXJCb3VuZHMpLCBDR1JlY3RHZXRNaWRZKGxheWVyQm91bmRzKSld
OworICAgIH0KKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworfQogQGVuZAogCiBAaW50ZXJm
YWNlIFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24gOiBOU09iamVjdApAQCAtNzcyLDEyICs3ODgs
MjAgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0RXh0ZXJuYWxQ
bGF5YmFjayhib29sIGVuYWJsZWQsIEV4dGVybmEKICAgICB9KTsKIH0KIAotdm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0dXBGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXIm
IHZpZGVvTGF5ZXIsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QsIFVJVmlldyogcGFyZW50
VmlldykKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVwRnVsbHNj
cmVlbihQbGF0Zm9ybUxheWVyJiB2aWRlb0xheWVyLCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxS
ZWN0LCBVSVZpZXcqIHBhcmVudFZpZXcsIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVl
bk1vZGUgbW9kZSkKIHsKICAgICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdD4gcHJvdGVjdCh0aGlzKTsKICAgICAKKyAgICBBU1NFUlQobW9kZSAhPSBIVE1M
TWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7CiAgICAgbV92aWRlb0xheWVy
ID0gJnZpZGVvTGF5ZXI7CiAgICAgCisjaWYgRU5BQkxFKE9QVElNSVpFRF9GVUxMU0NSRUVOKQor
ICAgIG1fbW9kZSA9IG1vZGU7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShtb2RlKTsKKyAgICBt
X21vZGUgPSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQ7Cisj
ZW5kaWYKKyAgICAKICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
LCBeewogCiAgICAgICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKQEAgLTgzOSwxOSArODYzLDU4
IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVl
bigpCiB7CiAgICAgX19ibG9jayBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ+IHByb3RlY3QodGhpcyk7CiAgICAgCisgICAgbV9leGl0Q29tcGxldGVkID0gZmFsc2U7Cisg
ICAgbV9leGl0UmVxdWVzdGVkID0gZmFsc2U7CisgICAgCiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKICAgICAgICAgW21fdmlkZW9MYXllckNvbnRhaW5l
ciBzZXRCYWNrZ3JvdW5kQ29sb3I6W1tnZXRVSUNvbG9yQ2xhc3MoKSBibGFja0NvbG9yXSBDR0Nv
bG9yXV07Ci0gICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIGVudGVyRnVsbFNjcmVlbldp
dGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wsIE5TRXJyb3IqKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRTaG93c1BsYXliYWNrQ29udHJvbHM6WUVT
XTsKLQotICAgICAgICAgICAgV2ViVGhyZWFkUnVuKF57Ci0gICAgICAgICAgICAgICAgaWYgKG1f
ZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKQotICAgICAgICAgICAgICAgICAgICBtX2Z1bGxzY3Jl
ZW5DaGFuZ2VPYnNlcnZlci0+ZGlkRW50ZXJGdWxsc2NyZWVuKCk7Ci0KLSAgICAgICAgICAgICAg
ICBwcm90ZWN0ID0gbnVsbHB0cjsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9XTsKKyNpZiBF
TkFCTEUoT1BUSU1JWkVEX0ZVTExTQ1JFRU4pCisgICAgICAgIGlmIChtX21vZGUgPT0gSFRNTE1l
ZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkgeworICAgICAgICAgICAg
W21fcGxheWVyVmlld0NvbnRyb2xsZXIgc3RhcnRPcHRpbWl6ZWRGdWxsc2NyZWVuV2l0aFN0YXJ0
Q29tcGxldGlvbkhhbmRsZXI6XihCT09MIHN1Y2Nlc3MsIE5TRXJyb3IgKikgeworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldFNob3dz
UGxheWJhY2tDb250cm9sczpZRVNdOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IFdlYlRocmVhZFJ1biheeworICAgICAgICAgICAgICAgICAgICBbbV93aW5kb3cgc2V0SGlkZGVu
OllFU107CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZl
cikKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5k
aWRFbnRlckZ1bGxzY3JlZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgICAgIGlmICghc3VjY2VzcykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fdmlk
ZW9GdWxsc2NyZWVuTW9kZWwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV92aWRlb0Z1
bGxzY3JlZW5Nb2RlbC0+cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfSBzdG9wQ29tcGxldGlvbkhhbmRsZXI6XihBVlBs
YXllclZpZXdDb250cm9sbGVyT3B0aW1pemVkRnVsbHNjcmVlblN0b3BSZWFzb24pIHsKKyAgICAg
ICAgICAgICAgICBtX2V4aXRDb21wbGV0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIGlmICht
X2V4aXRSZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgW21fdmlkZW9MYXllckNvbnRh
aW5lciBzZXRCYWNrZ3JvdW5kQ29sb3I6W1tnZXRVSUNvbG9yQ2xhc3MoKSBjbGVhckNvbG9yXSBD
R0NvbG9yXV07CisgICAgICAgICAgICAgICAgICAgIFtbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2
aWV3XSBzZXRCYWNrZ3JvdW5kQ29sb3I6W2dldFVJQ29sb3JDbGFzcygpIGNsZWFyQ29sb3JdXTsK
KyAgICAgICAgICAgICAgICAgICAgV2ViVGhyZWFkUnVuKF57CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZEV4aXRGdWxsc2NyZWVuKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwpCisgICAgICAgICAgICAgICAgICAgICAgICBt
X3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5yZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9XTsKKyAgICAgICAgfSBlbHNlCisjZW5kaWYKKyAgICAg
ICAgaWYgKG1fbW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3Rh
bmRhcmQpIHsKKyAgICAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIGVudGVyRnVsbFNj
cmVlbldpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wsIE5TRXJyb3IqKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldFNob3dzUGxheWJh
Y2tDb250cm9sczpZRVNdOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFdlYlRo
cmVhZFJ1biheeworICAgICAgICAgICAgICAgICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2Jz
ZXJ2ZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZl
ci0+ZGlkRW50ZXJGdWxsc2NyZWVuKCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIH1dOworICAgICAgICB9CiAgICAgfSk7CiB9CiAKQEAgLTg1OSw2ICs5MjIsMTYgQEAg
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oV2Vi
Q29yZTo6SW50UmVjdCBmaW5hbFJlY3QKIHsKICAgICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gcHJvdGVjdCh0aGlzKTsKICAgICAKKyAgICBtX2V4aXRS
ZXF1ZXN0ZWQgPSB0cnVlOworICAgIGlmIChtX2V4aXRDb21wbGV0ZWQpIHsKKyAgICAgICAgV2Vi
VGhyZWFkUnVuKF57CisgICAgICAgICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIp
CisgICAgICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZEV4aXRGdWxs
c2NyZWVuKCk7CisgICAgICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKKyAgICAgICAgfSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCiAgICAgbV9wbGF5ZXJDb250cm9sbGVyID0gbmls
OwogICAgIAogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57
CkBAIC04NzEsMTYgKzk0NCwyNiBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjpleGl0RnVsbHNjcmVlbihXZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdAogICAgICAgICBp
ZiAoW21fdmlkZW9MYXllckNvbnRhaW5lciB2aWRlb0xheWVyR3Jhdml0eV0gIT0gQVZWaWRlb0xh
eWVyR3Jhdml0eVJlc2l6ZUFzcGVjdCkKICAgICAgICAgICAgIFttX3ZpZGVvTGF5ZXJDb250YWlu
ZXIgc2V0VmlkZW9MYXllckdyYXZpdHk6QVZWaWRlb0xheWVyR3Jhdml0eVJlc2l6ZUFzcGVjdF07
CiAgICAgICAgIFtbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBsYXlvdXRJZk5lZWRlZF07
Ci0gICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVuV2l0aENvbXBs
ZXRpb25IYW5kbGVyOl4oQk9PTCwgTlNFcnJvciopIHsKLSAgICAgICAgICAgIFttX3ZpZGVvTGF5
ZXJDb250YWluZXIgc2V0QmFja2dyb3VuZENvbG9yOltbZ2V0VUlDb2xvckNsYXNzKCkgY2xlYXJD
b2xvcl0gQ0dDb2xvcl1dOwotICAgICAgICAgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVyIHZp
ZXddIHNldEJhY2tncm91bmRDb2xvcjpbZ2V0VUlDb2xvckNsYXNzKCkgY2xlYXJDb2xvcl1dOwor
ICAgICAgICAKKyNpZiBFTkFCTEUoT1BUSU1JWkVEX0ZVTExTQ1JFRU4pCisgICAgICAgIGlmICht
X21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkg
eworICAgICAgICAgICAgW21fd2luZG93IHNldEhpZGRlbjpOT107CisgICAgICAgICAgICBbbV9w
bGF5ZXJWaWV3Q29udHJvbGxlciBzdG9wT3B0aW1pemVkRnVsbHNjcmVlbl07CisgICAgICAgIH0g
ZWxzZQorI2VuZGlmCisgICAgICAgIGlmIChtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSB7CisgICAgICAgICAgICBbbV9wbGF5ZXJWaWV3Q29u
dHJvbGxlciBleGl0RnVsbFNjcmVlbldpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wsIE5TRXJy
b3IqKSB7CisgICAgICAgICAgICAgICAgbV9leGl0Q29tcGxldGVkID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHNldEJhY2tncm91bmRDb2xvcjpbW2dldFVJ
Q29sb3JDbGFzcygpIGNsZWFyQ29sb3JdIENHQ29sb3JdXTsKKyAgICAgICAgICAgICAgICBbW21f
cGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10gc2V0QmFja2dyb3VuZENvbG9yOltnZXRVSUNvbG9y
Q2xhc3MoKSBjbGVhckNvbG9yXV07CisgICAgICAgICAgICAgICAgV2ViVGhyZWFkUnVuKF57Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5kaWRFeGl0RnVs
bHNjcmVlbigpOworICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKKyAgICAg
ICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgV2ViVGhyZWFkUnVuKF57Ci0gICAgICAgICAg
ICAgICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKQotICAgICAgICAgICAgICAgICAg
ICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZGlkRXhpdEZ1bGxzY3JlZW4oKTsKLSAgICAg
ICAgICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9
XTsKKyAgICAgICAgICAgIH1dOworICAgICAgICB9CiAgICAgfSk7CiB9CiAKQEAgLTk1Miw4ICsx
MDM1LDEwIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmludmFsaWRh
dGUoKQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpyZXF1ZXN0SGlk
ZUFuZEV4aXRGdWxsc2NyZWVuKCkKIHsKKyAgICBpZiAobV9tb2RlID09IEhUTUxNZWRpYUVsZW1l
bnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQpCisgICAgICAgIHJldHVybjsKKyAgICAK
ICAgICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gcHJv
dGVjdCh0aGlzKTsKLQogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVl
KCksIF57CiAgICAgICAgIFttX3dpbmRvdyBzZXRIaWRkZW46WUVTXTsKICAgICAgICAgW21fcGxh
eWVyVmlld0NvbnRyb2xsZXIgZXhpdEZ1bGxTY3JlZW5BbmltYXRlZDpOTyBjb21wbGV0aW9uSGFu
ZGxlcjpeKEJPT0wsIE5TRXJyb3IqKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGY3ZjcyZjc1ZDQ1MTU4OTBjMmEzMzgy
OGIwYjRmOWNlZmUzNTBhYTguLmI1NmQxZjM5ZjYwZmNiMzYxN2I3NjRiZGVmZmZmNTg4OGE3OGQz
ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCkBAIC0xODIsNyArMTgyLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKFZJREVP
KQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbigpIG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJD
b3JlOjpIVE1MVmlkZW9FbGVtZW50Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVudGVy
VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQq
LCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbigpIG92ZXJyaWRlOwogI2Vu
ZGlmCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQubW0KaW5kZXggOTdkZTI4MGQwZDJjNmEwN2Y5YTllNDExYjhlZGFlMTA1MWZl
MjNkYy4uYTBjNGUyYjY1OTQ2ZTc4MmFjN2UwYTRmZDNhNzViMzgxNDNjODIwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpA
QCAtOTUzLDEwICs5NTMsMTEgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzVmlkZW9G
dWxsc2NyZWVuKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQqIHZp
ZGVvRWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZv
clZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50KiB2aWRlb0VsZW1lbnQsIEhUTUxNZWRpYUVs
ZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKIHsKKyAgICBBU1NFUlQodHlwZSAhPSBI
VE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7CiAgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TOwotICAgIFttX3dlYlZpZXcgX2VudGVyVmlkZW9GdWxsc2NyZWVu
Rm9yVmlkZW9FbGVtZW50OnZpZGVvRWxlbWVudF07CisgICAgW21fd2ViVmlldyBfZW50ZXJWaWRl
b0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6dmlkZW9FbGVtZW50IG1vZGU6bW9kZV07CiAgICAg
RU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCmluZGV4IDg2YzQ5YzZhN2NiOTliMTc0ZTdiMWZlNDg4ZGVhYjM2MWU1OWFhN2MuLmI0
Y2ZkMDFkMGU5OWRlMDFlM2I3NmFkNDI0ZTE0NjVhYTc3YjRiOTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KQEAgLTgzNjUsNyArODM2NSw3IEBAIGJvb2wgTGF5ZXJGbHVzaENv
bnRyb2xsZXI6OmZsdXNoTGF5ZXJzKCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKFZJREVPKQotLSAo
dm9pZClfZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6KFdlYkNvcmU6OkhUTUxW
aWRlb0VsZW1lbnQqKXZpZGVvRWxlbWVudAorLSAodm9pZClfZW50ZXJWaWRlb0Z1bGxzY3JlZW5G
b3JWaWRlb0VsZW1lbnQ6KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQqKXZpZGVvRWxlbWVudCBt
b2RlOihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGUK
IHsKICAgICBpZiAoX3ByaXZhdGUtPmZ1bGxzY3JlZW5Db250cm9sbGVyKSB7CiAgICAgICAgIGlm
IChbX3ByaXZhdGUtPmZ1bGxzY3JlZW5Db250cm9sbGVyIHZpZGVvRWxlbWVudF0gPT0gdmlkZW9F
bGVtZW50KSB7CkBAIC04Mzg1LDcgKzgzODUsNyBAQCBib29sIExheWVyRmx1c2hDb250cm9sbGVy
OjpmbHVzaExheWVycygpCiAgICAgICAgIF9wcml2YXRlLT5mdWxsc2NyZWVuQ29udHJvbGxlciA9
IFtbV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciBhbGxvY10gaW5pdF07CiAgICAgICAgIFtf
cHJpdmF0ZS0+ZnVsbHNjcmVlbkNvbnRyb2xsZXIgc2V0VmlkZW9FbGVtZW50OnZpZGVvRWxlbWVu
dF07CiAjaWYgUExBVEZPUk0oSU9TKQotICAgICAgICBbX3ByaXZhdGUtPmZ1bGxzY3JlZW5Db250
cm9sbGVyIGVudGVyRnVsbHNjcmVlbjooVUlWaWV3ICopW1tbc2VsZiB3aW5kb3ddIGhvc3RMYXll
cl0gZGVsZWdhdGVdXTsKKyAgICAgICAgW19wcml2YXRlLT5mdWxsc2NyZWVuQ29udHJvbGxlciBl
bnRlckZ1bGxzY3JlZW46KFVJVmlldyAqKVtbW3NlbGYgd2luZG93XSBob3N0TGF5ZXJdIGRlbGVn
YXRlXSBtb2RlOm1vZGVdOwogI2Vsc2UKICAgICAgICAgW19wcml2YXRlLT5mdWxsc2NyZWVuQ29u
dHJvbGxlciBlbnRlckZ1bGxzY3JlZW46W1tzZWxmIHdpbmRvd10gc2NyZWVuXV07CiAjZW5kaWYK
QEAgLTg0MDMsNyArODQwMyw3IEBAIGJvb2wgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OmZsdXNoTGF5
ZXJzKCkKICAgICBfcHJpdmF0ZS0+ZnVsbHNjcmVlbkNvbnRyb2xsZXIgPSBuaWw7CiB9CiAKLSNl
bmRpZiAvLyBFTkFCTEUoVklERU8pICYmICFQTEFURk9STShJT1MpCisjZW5kaWYgLy8gRU5BQkxF
KFZJREVPKQogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKSAmJiAhUExBVEZPUk0oSU9TKQog
LSAoQk9PTClfc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDooY29uc3QgV2ViQ29yZTo6RWxl
bWVudCopZWxlbWVudCB3aXRoS2V5Ym9hcmQ6KEJPT0wpd2l0aEtleWJvYXJkCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAppbmRleCAxMmE0M2JlMTUxZWNhNmVm
OGRhNzgxYTAxNTYwYzBjZjA3ZmJhMDEyLi4zNzc2ZjU1MTY4YzA3ZDY0ZTdkNDBmNjUyMDRjNmFi
NDU5Y2JlZTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJ
bnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFs
LmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvQWx0ZXJuYXRpdmVUZXh0Q2xp
ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZpbmRPcHRpb25zLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0Zsb2F0UmVjdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0xheW91dE1pbGVzdG9uZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEFs
dGVybmF0aXZlV2l0aFJhbmdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVLZXlib2FyZFVJ
TW9kZS5oPgpAQCAtMjM5LDcgKzI0MCw3IEBAIE9CSkNfQ0xBU1MgTlNUZXh0QWx0ZXJuYXRpdmVz
OwogLSAodm9pZClfcHJlZmVyZW5jZXNDaGFuZ2VkOihXZWJQcmVmZXJlbmNlcyAqKXByZWZlcmVu
Y2VzOwogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQotLSAodm9p
ZClfZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6KFdlYkNvcmU6OkhUTUxWaWRl
b0VsZW1lbnQqKXZpZGVvRWxlbWVudDsKKy0gKHZvaWQpX2VudGVyVmlkZW9GdWxsc2NyZWVuRm9y
VmlkZW9FbGVtZW50OihXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Kil2aWRlb0VsZW1lbnQgbW9k
ZTooV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSltb2RlOwog
LSAodm9pZClfZXhpdFZpZGVvRnVsbHNjcmVlbjsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkuaAppbmRleCA5ODVmZmUwZDhhMDE0NWNmOWJhNTRlMjQ5MDRjNGZmNzkwZWFkNDBjLi4y
YjdiMWY0ZjRkMzM5YzEwYmM5ZjZlZTUzODU0MDI1OGI3MTBhOGQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5LmgKQEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYp
IG92ZXJyaWRlOwogCiAgICAgLy8gVHJhbnNsYXRlIHRvIEZ1bGxzY3JlZW5JbnRlcmZhY2UKLSAg
ICB2b2lkIHNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCwgV2ViQ29yZTo6SW50UmVjdCBp
bml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ0RldmljZVNjYWxlRmFjdG9yKTsKKyAgICB2b2lkIHNl
dHVwRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVj
dCwgZmxvYXQgaG9zdGluZ0RldmljZVNjYWxlRmFjdG9yLCB1aW50MzJfdCB2aWRlb0Z1bGxzY3Jl
ZW5Nb2RlKTsKICAgICB2b2lkIHNldFNlZWthYmxlUmFuZ2VzVmVjdG9yKFZlY3RvcjxzdGQ6OnBh
aXI8ZG91YmxlLCBkb3VibGU+PiYpOwogICAgIHZvaWQgc2V0RXh0ZXJuYWxQbGF5YmFja1Byb3Bl
cnRpZXMoYm9vbCBlbmFibGVkLCB1aW50MzJfdCB0YXJnZXRUeXBlLCBTdHJpbmcgbG9jYWxpemVk
RGV2aWNlTmFtZSk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IDA1OTUyZjM1NWEzYWNjMGVhMTJiMjcwNTlmYWJiZDQzYjRiNzk3NjAuLjlj
NDU2N2U0MTVmZDQ2YmMwNjVmYjk5MDIwNTYxZTNmOTc2ZWQ0YWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMSw3ICszMSw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSB7CiAgICAgU2V0RXh0ZXJuYWxQbGF5
YmFja1Byb3BlcnRpZXMoYm9vbCBlbmFibGVkLCB1aW50MzJfdCB0YXJnZXRUeXBlLCBTdHJpbmcg
bG9jYWxpemVkRGV2aWNlTmFtZSk7CiAgICAgU2V0RHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKQog
ICAgIFNldFJhdGUoYm9vbCBpc1BsYXlpbmcsIGRvdWJsZSByYXRlKQotICAgIFNldHVwRnVsbHNj
cmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVySUQsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlh
bFJlY3QsIGZsb2F0IGhvc3RpbmdTY2FsZUZhY3RvcikKKyAgICBTZXR1cEZ1bGxzY3JlZW5XaXRo
SUQodWludDMyX3QgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0LCBm
bG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIHVpbnQzMl90IHZpZGVvRnVsbHNjcmVlbk1vZGUpCiAg
ICAgRW50ZXJGdWxsc2NyZWVuKCkKICAgICBFeGl0RnVsbHNjcmVlbihXZWJDb3JlOjpJbnRSZWN0
IGZpbmFsUmVjdCkKICAgICBDbGVhbnVwRnVsbHNjcmVlbigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5Lm1tCmluZGV4IGVjN2JmZGJkMjE5M2Q4YmY5NzhlNjA3ZmVkZGY5OWI4NTI4NDhmMzIuLjM3
YzY2YjA2NTNlMjg2NGMwZGZkZmY0NGZmOTBjYjBmYjVmMWM0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lm1tCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjppbnZhbGlkYXRlKCkKICAgICBtX2xheWVySG9zdC5jbGVhcigpOwogfQogCi12
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0dXBGdWxsc2NyZWVuV2l0aElE
KHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwgZmxv
YXQgaG9zdGluZ0RldmljZVNjYWxlRmFjdG9yKQordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVySUQsIFdl
YkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdEZXZpY2VTY2FsZUZhY3Rv
ciwgdWludDMyX3QgdmlkZW9GdWxsc2NyZWVuTW9kZSkKIHsKICAgICBBU1NFUlQodmlkZW9MYXll
cklEKTsKICAgICBtX2xheWVySG9zdCA9IFdLTWFrZVJlbmRlckxheWVyKHZpZGVvTGF5ZXJJRCk7
CkBAIC05Miw3ICs5Miw4IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojpz
ZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QgdmlkZW9MYXllcklECiAgICAgfQogCiAgICAg
VUlWaWV3ICpwYXJlbnRWaWV3ID0gZG93bmNhc3Q8UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eT4oKm1fcGFnZS0+ZHJhd2luZ0FyZWEoKSkucmVtb3RlTGF5ZXJUcmVlSG9zdCgpLnJvb3RM
YXllcigpOwotICAgIHNldHVwRnVsbHNjcmVlbigqbV9sYXllckhvc3QuZ2V0KCksIGluaXRpYWxS
ZWN0LCBwYXJlbnRWaWV3KTsKKyAgICBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5N
b2RlIG1vZGUgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5N
b2RlPih2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKKyAgICBzZXR1cEZ1bGxzY3JlZW4oKm1fbGF5ZXJI
b3N0LmdldCgpLCBpbml0aWFsUmVjdCwgcGFyZW50VmlldywgbW9kZSk7CiB9CiAgICAgCiB2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0U2Vla2FibGVSYW5nZXNWZWN0b3Io
VmVjdG9yPHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+JiByYW5nZXMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKaW5kZXggNDc5ZGU0ZjhmYWZjMWI1ZWJjNGMyNWE5ZDA3YzRmY2FmNjA3NzEyMy4u
MmE0M2VkZTcwZTQyODYzMGQxNDRkZGE5Y2YwZTUyYWVkMDZmYzQ5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcApAQCAtOTA1LDkgKzkwNSwxMCBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c3Vw
cG9ydHNWaWRlb0Z1bGxzY3JlZW4oKQogICAgIHJldHVybiBtX3BhZ2UtPnZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIoKS0+c3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oKTsKIH0KIAotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhU
TUxWaWRlb0VsZW1lbnQqIHZpZGVvRWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRl
clZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50
KiB2aWRlb0VsZW1lbnQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVl
bk1vZGUgbW9kZSkKIHsKLSAgICBtX3BhZ2UtPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS0+ZW50
ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQodmlkZW9FbGVtZW50KTsKKyAgICBBU1NF
UlQobW9kZSAhPSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7Cisg
ICAgbV9wYWdlLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCktPmVudGVyVmlkZW9GdWxsc2NyZWVu
Rm9yVmlkZW9FbGVtZW50KHZpZGVvRWxlbWVudCwgbW9kZSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGQx
NDg2MzAzZmQwYTZlYTViZWE3MmI4NzYyZWEwNGJhYTVlZWMxMWMuLjFmMjY4YmUxMzc4M2ZlMDg0
NGJmNGI1MTU0ZmNjY2Y3ZTMxYzA2ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjU0LDcg
KzI1NCw3IEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCBib29s
IHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKCk7Ci0gICAgdmlydHVhbCB2b2lkIGVudGVyVmlkZW9G
dWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQqKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29y
ZTo6SFRNTFZpZGVvRWxlbWVudCosIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVs
bHNjcmVlbk1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuKCk7CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IDQwZTliNTQ4YmNiZGI5M2M3MDk1YTE5Yjkx
ZmI5NTNmMzhiZWNmZjEuLmMxYTE0YmVkMWE0MzViZWE0Mjk2MzkyYmQwMjc2MjJlMWY3MDFkNjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIk1lc3Nh
Z2VSZWNlaXZlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnRMaXN0ZW5lci5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZv
cm1DQUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVt
ZW50Lmg+CkBAIC01OSw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICAKICAgICBi
b29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKCkgY29uc3Q7Ci0gICAgdm9pZCBlbnRlclZpZGVv
RnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Kik7Cisg
ICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1M
VmlkZW9FbGVtZW50KiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVu
TW9kZSk7CiAgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuKCk7CiAgICAgCiBwcm90ZWN0ZWQ6
CkBAIC05Miw2ICs5Myw3IEBAIHByb3RlY3RlZDoKICAgICAKICAgICBib29sIG1faXNBbmltYXRp
bmc7CiAgICAgYm9vbCBtX3RhcmdldElzRnVsbHNjcmVlbjsKKyAgICBXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1fZnVsbHNjcmVlbk1vZGU7CiAgICAgYm9v
bCBtX2lzRnVsbHNjcmVlbjsKIH07CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCBlYzRk
ZjMwOWMyMDhlZGNjM2U1OTNhYjc4MDVkMWJiMjYwNWRmNjdmLi42NzhjMDA5YjQ1NWRjNTFiOGJh
YWQ4NGJkMGJlZDk1YTFjMzU4ODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTg1LDExICs4
NSwxNCBAQCBib29sIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnN1cHBvcnRzVmlkZW9GdWxs
c2NyZWVuKCkgY29uc3QKICAgICByZXR1cm4gU2V0dGluZ3M6OmF2S2l0RW5hYmxlZCgpOwogfQog
Ci12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9y
VmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvRWxlbWVudCkKK3ZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQo
SFRNTFZpZGVvRWxlbWVudCogdmlkZW9FbGVtZW50LCBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlIG1vZGUpCiB7CisgICAgQVNTRVJUKG1vZGUgIT0gSFRNTE1lZGlhRWxlbWVu
dDo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOworCiAgICAgbV92aWRlb0VsZW1lbnQgPSB2aWRl
b0VsZW1lbnQ7CiAKICAgICBtX3RhcmdldElzRnVsbHNjcmVlbiA9IHRydWU7CisgICAgbV9mdWxs
c2NyZWVuTW9kZSA9IG1vZGU7CiAKICAgICBpZiAobV9pc0FuaW1hdGluZykKICAgICAgICAgcmV0
dXJuOwpAQCAtOTksNyArMTAyLDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpl
bnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGUKIAogICAgIG1f
bGF5ZXJIb3N0aW5nQ29udGV4dCA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVy
bmFsSG9zdGluZ1Byb2Nlc3MoKTsKICAgICAKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6Oldl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0dXBGdWxsc2NyZWVuV2l0aElEKG1fbGF5
ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCksIGNsaWVudFJlY3RGb3JFbGVtZW50KHZpZGVv
RWxlbWVudCksIG1fcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSksIG1fcGFnZS0+cGFnZUlEKCkp
OworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpTZXR1cEZ1bGxzY3JlZW5XaXRoSUQobV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250ZXh0
SUQoKSwgY2xpZW50UmVjdEZvckVsZW1lbnQodmlkZW9FbGVtZW50KSwgbV9wYWdlLT5kZXZpY2VT
Y2FsZUZhY3RvcigpLCBtX2Z1bGxzY3JlZW5Nb2RlKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAK
IHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbigpCkBA
IC0yMzUsNyArMjM4LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRDbGVh
bnVwRnVsbHNjcmVlbigpCiAgICAgLy8gZW50ZXIgZnVsbHNjcmVlbiBub3cgaWYgaXQgd2FzIHBy
ZXZpb3VzbHkgcmVxdWVzdGVkIGR1cmluZyBhbiBhbmltYXRpb24uCiAgICAgX19ibG9jayBSZWZQ
dHI8V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ+IHByb3RlY3QodGhpcyk7CiAg
ICAgV2ViVGhyZWFkUnVuKF4gewotICAgICAgICBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVv
RWxlbWVudChtX3ZpZGVvRWxlbWVudC5nZXQoKSk7CisgICAgICAgIGVudGVyVmlkZW9GdWxsc2Ny
ZWVuRm9yVmlkZW9FbGVtZW50KG1fdmlkZW9FbGVtZW50LmdldCgpLCBtX2Z1bGxzY3JlZW5Nb2Rl
KTsKICAgICAgICAgcHJvdGVjdC5jbGVhcigpOwogICAgIH0pOwogfQo=
</data>
<flag name="review"
          id="265289"
          type_id="1"
          status="+"
          setter="jer.noble"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240565</attachid>
            <date>2014-10-28 13:07:23 -0700</date>
            <delta_ts>2014-10-28 16:14:40 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-138044-20141028130731.patch</filename>
            <type>text/plain</type>
            <size>42416</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjEzYzNlZDk4OTA5ZjA2
YzBmOGI4Njk5NTM2M2YwZTY0NjM2ODQ5Yi4uMWVmZjc3MmJkNGQ3MTEzODc3MjIyY2VhYWE0MTJk
NmE2NTNjOGE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE0LTEwLTI0ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgb3B0aW1pemVkIGZ1
bGxzY3JlZW4gbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzODA0NAorCisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKworICAgICAg
ICBFbmFibGUgZGlmZmVyZW50IHR5cGVzIG9mIGZ1bGxzY3JlZW4gdmlkZW8gYmVoYXZpb3IuCisg
ICAgICAgIEFkZCBhbiBlbnVtIHBhcmFtZXRlciB0byBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZp
ZGVvRWxlbWVudCBmb3IgYWx0ZXJuYXRlIHR5cGVzIG9mIGZ1bGxzY3JlZW4uCisgICAgICAgIEFk
ZCBnZXN0dXJlIGZvciBhbHRlcm5hdGUgZnVsbHNjcmVlbi4KKworICAgICAgICAqIE1vZHVsZXMv
bWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xzSG9zdDo6ZW50ZXJGdWxsc2NyZWVuT3B0aW1pemVkKTogYWRkZWQKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaDogYWRkZWQgZW50
ZXJGdWxsc2NyZWVuT3B0aW1pemVkCisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01l
ZGlhQ29udHJvbHNIb3N0LmlkbDogYWRkZWQgZW50ZXJGdWxsc2NyZWVuT3B0aW1pemVkCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNpT1MuanM6CisgICAgICAg
IChDb250cm9sbGVySU9TLnByb3RvdHlwZS5oYW5kbGVCYXNlR2VzdHVyZUNoYW5nZSk6IHJlY29n
bml6ZSBhbHRlcm5hdGUgZ2VzdHVyZQorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBhZGRlZCBw
YXJhbWV0ZXIgdG8gc2V0dXBGdWxsc2NyZWVuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZWRGcm9t
KSA6IHJlcGxhY2UgbV9pc0luVmlkZW9GdWxsc2NyZWVuIHdpdGggbV92aWRlb0Z1bGxzY3JlZW5U
eXBlCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzdG9wKSA6IGRpdHRvCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojppc0Z1bGxzY3JlZW4pIDogZGl0dG8K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbik6IGFk
ZCBwYXJhbWV0ZXIgdG8gZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVuKTogcmVwbGFjZSBt
X2lzSW5WaWRlb0Z1bGxzY3JlZW4gd2l0aCBtX3ZpZGVvRnVsbHNjcmVlblR5cGUKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbk9wdGltaXplZCk6IGFk
ZGVkCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6IGFkZGVkIGVudGVyRnVsbHNj
cmVlbk9wdGltaXplZAorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50
KTogYWRkZWQgcGFyYW1ldGVyCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXJBVktpdC5oOiBhZGQgcGFyYW1ldGVyCisgICAgICAgICogcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAgKC1bV2Vi
VmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciBlbnRlckZ1bGxzY3JlZW46dHlwZTpdKTogYWRkIHBh
cmFtZXRlcgorICAgICAgICAoLVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyIGVudGVyRnVs
bHNjcmVlbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQuaDogcmVvcmRlciBwcm90ZWN0ZWQgdG8gYWZ0ZXIgcHVibGlj
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
Lm1tOgorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgcGxheWVyXSk6IHRoaXMgc3R1
YiBpcyBub3cgcmVxdWlyZWQKKyAgICAgICAgKC1bV2ViQVZQbGF5ZXJDb250cm9sbGVyIGxheW91
dFN1YmxheWVyc09mTGF5ZXI6XSk6IHRoaXMgaXMgYSBiZXR0ZXIgd2F5IHRvIHVwZGF0ZSB2aWRl
byBmcmFtZXMKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1
cEZ1bGxzY3JlZW4pOiBpbXBsZW1lbnQgb3B0aW1pemVkIGZ1bGxzY3JlZW4gaW50ZXJmYWNlIAor
ICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVl
bik6IGRpdHRvCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhp
dEZ1bGxzY3JlZW4pOiBkaXR0bworICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OnJlcXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4pOiBkaXR0bworCiAyMDE0LTEwLTI4
ICBQYXNjYWwgSmFjcXVlbWFydCAgPHAuamFjcXVlbWFydEBzYW1zdW5nLmNvbT4KIAogICAgICAg
ICBBYmFuZG9uZWQgc2VsZWN0IG9wdGlvbiBpcyByZXNlbGVjdGVkIHdoZW4gc2hpZnQgc2VsZWN0
aW5nIG5ldyBvcHRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggM2Y2NzIyZWEyODhkMmJmYWFmMGQx
YjgxNTA0MjE4ZDFmMzMwZWJlNS4uMzdlY2JlZmY0MzNkZTA4YjFlN2ZmY2NkZWE3OGU1OTNlYTM2
YmVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTEwLTI0ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgb3B0aW1pemVkIGZ1
bGxzY3JlZW4gbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzODA0NAorCisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKworICAgICAg
ICBFbmFibGUgZGlmZmVyZW50IHR5cGVzIG9mIGZ1bGxzY3JlZW4gdmlkZW8gYmVoYXZpb3IuCisg
ICAgICAgIEFkZCBhbiBlbnVtIHBhcmFtZXRlciB0byBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZp
ZGVvRWxlbWVudCBmb3IgYWx0ZXJuYXRlIHR5cGVzIG9mIGZ1bGxzY3JlZW4uCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDogQWRkIGZ1bGxzY3JlZW5UeXBlIHBh
cmFtZXRlcgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAg
ICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1l
bnQpOiBkaXR0bworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
VmlldyBfZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6dHlwZTpdKTogZGl0dG8K
KyAgICAgICAgKC1bV2ViVmlldyBfZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6
XSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaDogZGl0dG8K
KwogMjAxNC0xMC0yNyAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UHJvdmlkZSBhIHdheSBmb3IgV2ViS2l0MSBjbGllbnRzIHRvIG92ZXJyaWRlIGRlZmF1bHQgYWN0
aW9uIG1lbnUgaXRlbXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1Nzk0Y2VjNjJhODM5MmYxYTIyNTE3MDNkNGNj
NDc1OTY5Y2ExNTA3Li5hMmE2YTA4YmY0ZTdiNDg0NjBlZWYyZTkyMWE4MTMzMTE0MGIwNWFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQtMTAtMjQgIEplcmVteSBKb25lcyAgPGpl
cmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBvcHRpbWl6ZWQgZnVsbHNjcmVlbiBtb2Rl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4MDQ0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgorCisgICAgICAgIEVuYWJs
ZSBkaWZmZXJlbnQgdHlwZXMgb2YgZnVsbHNjcmVlbiB2aWRlbyBiZWhhdmlvci4KKyAgICAgICAg
QWRkIGFuIGVudW0gcGFyYW1ldGVyIHRvIGVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50IGZvciBhbHRlcm5hdGUgdHlwZXMgb2YgZnVsbHNjcmVlbi4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg6IEFkZCBmdWxsc2NyZWVu
VHlwZSBwYXJhbWV0ZXIKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogZGl0dG8KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQpOiBkaXR0
bworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVl
bkZvclZpZGVvRWxlbWVudCk6IGRpdHRvCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaDogZGl0dG8KKyAgICAgICAgKiBXZWJQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg6IGRpdHRvCisgICAgICAgICogV2ViUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQp
OiBkaXR0bworICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRD
bGVhbnVwRnVsbHNjcmVlbik6IGRpdHRvCisKIDIwMTQtMTAtMjggIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGFuIGluYWNjdXJhdGUgY29t
bWVudCBpbiBXS0FjdGlvbk1lbnVDb250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAppbmRleCBl
NjMxZWZmMzZlNTA2NDY1MTIwZTM0MDMyMzgzMzNjN2M1ZDUyZmNkLi5lYjMwMmY0MGVkNjk5NjQx
ZjQ1NWU2MTE5NWJmOGE3N2UyYjEyNjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKQEAgLTE4Nyw2
ICsxODcsMTMgQEAgdm9pZCBNZWRpYUNvbnRyb2xzSG9zdDo6ZXhpdGVkRnVsbHNjcmVlbigpCiAg
ICAgaWYgKG1fdGV4dFRyYWNrQ29udGFpbmVyKQogICAgICAgICBtX3RleHRUcmFja0NvbnRhaW5l
ci0+ZXhpdGVkRnVsbHNjcmVlbigpOwogfQorICAgIAordm9pZCBNZWRpYUNvbnRyb2xzSG9zdDo6
ZW50ZXJGdWxsc2NyZWVuT3B0aW1pemVkKCkKK3sKKyNpZiBFTkFCTEUoT1BUSU1JWkVEX0ZVTExT
Q1JFRU4pCisgICAgbV9tZWRpYUVsZW1lbnQtPmVudGVyRnVsbHNjcmVlbk9wdGltaXplZCgpOwor
I2VuZGlmCit9CiAKIHZvaWQgTWVkaWFDb250cm9sc0hvc3Q6OnVwZGF0ZUNhcHRpb25EaXNwbGF5
U2l6ZXMoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRy
b2xzL01lZGlhQ29udHJvbHNIb3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29u
dHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaAppbmRleCAxNjQ3MjJhZWQ4NzcxYjNmMjNjNzlkNjM2
NTlkZjY4OGYyY2EyNjc2Li4xYmVhMzFlOWM0ZTY4YzgxNTFiM2MxYzYyMTdjM2JiZDE3YTcwNDA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFD
b250cm9sc0hvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMv
TWVkaWFDb250cm9sc0hvc3QuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1
cGRhdGVDYXB0aW9uRGlzcGxheVNpemVzKCk7CiAgICAgdm9pZCBlbnRlcmVkRnVsbHNjcmVlbigp
OwogICAgIHZvaWQgZXhpdGVkRnVsbHNjcmVlbigpOworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVu
T3B0aW1pemVkKCk7CiAKICAgICBTdHJpbmcgZXh0ZXJuYWxEZXZpY2VEaXNwbGF5TmFtZSgpIGNv
bnN0OwogICAgIFN0cmluZyBleHRlcm5hbERldmljZVR5cGUoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hv
c3QuaWRsCmluZGV4IDY4ZDA0OGIyZGViZGYyY2I1NjU1N2YyYTQyNWQwMTExNmYxMDQwNTAuLjhk
ZjVlODhiODhlMmZkNjA0OWJhMjQ4ODA2Mzg3Y2E2OGFjY2EwZGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0
LmlkbApAQCAtNTUsNCArNTUsNSBAQCBlbnVtIERldmljZVR5cGUgewogICAgIHZvaWQgdXBkYXRl
VGV4dFRyYWNrQ29udGFpbmVyKCk7CiAgICAgdm9pZCBlbnRlcmVkRnVsbHNjcmVlbigpOwogICAg
IHZvaWQgZXhpdGVkRnVsbHNjcmVlbigpOworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuT3B0aW1p
emVkKCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRy
b2xzL21lZGlhQ29udHJvbHNpT1MuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29u
dHJvbHMvbWVkaWFDb250cm9sc2lPUy5qcwppbmRleCBhOTVkNzZiN2IxMTdhOGRlM2ViMWU1MzZm
NDIwZGE0NTI3NDU1NDhkLi42YmRiZjAzMDI0YmZjYTc2Y2Q3ZWFiZmFlM2JhODBjZjcxYzczZWFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvbWVkaWFD
b250cm9sc2lPUy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMv
bWVkaWFDb250cm9sc2lPUy5qcwpAQCAtMzIwLDEyICszMjAsMTcgQEAgQ29udHJvbGxlcklPUy5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdmFyIHZlbG9jaXR5
ID0gTWF0aC5hYnMoZXZlbnQuc2NhbGUgLSAxKSAvIGR1cmF0aW9uOwotCi0gICAgICAgIGlmIChl
dmVudC5zY2FsZSA8IDEuMjUgfHwgdmVsb2NpdHkgPCAyKQorICAgICAgICAKKyAgICAgICAgaWYg
KHZlbG9jaXR5IDwgMikKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBkZWxldGUgdGhp
cy5nZXN0dXJlU3RhcnRUaW1lOwotICAgICAgICB0aGlzLnZpZGVvLndlYmtpdEVudGVyRnVsbHNj
cmVlbigpOworICAgICAgICBpZiAoZXZlbnQuc2NhbGUgPj0gMS4yNSkgeworICAgICAgICAgICAg
ZGVsZXRlIHRoaXMuZ2VzdHVyZVN0YXJ0VGltZTsKKyAgICAgICAgICAgIHRoaXMudmlkZW8ud2Vi
a2l0RW50ZXJGdWxsc2NyZWVuKCk7CisgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuc2NhbGUgPD0g
MC43NSkgeworICAgICAgICAgICAgZGVsZXRlIHRoaXMuZ2VzdHVyZVN0YXJ0VGltZTsKKyAgICAg
ICAgICAgIHRoaXMuaG9zdC5lbnRlckZ1bGxzY3JlZW5PcHRpbWl6ZWQoKTsKKyAgICAgICAgfQog
ICAgIH0sCiAKICAgICBoYW5kbGVCYXNlR2VzdHVyZUVuZDogZnVuY3Rpb24oZXZlbnQpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KaW5kZXggMmQwNmY2MzhlNjg4Y2FlM2M3M2EwYTBlMzAwYzU1OTI5MmRl
ODFmZS4uZTJkODUyODU2ZjE2YTc5ZTMwZGZkOWFiYzA2YTVjOGQ2ZTliNDQ3OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KQEAgLTM0NjEsNyArMzQ2MSw3IEBAIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxMXNldER1cmF0aW9uRWQKIF9fWk43V2ViQ29yZTMyV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNGV4aXRGdWxsc2NyZWVuRU5TXzdJbnRSZWN0
RQogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE0c2V0Q3Vy
cmVudFRpbWVFZGQKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQxNWVudGVyRnVsbHNjcmVlbkV2Ci1fX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0MTVzZXR1cEZ1bGxzY3JlZW5FUjdDQUxheWVyTlNfN0ludFJlY3RFUDZVSVZp
ZXcKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNXNldHVw
RnVsbHNjcmVlbkVSN0NBTGF5ZXJOU183SW50UmVjdEVQNlVJVmlld05TXzE2SFRNTE1lZGlhRWxl
bWVudDE5VmlkZW9GdWxsc2NyZWVuTW9kZUUKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQxN2NsZWFudXBGdWxsc2NyZWVuRXYKIF9fWk43V2ViQ29yZTMyV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxN3NldFNlZWthYmxlUmFuZ2VzRVJLTlNfMTBU
aW1lUmFuZ2VzRQogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDE4c2V0VmlkZW9EaW1lbnNpb25zRWJmZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKaW5kZXggYTM3ZGVhNzdhMzJjMDM4Y2IwMzc5ZmY2YTE2OTA4MWRmZjc4ODY0Ni4u
ZTNhZDE1NjgwMDljNmEyZGMwZjkxNWNkYmI0ZmMyY2ZlZjQyMzM4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0yNzMsNiArMjczLDcgQEAgSFRNTE1lZGlh
RWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW0KICAgICAsIG1fY2xvY2tUaW1lQXRMYXN0VXBkYXRlRXZlbnQoMCkKICAg
ICAsIG1fbGFzdFRpbWVVcGRhdGVFdmVudE1vdmllVGltZShNZWRpYVRpbWU6OnBvc2l0aXZlSW5m
aW5pdGVUaW1lKCkpCiAgICAgLCBtX2xvYWRTdGF0ZShXYWl0aW5nRm9yU291cmNlKQorICAgICwg
bV92aWRlb0Z1bGxzY3JlZW5Nb2RlKFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKQogI2lmIFBMQVRG
T1JNKElPUykKICAgICAsIG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eShNZWRpYVBsYXllcjo6Vmlk
ZW9HcmF2aXR5UmVzaXplQXNwZWN0KQogI2VuZGlmCkBAIC0zMDIsNyArMzAzLDYgQEAgSFRNTE1l
ZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1fc2VudEVuZEV2ZW50KGZhbHNlKQogICAgICwgbV9w
YXVzZWRJbnRlcm5hbChmYWxzZSkKICAgICAsIG1fc2VuZFByb2dyZXNzRXZlbnRzKHRydWUpCi0g
ICAgLCBtX2lzSW5WaWRlb0Z1bGxzY3JlZW4oZmFsc2UpCiAgICAgLCBtX2Nsb3NlZENhcHRpb25z
VmlzaWJsZShmYWxzZSkKICAgICAsIG1fd2Via2l0TGVnYWN5Q2xvc2VkQ2FwdGlvbk92ZXJyaWRl
KGZhbHNlKQogICAgICwgbV9jb21wbGV0ZWx5TG9hZGVkKGZhbHNlKQpAQCAtNjc5LDcgKzY3OSw3
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYgaW5z
ZXJ0aW9uUG9pbnQpCiAgICAgICAgICAgICBtZWRpYUNvbnRyb2xzKCktPmhpZGUoKTsKICAgICAg
ICAgaWYgKG1fbmV0d29ya1N0YXRlID4gTkVUV09SS19FTVBUWSkKICAgICAgICAgICAgIHBhdXNl
KCk7Ci0gICAgICAgIGlmIChtX2lzSW5WaWRlb0Z1bGxzY3JlZW4pCisgICAgICAgIGlmIChtX3Zp
ZGVvRnVsbHNjcmVlbk1vZGUgIT0gVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpCiAgICAgICAgICAg
ICBleGl0RnVsbHNjcmVlbigpOwogCiAgICAgICAgIGlmIChtX3BsYXllcikgewpAQCAtNDY3MCw3
ICs0NjcwLDcgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpjYW5TdXNwZW5kKCkgY29uc3QKIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6c3RvcCgpCiB7CiAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlh
RWxlbWVudDo6c3RvcCglcCkiLCB0aGlzKTsKLSAgICBpZiAobV9pc0luVmlkZW9GdWxsc2NyZWVu
KQorICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgIT0gVmlkZW9GdWxsc2NyZWVuTW9kZU5v
bmUpCiAgICAgICAgIGV4aXRGdWxsc2NyZWVuKCk7CiAgICAgCiAgICAgbV9pbkFjdGl2ZURvY3Vt
ZW50ID0gZmFsc2U7CkBAIC00NzY1LDcgKzQ3NjUsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKQogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIGJvb2wg
SFRNTE1lZGlhRWxlbWVudDo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIG1faXNJblZpZGVvRnVsbHNjcmVlbiAmJiBtX3BsYXllciA/IG1fcGxh
eWVyLT5yZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgOiBmYWxzZTsKKyAgICByZXR1
cm4gKG1fdmlkZW9GdWxsc2NyZWVuTW9kZSAhPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSkgJiYg
bV9wbGF5ZXIgPyBtX3BsYXllci0+cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIDog
ZmFsc2U7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0VGV4dFRyYWNrUmVwcmVzZW50
YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50YXRpb24qIHJlcHJlc2VudGF0aW9uKQpAQCAtNDg1Nyw3
ICs0ODU3LDcgQEAgZG91YmxlIEhUTUxNZWRpYUVsZW1lbnQ6Om1heEZhc3RGb3J3YXJkUmF0ZSgp
IGNvbnN0CiAgICAgCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmlzRnVsbHNjcmVlbigpIGNvbnN0
CiB7Ci0gICAgaWYgKG1faXNJblZpZGVvRnVsbHNjcmVlbikKKyAgICBpZiAobV92aWRlb0Z1bGxz
Y3JlZW5Nb2RlICE9IFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCkBAIC00ODc4LDEwICs0ODc4LDEx
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dG9nZ2xlRnVsbHNjcmVlblN0YXRlKCkKICAgICAg
ICAgZW50ZXJGdWxsc2NyZWVuKCk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJG
dWxsc2NyZWVuKCkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuKFZpZGVv
RnVsbHNjcmVlbk1vZGUgbW9kZSkKIHsKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50
OjplbnRlckZ1bGxzY3JlZW4oJXApIiwgdGhpcyk7Ci0gICAgaWYgKG1faXNJblZpZGVvRnVsbHNj
cmVlbikKKyAgICBBU1NFUlQobW9kZSAhPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7CisgICAg
aWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZSAhPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSkKICAg
ICAgICAgcmV0dXJuOwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpAQCAtNDg5MSwxOCAr
NDg5MiwyMyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbigpCiAgICAg
fQogI2VuZGlmCiAKLSAgICBtX2lzSW5WaWRlb0Z1bGxzY3JlZW4gPSB0cnVlOworICAgIG1fdmlk
ZW9GdWxsc2NyZWVuTW9kZSA9IG1vZGU7CiAgICAgaWYgKGhhc01lZGlhQ29udHJvbHMoKSkKICAg
ICAgICAgbWVkaWFDb250cm9scygpLT5lbnRlcmVkRnVsbHNjcmVlbigpOwogICAgIGlmIChkb2N1
bWVudCgpLnBhZ2UoKSAmJiBpczxIVE1MVmlkZW9FbGVtZW50PigqdGhpcykpIHsKICAgICAgICAg
SFRNTFZpZGVvRWxlbWVudCYgYXNWaWRlbyA9IGRvd25jYXN0PEhUTUxWaWRlb0VsZW1lbnQ+KCp0
aGlzKTsKICAgICAgICAgaWYgKGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5z
dXBwb3J0c1ZpZGVvRnVsbHNjcmVlbigpKSB7Ci0gICAgICAgICAgICBkb2N1bWVudCgpLnBhZ2Uo
KS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQo
JmFzVmlkZW8pOworICAgICAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVu
dCgpLmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KCZhc1ZpZGVvLCBtX3ZpZGVv
RnVsbHNjcmVlbk1vZGUpOwogICAgICAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCku
d2Via2l0YmVnaW5mdWxsc2NyZWVuRXZlbnQpOwogICAgICAgICB9CiAgICAgfQogfQogCit2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbigpCit7CisgICAgZW50ZXJGdWxsc2Ny
ZWVuKFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCk7Cit9CisKIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6ZXhpdEZ1bGxzY3JlZW4oKQogewogICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1l
bnQ6OmV4aXRGdWxsc2NyZWVuKCVwKSIsIHRoaXMpOwpAQCAtNDkxNCw4ICs0OTIwLDggQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpleGl0RnVsbHNjcmVlbigpCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAjZW5kaWYKLSAgICBBU1NFUlQobV9pc0luVmlkZW9GdWxsc2NyZWVuKTsKLSAgICBtX2lz
SW5WaWRlb0Z1bGxzY3JlZW4gPSBmYWxzZTsKKyAgICBBU1NFUlQobV92aWRlb0Z1bGxzY3JlZW5N
b2RlICE9IFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKTsKKyAgICBtX3ZpZGVvRnVsbHNjcmVlbk1v
ZGUgPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZTsKICAgICBpZiAoaGFzTWVkaWFDb250cm9scygp
KQogICAgICAgICBtZWRpYUNvbnRyb2xzKCktPmV4aXRlZEZ1bGxzY3JlZW4oKTsKICAgICBpZiAo
ZG9jdW1lbnQoKS5wYWdlKCkgJiYgaXM8SFRNTFZpZGVvRWxlbWVudD4oKnRoaXMpKSB7CkBAIC00
OTI5LDYgKzQ5MzUsMTEgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpleGl0RnVsbHNjcmVlbigp
CiAgICAgfQogfQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbk9wdGlt
aXplZCgpCit7CisgICAgZW50ZXJGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6
ZWQpOworfQorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZEJlY29tZUZ1bGxzY3JlZW5FbGVt
ZW50KCkKIHsKICAgICBpZiAoaGFzTWVkaWFDb250cm9scygpKQpAQCAtNjAwMiw2ICs2MDEzLDkg
QEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpvdmVycmlkZUJhY2tncm91bmRQbGF5YmFja1Jlc3Ry
aWN0aW9uKCkgY29uc3QKICAgICBpZiAobV9wbGF5ZXIgJiYgbV9wbGF5ZXItPmlzQ3VycmVudFBs
YXliYWNrVGFyZ2V0V2lyZWxlc3MoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKKyAg
ICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlID09IFZpZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6
ZWQpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIAogICAgIHJldHVybiBmYWxzZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBiM2FmMDA3MDRlMzEyMGEy
OWUyNTNlYzMyN2VkZGZmNzRiZDlhOTcyLi5mNmNlMzk4NDc2MmExOWU0MGFmNzU5MDM2YTJlYjA2
MzRjZGMyNjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMzkw
LDggKzM5MCwxMSBAQCBwdWJsaWM6CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBi
b29sIGlzRnVsbHNjcmVlbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgdG9nZ2xlRnVsbHNj
cmVlblN0YXRlKCk7CisgICAgZW51bSBWaWRlb0Z1bGxzY3JlZW5Nb2RlIHsgVmlkZW9GdWxsc2Ny
ZWVuTW9kZU5vbmUsIFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCwgVmlkZW9GdWxsc2NyZWVu
TW9kZU9wdGltaXplZCB9OworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVl
bk1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV4aXRGdWxsc2NyZWVuKCk7CisgICAgdm9pZCBlbnRlckZ1
bGxzY3JlZW5PcHRpbWl6ZWQoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBoYXNDbG9zZWRDYXB0aW9u
cygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjbG9zZWRDYXB0aW9uc1Zpc2li
bGUoKSBjb25zdCBvdmVycmlkZTsKQEAgLTc2NCw2ICs3NjcsNyBAQCBwcml2YXRlOgogICAgIFJl
ZlB0cjxIVE1MU291cmNlRWxlbWVudD4gbV9jdXJyZW50U291cmNlTm9kZTsKICAgICBSZWZQdHI8
Tm9kZT4gbV9uZXh0Q2hpbGROb2RlVG9Db25zaWRlcjsKIAorICAgIFZpZGVvRnVsbHNjcmVlbk1v
ZGUgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBSZXRhaW5Q
dHI8UGxhdGZvcm1MYXllcj4gbV92aWRlb0Z1bGxzY3JlZW5MYXllcjsKICAgICBGbG9hdFJlY3Qg
bV92aWRlb0Z1bGxzY3JlZW5GcmFtZTsKQEAgLTgyNyw3ICs4MzEsNiBAQCBwcml2YXRlOgogICAg
IC8vIHN1cHBvcnQgcHJvZ3Jlc3MgZXZlbnRzIHNvIHNldHRpbmcgbV9zZW5kUHJvZ3Jlc3NFdmVu
dHMgZGlzYWJsZXMgdGhlbSAKICAgICBib29sIG1fc2VuZFByb2dyZXNzRXZlbnRzIDogMTsKIAot
ICAgIGJvb2wgbV9pc0luVmlkZW9GdWxsc2NyZWVuIDogMTsKICAgICBib29sIG1fY2xvc2VkQ2Fw
dGlvbnNWaXNpYmxlIDogMTsKICAgICBib29sIG1fd2Via2l0TGVnYWN5Q2xvc2VkQ2FwdGlvbk92
ZXJyaWRlIDogMTsKICAgICBib29sIG1fY29tcGxldGVseUxvYWRlZCA6IDE7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaAppbmRleCAyODdmZWFjZTlhYjQ4ZGNlMTc4ZDFmNDg5YmQyZDdiNzFj
NTk4NTczLi4yNzM2N2Y1ZWMzYTc1ODllY2YyMzE5NzQxM2M2MjUxOTQ2MmM5ZTk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJGb2N1
c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhv
c3RXaW5kb3cuaCIKICNpbmNsdWRlICJMYXllckZsdXNoVGhyb3R0bGVTdGF0ZS5oIgogI2luY2x1
ZGUgIlBvcHVwTWVudS5oIgpAQCAtMzM4LDcgKzMzOSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAg
ICAgdmlydHVhbCBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKCkgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQo
SFRNTFZpZGVvRWxlbWVudCopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBlbnRlclZpZGVvRnVsbHNj
cmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50KiwgSFRNTE1lZGlhRWxlbWVudDo6
VmlkZW9GdWxsc2NyZWVuTW9kZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxz
Y3JlZW4oKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9Q
bGF5YmFjaygpIHsgcmV0dXJuIGZhbHNlOyB9IAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0
LmgKaW5kZXggODMyNTMwZjU5MzdlNzhkOGYxZGFmOTM1OGUzMjAyYWYyYzA1YTlmNi4uYTIzMzYw
Y2UxYmFhMTE4M2RiOGIzZDkwMzgwYTA1NjczNGI0MWIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyQVZLaXQuaApAQCAtMzUsNyArMzUsNyBAQCBPQkpDX0NMQVNTIFVJVmlldzsKIFdFQkNPUkVf
RVhQT1JUIEBpbnRlcmZhY2UgV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciA6IE5TT2JqZWN0
CiAtICh2b2lkKXNldFZpZGVvRWxlbWVudDooV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCopdmlk
ZW9FbGVtZW50OwogLSAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCopdmlkZW9FbGVtZW50Owot
LSAodm9pZCllbnRlckZ1bGxzY3JlZW46KFVJVmlldyAqKXZpZXc7CistICh2b2lkKWVudGVyRnVs
bHNjcmVlbjooVUlWaWV3ICopdmlldyBtb2RlOihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGU7CiAtICh2b2lkKWV4aXRGdWxsc2NyZWVuOwogLSAodm9p
ZClyZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuOwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyQVZLaXQubW0KaW5kZXggODhhZjE5OThiNmZkM2QwMGUzOTljZDg5Nzc0MjA4NTc5N2Q2Njk1
Yi4uYjYxMzJlZjZkYzEyMWUyMjE5NTlkNDRkYWM2ODdhY2IxNzVmMjRlYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJB
VktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckFWS2l0Lm1tCkBAIC0xMTQsNyArMTE0LDcgQEAgcHVibGljOgogICAgIHJl
dHVybiBfdmlkZW9FbGVtZW50LmdldCgpOwogfQogCi0tICh2b2lkKWVudGVyRnVsbHNjcmVlbjoo
VUlWaWV3ICopdmlldworLSAodm9pZCllbnRlckZ1bGxzY3JlZW46KFVJVmlldyAqKXZpZXcgbW9k
ZTooSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSltb2RlCiB7CiAgICAgW3Nl
bGYgcmV0YWluXTsgLy8gQmFsYW5jZWQgYnkgLXJlbGVhc2UgaW4gZGlkRXhpdEZ1bGxzY3JlZW46
CiAgICAgCkBAIC0xMjUsNyArMTI1LDcgQEAgcHVibGljOgogICAgIF9pbnRlcmZhY2UtPnNldFdl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsKF9tb2RlbC5nZXQoKSk7CiAgICAgX21vZGVsLT5zZXRWaWRl
b0VsZW1lbnQoX3ZpZGVvRWxlbWVudC5nZXQoKSk7CiAgICAgX3ZpZGVvRnVsbHNjcmVlbkxheWVy
ID0gW0NBTGF5ZXIgbGF5ZXJdOwotICAgIF9pbnRlcmZhY2UtPnNldHVwRnVsbHNjcmVlbigqX3Zp
ZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpLCBfdmlkZW9FbGVtZW50LT5jbGllbnRSZWN0KCksIHZp
ZXcpOworICAgIF9pbnRlcmZhY2UtPnNldHVwRnVsbHNjcmVlbigqX3ZpZGVvRnVsbHNjcmVlbkxh
eWVyLmdldCgpLCBfdmlkZW9FbGVtZW50LT5jbGllbnRSZWN0KCksIHZpZXcsIG1vZGUpOwogfQog
CiAtICh2b2lkKWV4aXRGdWxsc2NyZWVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCmluZGV4
IGQ3YzEyNDQxZjVlNjQzYmIyODA5OWQ3ZmY1ODJlNzM5OWRkMWJmODQuLjMwNWZhYzc1MDlmMzAw
NWViZGNmMGIxOWMxZWIzNmZiMWE0NGExMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5o
CkBAIC0zMCw2ICszMCw3IEBACiAjaWYgUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSA4MDAwMAogCiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudExpc3Rl
bmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QbGF0Zm9ybUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2UuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC02MywyMyArNjQs
NyBAQCBwdWJsaWM6CiBjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdAogICAg
IDogcHVibGljIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZQogICAgICwgcHVibGljIFJlZkNv
dW50ZWQ8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHsKLSAgICAgICAgCi0gICAg
UmV0YWluUHRyPFdlYkFWUGxheWVyQ29udHJvbGxlcj4gbV9wbGF5ZXJDb250cm9sbGVyOwotICAg
IFJldGFpblB0cjxBVlBsYXllclZpZXdDb250cm9sbGVyPiBtX3BsYXllclZpZXdDb250cm9sbGVy
OwotICAgIFJldGFpblB0cjxDQUxheWVyPiBtX3ZpZGVvTGF5ZXI7Ci0gICAgUmV0YWluUHRyPFdl
YkFWVmlkZW9MYXllcj4gbV92aWRlb0xheWVyQ29udGFpbmVyOwotICAgIFdlYlZpZGVvRnVsbHNj
cmVlbk1vZGVsKiBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsOwotICAgIFdlYlZpZGVvRnVsbHNjcmVl
bkNoYW5nZU9ic2VydmVyKiBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcjsKIAotICAgIC8vIFRo
ZXNlIGFyZSBvbmx5IHVzZWQgd2hlbiBmdWxsc2NyZWVuIGlzIHByZXNlbnRlZCBpbiBhIHNlcGFy
YXRlIHdpbmRvdy4KLSAgICBSZXRhaW5QdHI8VUlXaW5kb3c+IG1fd2luZG93OwotICAgIFJldGFp
blB0cjxVSVZpZXdDb250cm9sbGVyPiBtX3ZpZXdDb250cm9sbGVyOwotICAgIFJldGFpblB0cjxV
SVZpZXc+IG1fcGFyZW50VmlldzsKLQotICAgIFdlYkFWUGxheWVyQ29udHJvbGxlciAqcGxheWVy
Q29udHJvbGxlcigpOwotICAgIAotICAgIHZvaWQgZG9FbnRlckZ1bGxzY3JlZW4oKTsKLSAgICAg
ICAgCiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQoKTsKICAgICB2aXJ0dWFsIH5XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dCgpIHsgfQpAQCAtOTUsMTMgKzgwLDM0IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2
aXJ0dWFsIHZvaWQgc2V0QXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPFdU
Rjo6U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCkgb3ZlcnJpZGU7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNldExlZ2libGVNZWRpYVNlbGVjdGlvbk9w
dGlvbnMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0
ZWRJbmRleCkgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNldEV4
dGVybmFsUGxheWJhY2soYm9vbCBlbmFibGVkLCBFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwg
V1RGOjpTdHJpbmcgbG9jYWxpemVkRGV2aWNlTmFtZSkgb3ZlcnJpZGU7Ci0KLSAgICBXRUJDT1JF
X0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0dXBGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImLCBJbnRS
ZWN0IGluaXRpYWxSZWN0LCBVSVZpZXcgKik7CisgICAgCisgICAgV0VCQ09SRV9FWFBPUlQgdmly
dHVhbCB2b2lkIHNldHVwRnVsbHNjcmVlbihQbGF0Zm9ybUxheWVyJiwgSW50UmVjdCBpbml0aWFs
UmVjdCwgVUlWaWV3ICosIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxzY3JlZW4oSW50UmVjdCBmaW5hbFJl
Y3QpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBjbGVhbnVwRnVsbHNjcmVlbigp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKCk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHJlcXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4oKTsK
KyAgICAKK3Byb3RlY3RlZDoKKyAgICAgICAgCisgICAgUmV0YWluUHRyPFdlYkFWUGxheWVyQ29u
dHJvbGxlcj4gbV9wbGF5ZXJDb250cm9sbGVyOworICAgIFJldGFpblB0cjxBVlBsYXllclZpZXdD
b250cm9sbGVyPiBtX3BsYXllclZpZXdDb250cm9sbGVyOworICAgIFJldGFpblB0cjxDQUxheWVy
PiBtX3ZpZGVvTGF5ZXI7CisgICAgUmV0YWluUHRyPFdlYkFWVmlkZW9MYXllcj4gbV92aWRlb0xh
eWVyQ29udGFpbmVyOworICAgIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKiBtX3ZpZGVvRnVsbHNj
cmVlbk1vZGVsOworICAgIFdlYlZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKiBtX2Z1bGxz
Y3JlZW5DaGFuZ2VPYnNlcnZlcjsKKworICAgIC8vIFRoZXNlIGFyZSBvbmx5IHVzZWQgd2hlbiBm
dWxsc2NyZWVuIGlzIHByZXNlbnRlZCBpbiBhIHNlcGFyYXRlIHdpbmRvdy4KKyAgICBSZXRhaW5Q
dHI8VUlXaW5kb3c+IG1fd2luZG93OworICAgIFJldGFpblB0cjxVSVZpZXdDb250cm9sbGVyPiBt
X3ZpZXdDb250cm9sbGVyOworICAgIFJldGFpblB0cjxVSVZpZXc+IG1fcGFyZW50VmlldzsKKyAg
ICBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1fbW9kZTsKKyAgICBib29s
IG1fZXhpdFJlcXVlc3RlZDsKKyAgICBib29sIG1fZXhpdENvbXBsZXRlZDsKKworICAgIFdlYkFW
UGxheWVyQ29udHJvbGxlciAqcGxheWVyQ29udHJvbGxlcigpOworICAgIAorICAgIHZvaWQgZG9F
bnRlckZ1bGxzY3JlZW4oKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpp
bmRleCA5ZTMyYWQwOWZmNTE4NDAxMzUyNmVjMDBiNzc0YzI4NGY5ZTFhMzkwLi5iMWRiZjgzOGQ5
NzM3NTM2YjY4OWRjMTJhYWNkNTRkOTM4ZTkyNDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0Lm1tCkBAIC0xNTcsNiArMTU3LDEwIEBAIFNPRlRfTElOS19DT05TVEFOVChDb3JlTWVkaWEs
IGtDTVRpbWVJbmRlZmluaXRlLCBDTVRpbWUpCiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCist
IChBVlBsYXllciopIHBsYXllciB7CisgICAgcmV0dXJuIG5pbDsKK30KKwogLSAoaWQpZm9yd2Fy
ZGluZ1RhcmdldEZvclNlbGVjdG9yOihTRUwpc2VsZWN0b3IKIHsKICAgICBVTlVTRURfUEFSQU0o
c2VsZWN0b3IpOwpAQCAtNDYwLDYgKzQ2NCwxOCBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQ29yZU1l
ZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogICAgIHJldHVybiBbTlNTZXQgc2V0V2l0
aE9iamVjdHM6QCJleHRlcm5hbFBsYXliYWNrQWN0aXZlIiwgbmlsXTsKIH0KIAorLSAodm9pZCls
YXlvdXRTdWJsYXllcnNPZkxheWVyOihDQUxheWVyICopbGF5ZXIKK3sKKyAgICBDR1JlY3QgbGF5
ZXJCb3VuZHMgPSBbbGF5ZXIgYm91bmRzXTsKKyAgICBzZWxmLmRlbGVnYXRlLT5zZXRWaWRlb0xh
eWVyRnJhbWUoQ0dSZWN0TWFrZSgwLCAwLCBDR1JlY3RHZXRXaWR0aChsYXllckJvdW5kcyksIENH
UmVjdEdldEhlaWdodChsYXllckJvdW5kcykpKTsKKyAgICAKKyAgICBbQ0FUcmFuc2FjdGlvbiBi
ZWdpbl07CisgICAgZm9yIChDQUxheWVyICpzdWJsYXllciBpbiBbbGF5ZXIgc3VibGF5ZXJzXSkg
eworICAgICAgICBbc3VibGF5ZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludE1ha2UoMC41LCAwLjUp
XTsKKyAgICAgICAgW3N1YmxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKENHUmVjdEdldE1p
ZFgobGF5ZXJCb3VuZHMpLCBDR1JlY3RHZXRNaWRZKGxheWVyQm91bmRzKSldOworICAgIH0KKyAg
ICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworfQogQGVuZAogCiBAaW50ZXJmYWNlIFdlYkFWTWVk
aWFTZWxlY3Rpb25PcHRpb24gOiBOU09iamVjdApAQCAtNzcyLDEyICs3ODgsMTUgQEAgdm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0RXh0ZXJuYWxQbGF5YmFjayhib29s
IGVuYWJsZWQsIEV4dGVybmEKICAgICB9KTsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDo6c2V0dXBGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImIHZpZGVvTGF5ZXIs
IFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QsIFVJVmlldyogcGFyZW50VmlldykKK3ZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVwRnVsbHNjcmVlbihQbGF0Zm9y
bUxheWVyJiB2aWRlb0xheWVyLCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0LCBVSVZpZXcq
IHBhcmVudFZpZXcsIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkK
IHsKICAgICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4g
cHJvdGVjdCh0aGlzKTsKICAgICAKKyAgICBBU1NFUlQobW9kZSAhPSBIVE1MTWVkaWFFbGVtZW50
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7CiAgICAgbV92aWRlb0xheWVyID0gJnZpZGVvTGF5
ZXI7CiAgICAgCisgICAgbV9tb2RlID0gbW9kZTsKKyAgICAKICAgICBkaXNwYXRjaF9hc3luYyhk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewogCiAgICAgICAgIFtDQVRyYW5zYWN0aW9uIGJl
Z2luXTsKQEAgLTgzOSwxOSArODU4LDU4IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbigpCiB7CiAgICAgX19ibG9jayBSZWZQdHI8V2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHByb3RlY3QodGhpcyk7CiAgICAgCisgICAgbV9l
eGl0Q29tcGxldGVkID0gZmFsc2U7CisgICAgbV9leGl0UmVxdWVzdGVkID0gZmFsc2U7CisgICAg
CiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKICAgICAg
ICAgW21fdmlkZW9MYXllckNvbnRhaW5lciBzZXRCYWNrZ3JvdW5kQ29sb3I6W1tnZXRVSUNvbG9y
Q2xhc3MoKSBibGFja0NvbG9yXSBDR0NvbG9yXV07Ci0gICAgICAgIFttX3BsYXllclZpZXdDb250
cm9sbGVyIGVudGVyRnVsbFNjcmVlbldpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wsIE5TRXJy
b3IqKQotICAgICAgICB7Ci0gICAgICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRT
aG93c1BsYXliYWNrQ29udHJvbHM6WUVTXTsKLQotICAgICAgICAgICAgV2ViVGhyZWFkUnVuKF57
Ci0gICAgICAgICAgICAgICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKQotICAgICAg
ICAgICAgICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZGlkRW50ZXJGdWxsc2Ny
ZWVuKCk7Ci0KLSAgICAgICAgICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKLSAgICAgICAgICAg
IH0pOwotICAgICAgICB9XTsKKyNpZiBFTkFCTEUoT1BUSU1JWkVEX0ZVTExTQ1JFRU4pCisgICAg
ICAgIGlmIChtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9w
dGltaXplZCkgeworICAgICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc3RhcnRPcHRp
bWl6ZWRGdWxsc2NyZWVuV2l0aFN0YXJ0Q29tcGxldGlvbkhhbmRsZXI6XihCT09MIHN1Y2Nlc3Ms
IE5TRXJyb3IgKikgeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFttX3BsYXll
clZpZXdDb250cm9sbGVyIHNldFNob3dzUGxheWJhY2tDb250cm9sczpZRVNdOworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgIFdlYlRocmVhZFJ1biheeworICAgICAgICAgICAgICAg
ICAgICBbbV93aW5kb3cgc2V0SGlkZGVuOllFU107CisgICAgICAgICAgICAgICAgICAgIGlmICht
X2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZnVs
bHNjcmVlbkNoYW5nZU9ic2VydmVyLT5kaWRFbnRlckZ1bGxzY3JlZW4oKTsKKyAgICAgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmICghc3VjY2VzcykgeworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+cmVxdWVzdEV4aXRGdWxsc2Ny
ZWVuKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSBzdG9w
Q29tcGxldGlvbkhhbmRsZXI6XihBVlBsYXllclZpZXdDb250cm9sbGVyT3B0aW1pemVkRnVsbHNj
cmVlblN0b3BSZWFzb24pIHsKKyAgICAgICAgICAgICAgICBtX2V4aXRDb21wbGV0ZWQgPSB0cnVl
OworICAgICAgICAgICAgICAgIGlmIChtX2V4aXRSZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgICAg
ICAgICAgW21fdmlkZW9MYXllckNvbnRhaW5lciBzZXRCYWNrZ3JvdW5kQ29sb3I6W1tnZXRVSUNv
bG9yQ2xhc3MoKSBjbGVhckNvbG9yXSBDR0NvbG9yXV07CisgICAgICAgICAgICAgICAgICAgIFtb
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBzZXRCYWNrZ3JvdW5kQ29sb3I6W2dldFVJQ29s
b3JDbGFzcygpIGNsZWFyQ29sb3JdXTsKKyAgICAgICAgICAgICAgICAgICAgV2ViVGhyZWFkUnVu
KF57CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2
ZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2
ZXItPmRpZEV4aXRGdWxsc2NyZWVuKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0
ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwpCisg
ICAgICAgICAgICAgICAgICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5yZXF1ZXN0RXhp
dEZ1bGxzY3JlZW4oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9XTsKKyAgICAg
ICAgfSBlbHNlCisjZW5kaWYKKyAgICAgICAgaWYgKG1fbW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpIHsKKyAgICAgICAgICAgIFttX3BsYXllclZp
ZXdDb250cm9sbGVyIGVudGVyRnVsbFNjcmVlbldpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0ws
IE5TRXJyb3IqKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFttX3BsYXllclZpZXdD
b250cm9sbGVyIHNldFNob3dzUGxheWJhY2tDb250cm9sczpZRVNdOworICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgIFdlYlRocmVhZFJ1biheeworICAgICAgICAgICAgICAgICAgICBp
ZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBt
X2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZGlkRW50ZXJGdWxsc2NyZWVuKCk7CisgICAgICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH1dOworICAgICAgICB9CiAgICAgfSk7CiB9
CiAKQEAgLTg1OSw2ICs5MTcsMTYgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6ZXhpdEZ1bGxzY3JlZW4oV2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3QKIHsKICAgICBf
X2Jsb2NrIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gcHJvdGVjdCh0
aGlzKTsKICAgICAKKyAgICBtX2V4aXRSZXF1ZXN0ZWQgPSB0cnVlOworICAgIGlmIChtX2V4aXRD
b21wbGV0ZWQpIHsKKyAgICAgICAgV2ViVGhyZWFkUnVuKF57CisgICAgICAgICAgICBpZiAobV9m
dWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCisgICAgICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXItPmRpZEV4aXRGdWxsc2NyZWVuKCk7CisgICAgICAgICAgICBwcm90ZWN0ID0g
bnVsbHB0cjsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCiAgICAg
bV9wbGF5ZXJDb250cm9sbGVyID0gbmlsOwogICAgIAogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3Bh
dGNoX2dldF9tYWluX3F1ZXVlKCksIF57CkBAIC04NzEsMTYgKzkzOSwyNiBAQCB2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbihXZWJDb3JlOjpJbnRS
ZWN0IGZpbmFsUmVjdAogICAgICAgICBpZiAoW21fdmlkZW9MYXllckNvbnRhaW5lciB2aWRlb0xh
eWVyR3Jhdml0eV0gIT0gQVZWaWRlb0xheWVyR3Jhdml0eVJlc2l6ZUFzcGVjdCkKICAgICAgICAg
ICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0VmlkZW9MYXllckdyYXZpdHk6QVZWaWRlb0xh
eWVyR3Jhdml0eVJlc2l6ZUFzcGVjdF07CiAgICAgICAgIFtbbV9wbGF5ZXJWaWV3Q29udHJvbGxl
ciB2aWV3XSBsYXlvdXRJZk5lZWRlZF07Ci0gICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVy
IGV4aXRGdWxsU2NyZWVuV2l0aENvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCwgTlNFcnJvciopIHsK
LSAgICAgICAgICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0QmFja2dyb3VuZENvbG9yOltb
Z2V0VUlDb2xvckNsYXNzKCkgY2xlYXJDb2xvcl0gQ0dDb2xvcl1dOwotICAgICAgICAgICAgW1tt
X3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddIHNldEJhY2tncm91bmRDb2xvcjpbZ2V0VUlDb2xv
ckNsYXNzKCkgY2xlYXJDb2xvcl1dOworICAgICAgICAKKyNpZiBFTkFCTEUoT1BUSU1JWkVEX0ZV
TExTQ1JFRU4pCisgICAgICAgIGlmIChtX21vZGUgPT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9G
dWxsc2NyZWVuTW9kZU9wdGltaXplZCkgeworICAgICAgICAgICAgW21fd2luZG93IHNldEhpZGRl
bjpOT107CisgICAgICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzdG9wT3B0aW1pemVk
RnVsbHNjcmVlbl07CisgICAgICAgIH0gZWxzZQorI2VuZGlmCisgICAgICAgIGlmIChtX21vZGUg
PT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSB7CisgICAg
ICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBleGl0RnVsbFNjcmVlbldpdGhDb21wbGV0
aW9uSGFuZGxlcjpeKEJPT0wsIE5TRXJyb3IqKSB7CisgICAgICAgICAgICAgICAgbV9leGl0Q29t
cGxldGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHNl
dEJhY2tncm91bmRDb2xvcjpbW2dldFVJQ29sb3JDbGFzcygpIGNsZWFyQ29sb3JdIENHQ29sb3Jd
XTsKKyAgICAgICAgICAgICAgICBbW21fcGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10gc2V0QmFj
a2dyb3VuZENvbG9yOltnZXRVSUNvbG9yQ2xhc3MoKSBjbGVhckNvbG9yXV07CisgICAgICAgICAg
ICAgICAgV2ViVGhyZWFkUnVuKF57CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2Z1bGxzY3Jl
ZW5DaGFuZ2VPYnNlcnZlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZnVsbHNjcmVlbkNo
YW5nZU9ic2VydmVyLT5kaWRFeGl0RnVsbHNjcmVlbigpOworICAgICAgICAgICAgICAgICAgICBw
cm90ZWN0ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgV2Vi
VGhyZWFkUnVuKF57Ci0gICAgICAgICAgICAgICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9ic2Vy
dmVyKQotICAgICAgICAgICAgICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZGlk
RXhpdEZ1bGxzY3JlZW4oKTsKLSAgICAgICAgICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICB9XTsKKyAgICAgICAgICAgIH1dOworICAgICAgICB9CiAg
ICAgfSk7CiB9CiAKQEAgLTk1Miw4ICsxMDMwLDEwIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OmludmFsaWRhdGUoKQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0OjpyZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuKCkKIHsKKyAgICBpZiAo
bV9tb2RlID09IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQp
CisgICAgICAgIHJldHVybjsKKyAgICAKICAgICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdD4gcHJvdGVjdCh0aGlzKTsKLQogICAgIGRpc3BhdGNoX2FzeW5j
KGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CiAgICAgICAgIFttX3dpbmRvdyBzZXRIaWRk
ZW46WUVTXTsKICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgZXhpdEZ1bGxTY3JlZW5B
bmltYXRlZDpOTyBjb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wsIE5TRXJyb3IqKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4
IGY3ZjcyZjc1ZDQ1MTU4OTBjMmEzMzgyOGIwYjRmOWNlZmUzNTBhYTguLmI1NmQxZjM5ZjYwZmNi
MzYxN2I3NjRiZGVmZmZmNTg4OGE3OGQzZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xODIsNyArMTgyLDcgQEAgcHVi
bGljOgogCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZpZGVv
RnVsbHNjcmVlbigpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBlbnRlclZpZGVvRnVsbHNj
cmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Kikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdl
YkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQqLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVs
bHNjcmVlbigpIG92ZXJyaWRlOwogI2VuZGlmCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggOTdkZTI4MGQwZDJj
NmEwN2Y5YTllNDExYjhlZGFlMTA1MWZlMjNkYy4uMmNiMWM0YjM0NGVlMDVlNGFmMjI3MzRkZjU0
ODY3ZTdhMjBlYmM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtOTUzLDEwICs5NTMsMTEgQEAgYm9vbCBXZWJDaHJv
bWVDbGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50KEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvRWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50KiB2
aWRlb0VsZW1lbnQsIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkK
IHsKKyAgICBBU1NFUlQobW9kZSAhPSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5N
b2RlTm9uZSk7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwotICAgIFttX3dlYlZp
ZXcgX2VudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50OnZpZGVvRWxlbWVudF07Cisg
ICAgW21fd2ViVmlldyBfZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6dmlkZW9F
bGVtZW50IG1vZGU6bW9kZV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDZjNjY4NzVhNmM2NTBiMjQ1YmZh
OGE3YWQ4MjI1YWM1ZmExYWMxZDguLjE0ZTQxMjliYjYwYzQ0NzNlZDUyNjYyY2JmYzEyYjdkNWRk
MmQ5ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTgzNzQsNyArODM3
NCw3IEBAIGJvb2wgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OmZsdXNoTGF5ZXJzKCkKICNlbmRpZgog
CiAjaWYgRU5BQkxFKFZJREVPKQotLSAodm9pZClfZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRl
b0VsZW1lbnQ6KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQqKXZpZGVvRWxlbWVudAorLSAodm9p
ZClfZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6KFdlYkNvcmU6OkhUTUxWaWRl
b0VsZW1lbnQqKXZpZGVvRWxlbWVudCBtb2RlOihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGUKIHsKICAgICBpZiAoX3ByaXZhdGUtPmZ1bGxzY3JlZW5D
b250cm9sbGVyKSB7CiAgICAgICAgIGlmIChbX3ByaXZhdGUtPmZ1bGxzY3JlZW5Db250cm9sbGVy
IHZpZGVvRWxlbWVudF0gPT0gdmlkZW9FbGVtZW50KSB7CkBAIC04Mzk0LDcgKzgzOTQsNyBAQCBi
b29sIExheWVyRmx1c2hDb250cm9sbGVyOjpmbHVzaExheWVycygpCiAgICAgICAgIF9wcml2YXRl
LT5mdWxsc2NyZWVuQ29udHJvbGxlciA9IFtbV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciBh
bGxvY10gaW5pdF07CiAgICAgICAgIFtfcHJpdmF0ZS0+ZnVsbHNjcmVlbkNvbnRyb2xsZXIgc2V0
VmlkZW9FbGVtZW50OnZpZGVvRWxlbWVudF07CiAjaWYgUExBVEZPUk0oSU9TKQotICAgICAgICBb
X3ByaXZhdGUtPmZ1bGxzY3JlZW5Db250cm9sbGVyIGVudGVyRnVsbHNjcmVlbjooVUlWaWV3ICop
W1tbc2VsZiB3aW5kb3ddIGhvc3RMYXllcl0gZGVsZWdhdGVdXTsKKyAgICAgICAgW19wcml2YXRl
LT5mdWxsc2NyZWVuQ29udHJvbGxlciBlbnRlckZ1bGxzY3JlZW46KFVJVmlldyAqKVtbW3NlbGYg
d2luZG93XSBob3N0TGF5ZXJdIGRlbGVnYXRlXSBtb2RlOm1vZGVdOwogI2Vsc2UKICAgICAgICAg
W19wcml2YXRlLT5mdWxsc2NyZWVuQ29udHJvbGxlciBlbnRlckZ1bGxzY3JlZW46W1tzZWxmIHdp
bmRvd10gc2NyZWVuXV07CiAjZW5kaWYKQEAgLTg0MTIsNyArODQxMiw3IEBAIGJvb2wgTGF5ZXJG
bHVzaENvbnRyb2xsZXI6OmZsdXNoTGF5ZXJzKCkKICAgICBfcHJpdmF0ZS0+ZnVsbHNjcmVlbkNv
bnRyb2xsZXIgPSBuaWw7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoVklERU8pICYmICFQTEFURk9S
TShJT1MpCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5f
QVBJKSAmJiAhUExBVEZPUk0oSU9TKQogLSAoQk9PTClfc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxl
bWVudDooY29uc3QgV2ViQ29yZTo6RWxlbWVudCopZWxlbWVudCB3aXRoS2V5Ym9hcmQ6KEJPT0wp
d2l0aEtleWJvYXJkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwu
aAppbmRleCAxMmE0M2JlMTUxZWNhNmVmOGRhNzgxYTAxNTYwYzBjZjA3ZmJhMDEyLi4zNzc2ZjU1
MTY4YzA3ZDY0ZTdkNDBmNjUyMDRjNmFiNDU5Y2JlZTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZpbmRPcHRp
b25zLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9I
VE1MTWVkaWFFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xheW91dE1pbGVzdG9uZXMuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1dlYkNvcmVLZXlib2FyZFVJTW9kZS5oPgpAQCAtMjM5LDcgKzI0MCw3IEBAIE9CSkNf
Q0xBU1MgTlNUZXh0QWx0ZXJuYXRpdmVzOwogLSAodm9pZClfcHJlZmVyZW5jZXNDaGFuZ2VkOihX
ZWJQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzOwogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBkZWZp
bmVkKF9fY3BsdXNwbHVzKQotLSAodm9pZClfZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0Vs
ZW1lbnQ6KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQqKXZpZGVvRWxlbWVudDsKKy0gKHZvaWQp
X2VudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50OihXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZW50Kil2aWRlb0VsZW1lbnQgbW9kZTooV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSltb2RlOwogLSAodm9pZClfZXhpdFZpZGVvRnVsbHNjcmVlbjsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCA5ODVmZmUwZDhhMDE0NWNmOWJh
NTRlMjQ5MDRjNGZmNzkwZWFkNDBjLi4yYjdiMWY0ZjRkMzM5YzEwYmM5ZjZlZTUzODU0MDI1OGI3
MTBhOGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTU1LDcgKzU1LDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
KiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAgLy8gVHJhbnNsYXRlIHRv
IEZ1bGxzY3JlZW5JbnRlcmZhY2UKLSAgICB2b2lkIHNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50
MzJfdCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ0RldmljZVNj
YWxlRmFjdG9yKTsKKyAgICB2b2lkIHNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCwgV2Vi
Q29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ0RldmljZVNjYWxlRmFjdG9y
LCB1aW50MzJfdCB2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICB2b2lkIHNldFNlZWthYmxlUmFu
Z2VzVmVjdG9yKFZlY3RvcjxzdGQ6OnBhaXI8ZG91YmxlLCBkb3VibGU+PiYpOwogICAgIHZvaWQg
c2V0RXh0ZXJuYWxQbGF5YmFja1Byb3BlcnRpZXMoYm9vbCBlbmFibGVkLCB1aW50MzJfdCB0YXJn
ZXRUeXBlLCBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTmFtZSk7CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDA1OTUyZjM1NWEzYWNjMGVhMTJi
MjcwNTlmYWJiZDQzYjRiNzk3NjAuLjljNDU2N2U0MTVmZDQ2YmMwNjVmYjk5MDIwNTYxZTNmOTc2
ZWQ0YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBA
IC0zMSw3ICszMSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eSB7CiAgICAgU2V0RXh0ZXJuYWxQbGF5YmFja1Byb3BlcnRpZXMoYm9vbCBlbmFibGVkLCB1aW50
MzJfdCB0YXJnZXRUeXBlLCBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTmFtZSk7CiAgICAgU2V0RHVy
YXRpb24oZG91YmxlIGR1cmF0aW9uKQogICAgIFNldFJhdGUoYm9vbCBpc1BsYXlpbmcsIGRvdWJs
ZSByYXRlKQotICAgIFNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVySUQs
IFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdTY2FsZUZhY3RvcikK
KyAgICBTZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QgdmlkZW9MYXllcklELCBXZWJDb3Jl
OjpJbnRSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIHVpbnQzMl90
IHZpZGVvRnVsbHNjcmVlbk1vZGUpCiAgICAgRW50ZXJGdWxsc2NyZWVuKCkKICAgICBFeGl0RnVs
bHNjcmVlbihXZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdCkKICAgICBDbGVhbnVwRnVsbHNjcmVl
bigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IGVjN2JmZGJkMjE5M2Q4YmY5Nzhl
NjA3ZmVkZGY5OWI4NTI4NDhmMzIuLjM3YzY2YjA2NTNlMjg2NGMwZGZkZmY0NGZmOTBjYjBmYjVm
MWM0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCkBAIC04MSw3ICs4MSw3IEBAIHZv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjppbnZhbGlkYXRlKCkKICAgICBtX2xh
eWVySG9zdC5jbGVhcigpOwogfQogCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6
SW50UmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ0RldmljZVNjYWxlRmFjdG9yKQordm9p
ZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCh1
aW50MzJfdCB2aWRlb0xheWVySUQsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QsIGZsb2F0
IGhvc3RpbmdEZXZpY2VTY2FsZUZhY3RvciwgdWludDMyX3QgdmlkZW9GdWxsc2NyZWVuTW9kZSkK
IHsKICAgICBBU1NFUlQodmlkZW9MYXllcklEKTsKICAgICBtX2xheWVySG9zdCA9IFdLTWFrZVJl
bmRlckxheWVyKHZpZGVvTGF5ZXJJRCk7CkBAIC05Miw3ICs5Miw4IEBAIHZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3Qgdmlk
ZW9MYXllcklECiAgICAgfQogCiAgICAgVUlWaWV3ICpwYXJlbnRWaWV3ID0gZG93bmNhc3Q8UmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eT4oKm1fcGFnZS0+ZHJhd2luZ0FyZWEoKSkucmVt
b3RlTGF5ZXJUcmVlSG9zdCgpLnJvb3RMYXllcigpOwotICAgIHNldHVwRnVsbHNjcmVlbigqbV9s
YXllckhvc3QuZ2V0KCksIGluaXRpYWxSZWN0LCBwYXJlbnRWaWV3KTsKKyAgICBIVE1MTWVkaWFF
bGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFF
bGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlPih2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKKyAgICBz
ZXR1cEZ1bGxzY3JlZW4oKm1fbGF5ZXJIb3N0LmdldCgpLCBpbml0aWFsUmVjdCwgcGFyZW50Vmll
dywgbW9kZSk7CiB9CiAgICAgCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
c2V0U2Vla2FibGVSYW5nZXNWZWN0b3IoVmVjdG9yPHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+
JiByYW5nZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNDc5ZGU0ZjhmYWZjMWI1ZWJj
NGMyNWE5ZDA3YzRmY2FmNjA3NzEyMy4uMmE0M2VkZTcwZTQyODYzMGQxNDRkZGE5Y2YwZTUyYWVk
MDZmYzQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtOTA1LDkgKzkwNSwxMCBAQCBi
b29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oKQogICAgIHJldHVy
biBtX3BhZ2UtPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS0+c3VwcG9ydHNWaWRlb0Z1bGxzY3Jl
ZW4oKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9y
VmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvRWxlbWVudCkKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChX
ZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50KiB2aWRlb0VsZW1lbnQsIFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKIHsKLSAgICBtX3BhZ2UtPnZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIoKS0+ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQo
dmlkZW9FbGVtZW50KTsKKyAgICBBU1NFUlQobW9kZSAhPSBIVE1MTWVkaWFFbGVtZW50OjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlTm9uZSk7CisgICAgbV9wYWdlLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
KCktPmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KHZpZGVvRWxlbWVudCwgbW9k
ZSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCmluZGV4IGQxNDg2MzAzZmQwYTZlYTViZWE3MmI4NzYyZWEwNGJhYTVl
ZWMxMWMuLjFmMjY4YmUxMzc4M2ZlMDg0NGJmNGI1MTU0ZmNjY2Y3ZTMxYzA2ZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaApAQCAtMjU0LDcgKzI1NCw3IEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9S
TShJT1MpCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKCk7Ci0gICAg
dmlydHVhbCB2b2lkIGVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6
OkhUTUxWaWRlb0VsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3Jl
ZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCosIFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBl
eGl0VmlkZW9GdWxsc2NyZWVuKCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IDQw
ZTliNTQ4YmNiZGI5M2M3MDk1YTE5YjkxZmI5NTNmMzhiZWNmZjEuLmMxYTE0YmVkMWE0MzViZWE0
Mjk2MzkyYmQwMjc2MjJlMWY3MDFkNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTI5LDYgKzI5
LDcgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
RXZlbnRMaXN0ZW5lci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1DQUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lmg+CkBAIC01OSw3ICs2MCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2Fn
ZURlY29kZXImKTsKICAgICAKICAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKCkgY29u
c3Q7Ci0gICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3Jl
OjpIVE1MVmlkZW9FbGVtZW50Kik7CisgICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZp
ZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50KiwgV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAgICAgdm9pZCBleGl0VmlkZW9GdWxsc2Ny
ZWVuKCk7CiAgICAgCiBwcm90ZWN0ZWQ6CkBAIC05Miw2ICs5Myw3IEBAIHByb3RlY3RlZDoKICAg
ICAKICAgICBib29sIG1faXNBbmltYXRpbmc7CiAgICAgYm9vbCBtX3RhcmdldElzRnVsbHNjcmVl
bjsKKyAgICBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1f
ZnVsbHNjcmVlbk1vZGU7CiAgICAgYm9vbCBtX2lzRnVsbHNjcmVlbjsKIH07CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5tbQppbmRleCBlYzRkZjMwOWMyMDhlZGNjM2U1OTNhYjc4MDVkMWJiMjYwNWRm
NjdmLi42NzhjMDA5YjQ1NWRjNTFiOGJhYWQ4NGJkMGJlZDk1YTFjMzU4ODA1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIubW0KQEAgLTg1LDExICs4NSwxNCBAQCBib29sIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKCkgY29uc3QKICAgICByZXR1cm4gU2V0dGlu
Z3M6OmF2S2l0RW5hYmxlZCgpOwogfQogCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6
OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQqIHZp
ZGVvRWxlbWVudCkKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJWaWRlb0Z1
bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCogdmlkZW9FbGVtZW50LCBI
VE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCiB7CisgICAgQVNTRVJU
KG1vZGUgIT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOworCiAg
ICAgbV92aWRlb0VsZW1lbnQgPSB2aWRlb0VsZW1lbnQ7CiAKICAgICBtX3RhcmdldElzRnVsbHNj
cmVlbiA9IHRydWU7CisgICAgbV9mdWxsc2NyZWVuTW9kZSA9IG1vZGU7CiAKICAgICBpZiAobV9p
c0FuaW1hdGluZykKICAgICAgICAgcmV0dXJuOwpAQCAtOTksNyArMTAyLDcgQEAgdm9pZCBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVu
dChIVE1MVmlkZW9FbGUKIAogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dCA9IExheWVySG9zdGlu
Z0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsKICAgICAKLSAgICBt
X3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0
dXBGdWxsc2NyZWVuV2l0aElEKG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCksIGNs
aWVudFJlY3RGb3JFbGVtZW50KHZpZGVvRWxlbWVudCksIG1fcGFnZS0+ZGV2aWNlU2NhbGVGYWN0
b3IoKSksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXR1cEZ1bGxzY3JlZW5XaXRoSUQobV9sYXll
ckhvc3RpbmdDb250ZXh0LT5jb250ZXh0SUQoKSwgY2xpZW50UmVjdEZvckVsZW1lbnQodmlkZW9F
bGVtZW50KSwgbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpLCBtX2Z1bGxzY3JlZW5Nb2RlKSwg
bV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6
ZXhpdFZpZGVvRnVsbHNjcmVlbigpCkBAIC0yMzUsNyArMjM4LDcgQEAgdm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpkaWRDbGVhbnVwRnVsbHNjcmVlbigpCiAgICAgLy8gZW50ZXIgZnVs
bHNjcmVlbiBub3cgaWYgaXQgd2FzIHByZXZpb3VzbHkgcmVxdWVzdGVkIGR1cmluZyBhbiBhbmlt
YXRpb24uCiAgICAgX19ibG9jayBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0Vs
ZW1lbnQ+IHByb3RlY3QodGhpcyk7CiAgICAgV2ViVGhyZWFkUnVuKF4gewotICAgICAgICBlbnRl
clZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChtX3ZpZGVvRWxlbWVudC5nZXQoKSk7Cisg
ICAgICAgIGVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KG1fdmlkZW9FbGVtZW50
LmdldCgpLCBtX2Z1bGxzY3JlZW5Nb2RlKTsKICAgICAgICAgcHJvdGVjdC5jbGVhcigpOwogICAg
IH0pOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>