<?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>127840</bug_id>
          
          <creation_ts>2014-01-29 09:27:52 -0800</creation_ts>
          <short_desc>Remove ENABLE(JAVASCRIPT_DEBUGGER) guards</short_desc>
          <delta_ts>2014-01-29 11:00:00 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Csaba Osztrogonác">ossy</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mkwst</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>rakuco</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>973385</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-01-29 09:27:52 -0800</bug_when>
    <thetext>&quot;JSC will now always support the debugger.  Hence, the #if ENABLE(JAVASCRIPT_DEBUGGER) checks can be removed.&quot;
http://trac.webkit.org/r162970 - https://bugs.webkit.org/show_bug.cgi?id=127805

Let&apos;s remove all guards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973389</commentid>
    <comment_count>1</comment_count>
      <attachid>222576</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-01-29 09:33:49 -0800</bug_when>
    <thetext>Created attachment 222576
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973390</commentid>
    <comment_count>2</comment_count>
      <attachid>222576</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-01-29 09:43:07 -0800</bug_when>
    <thetext>Comment on attachment 222576
Patch

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

r=me with the one issue addressed.

&gt; Source/WebCore/inspector/InspectorInstrumentation.cpp:-1132
&gt; -

Please revert the removal of this empty line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973401</commentid>
    <comment_count>3</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-01-29 10:27:58 -0800</bug_when>
    <thetext>Committed r163024: &lt;http://trac.webkit.org/changeset/163024&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973402</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-01-29 10:30:47 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Please revert the removal of this empty line.
Thanks for noticing this typo, I removed it before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973403</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-29 10:35:23 -0800</bug_when>
    <thetext>Hehe, I just wrote up a patch that did this yesterday and was going to send it out today. Thanks for taking care of this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973404</commentid>
    <comment_count>6</comment_count>
      <attachid>222576</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-29 10:39:04 -0800</bug_when>
    <thetext>Comment on attachment 222576
Patch

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

What about:
Source/autotools/SetupWebKitFeatures.m4
WebKitLibraries/win/tools/vsprops/FeatureDefinesCairo.props
WebKitLibraries/win/tools/vsprops/FeatureDefines.props
Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig
Source/WebCore/Configurations/FeatureDefines.xcconfig
Source/WebKit/mac/Configurations/FeatureDefines.xcconfig
Source/WebKit2/Configurations/FeatureDefines.xcconfig

&gt; Source/WebCore/bindings/js/JSDOMWindowBase.cpp:109
&gt; -#if !ENABLE(JAVASCRIPT_DEBUGGER) || !ENABLE(INSPECTOR)
&gt; +#if !ENABLE(INSPECTOR)
&gt;      UNUSED_PARAM(object);
&gt;      return false;
&gt;  #else

Down below there is a nested ENABLE(INSPECTOR) which can be removed because it is now inside of an ENABLE(INSPECTOR).

&gt; Tools/Scripts/webkitperl/FeatureList.pm:-316
&gt; -    { option =&gt; &quot;javascript-debugger&quot;, desc =&gt; &quot;Toggle JavaScript Debugger support&quot;,
&gt; -      define =&gt; &quot;ENABLE_JAVASCRIPT_DEBUGGER&quot;, default =&gt; 1, value =&gt; \$javascriptDebuggerSupport },

What about the definition of $javascriptDebuggerSupport?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973407</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-01-29 10:44:12 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Hehe, I just wrote up a patch that did this yesterday and was going to send it out today. Thanks for taking care of this!

I checked the bugzilla and haven&apos;t found bug report about it.

(In reply to comment #6)
&gt; (From update of attachment 222576 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=222576&amp;action=review
&gt; 
&gt; What about:
&gt; Source/autotools/SetupWebKitFeatures.m4
&gt; WebKitLibraries/win/tools/vsprops/FeatureDefinesCairo.props
&gt; WebKitLibraries/win/tools/vsprops/FeatureDefines.props
&gt; Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig
&gt; Source/WebCore/Configurations/FeatureDefines.xcconfig
&gt; Source/WebKit/mac/Configurations/FeatureDefines.xcconfig
&gt; Source/WebKit2/Configurations/FeatureDefines.xcconfig
&gt;...

Good point, let me run one more round.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973409</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-29 10:46:08 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; Hehe, I just wrote up a patch that did this yesterday and was going to send it out today. Thanks for taking care of this!
&gt; 
&gt; I checked the bugzilla and haven&apos;t found bug report about it.

I didn&apos;t create a bug for it. I just posted that comment saying we should remove it, and started on a patch locally. Triggered a build and had to leave early. =) Not a problem, it puts me in a good place to review this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973417</commentid>
    <comment_count>9</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-01-29 11:00:00 -0800</bug_when>
    <thetext>Here is the new bug, I hope the last one for this task :) https://bugs.webkit.org/show_bug.cgi?id=127845</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222576</attachid>
            <date>2014-01-29 09:33:49 -0800</date>
            <delta_ts>2014-01-29 10:39:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127840-20140129183346.patch</filename>
            <type>text/plain</type>
            <size>64287</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZWY4NjM5ZDc4ODU0YzMyYjZhOGVkODY4MjYwN2FlMTUwYTU1ODg0Li42ODVkNjU3OThkZGZhODRi
MjMxMDg1MzcxYjcwYWJmMjliODk2OThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNC0wMS0yOSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQu
b3JnPgorCisgICAgICAgIFJlbW92ZSBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikgZ3VhcmRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4NDAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9zY3JpcHRzL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHk6CisKIDIwMTQtMDEtMjggIENv
bW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIxNjI5ODcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA3M2UwMGI0MGQ0Y2FjOTMxYWU3ODE3ZmU0
NTJjODhhZTJhYTY1M2MuLjc0ZWM4MDM5NmZjYzlmYjYxNjc3OTU1ODhhMjM0YTFmNTVhZTE4MGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDEtMjkgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9z
c3lAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdH
RVIpIGd1YXJkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI3ODQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvRmVhdHVyZURlZmluZXMuaDoKKwogMjAxNC0wMS0yOCAgQW5kZXJzIENhcmxzc29u
ICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEFjdHVhbGx5IHR1cm4gc3RhY2sgc3Rh
dHMgYmFjayBvZmYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTJiYzZlMGU1ODI5MTBkNzE2Yzc3NjZlMWYwODhj
NTEyOGU1YjU1YS4uNTQzOTVhYjIyODkyOTkzZWFkNTU3NGU0NjQ4MGM1M2ZkM2JlNzMyYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDE0LTAxLTI5ICBDc2FiYSBPc3p0cm9nb27DoWMg
IDxvc3N5QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIEVOQUJMRShKQVZBU0NSSVBUX0RF
QlVHR0VSKSBndWFyZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNzg0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTRE9NV2luZG93QmFzZTo6c3VwcG9ydHNQcm9maWxpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNET01XaW5kb3dCYXNlOjpzdXBwb3J0c1JpY2hTb3VyY2VJbmZvKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Njcmlw
dFByb2ZpbGUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlTm9kZS5oOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdFByb2ZpbGVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRQ
cm9maWxlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVy
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpnZXRDdXJyZW50VXNlckluaXRpYXRlZFBy
b2ZpbGVOYW1lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9s
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnJlc3VtZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNEZWJ1Z2dlclBhdXNlZEltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZUltcGwp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnNlcnRE
T01Ob2RlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxSZW1vdmVET01Ob2RlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZFJlbW92ZURPTU5vZGVJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbE1vZGlmeURPTUF0dHJJbXBsKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSW52YWxpZGF0ZVN0eWxlQXR0
ckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxs
U2VuZFhNTEh0dHBSZXF1ZXN0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OnNjcmlwdEV4ZWN1dGlvbkJsb2NrZWRCeUNTUEltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0Nv
bnNvbGVJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
cHJvZmlsZXJFbmFibGVkSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxFdmFsdWF0ZVdvcmtlclNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBhdXNlT25OYXRpdmVFdmVudElmTmVlZGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y2FuY2VsUGF1c2VPbk5h
dGl2ZUV2ZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1
bWVudGluZ0FnZW50czo6SW5zdHJ1bWVudGluZ0FnZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnN0cnVtZW50aW5nQWdlbnRzOjpyZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3RydW1l
bnRpbmdBZ2VudHMuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3Bw
OgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGlu
c3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0UHJv
ZmlsZU5vZGUuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9XZWJEZWJ1Z2dlckFnZW50LmNwcDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvV2ViRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2Vy
RGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6
Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5z
cGVjdG9yQ29udHJvbGxlcjo6cmVzdW1lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyUnVudGltZUFnZW50OjpwYXVzZVdvcmtl
ckdsb2JhbFNjb3BlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50Lmg6
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3kpOgorICAgICAgICAq
IHBhZ2UvQ29uc29sZS5jcHA6CisgICAgICAgICogcGFnZS9Db25zb2xlLmg6CisgICAgICAgICog
cGFnZS9Db25zb2xlLmlkbDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgorICAgICAg
ICAqIHdvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29ubmVjdFRvV29ya2VyR2xvYmFsU2NvcGVJbnNwZWN0b3JUYXNrKToKKyAgICAgICAgKFdlYkNv
cmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojpjb25uZWN0VG9JbnNwZWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6ZGlzY29ubmVjdEZyb21Xb3JrZXJHbG9iYWxTY29wZUluc3BlY3RvclRhc2spOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OmRpc2Nvbm5lY3RGcm9tSW5z
cGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kVGFz
ayk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c2VuZE1lc3NhZ2VU
b0luc3BlY3Rvcik6CisKIDIwMTQtMDEtMjkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjE2MjkyMik6IFtTT1VQXSBTZXZl
cmFsIHRlc3RzIGFyZSBmYWlsaW5nIGluIEVGTCBhbmQgR1RLKyBhZnRlciByMTYyOTIyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKaW5kZXggOTY3NmJhNGQxNWRlM2E3MzUwNDBhZGUxMjg2OTViYWM3NDA2MWY4Ni4u
ODZmYjFlZGY2Y2M2NDM4NDFjYzE4MTM4MDA3NGU5YTk1NTEwYzVhZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAxLTI5ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VS
KSBndWFyZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyNzg0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX2lu
c3BlY3Rvcl9zZXRfcHJvcGVydHkpOgorICAgICAgICAod2Via2l0X3dlYl9pbnNwZWN0b3JfZ2V0
X3Byb3BlcnR5KToKKwogMjAxNC0wMS0yNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gTWFrZSB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1
ZXN0X2dldF93ZWJfdmlldygpIHdvcmsgd2l0aCBDdXN0b21Qcm90b2NvbHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCBjYTVjYmZhNzhmOTYwZjUyMjFiNDMxZjVlZjg5NTE2MGVjMTc1MjQ2Li40NzNhNjVkZDkzYmMy
ZTFlMGZlYjM0ZWI0ZDJjNGI1YjJmZDQ1OGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTQtMDEtMjkgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KKworICAg
ICAgICBSZW1vdmUgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpIGd1YXJkcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3ODQwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViSW5zcGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yOjpzdGFy
dEphdmFTY3JpcHREZWJ1Z2dpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3I6OnN0
b3BKYXZhU2NyaXB0RGVidWdnaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yOjpz
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3Bl
Y3Rvcjo6c3RhcnRKYXZhU2NyaXB0UHJvZmlsaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5z
cGVjdG9yOjpzdG9wSmF2YVNjcmlwdFByb2ZpbGluZyk6CisKIDIwMTQtMDEtMjkgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQu
IEZpeCBHVEsrIGJ1aWxkIGFmdGVyIHIxNjI5ODEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5weSBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9Db2RlR2VuZXJhdG9ySW5zcGVj
dG9yLnB5CmluZGV4IGFhNTJmNWYzNzhhY2MwNTA1NDhjYTI2ODVhYTRjMDE2MTg0YjFmNTMuLjlj
NjE5NWZmNGU0ZmJkYTVmMjBhMjYwNGZlYWY4ZmEzYmMwZDg0MzYgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9Db2RlR2VuZXJhdG9ySW5zcGVjdG9y
LnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySW5zcGVjdG9yLnB5CkBAIC00NCwxMCArNDQsNyBAQCBpbXBvcnQgQ29kZUdlbmVyYXRv
ckluc3BlY3RvclN0cmluZ3MKIAogRE9NQUlOX0RFRklORV9OQU1FX01BUCA9IHsKICAgICAiRGF0
YWJhc2UiOiAiU1FMX0RBVEFCQVNFIiwKLSAgICAiRGVidWdnZXIiOiAiSkFWQVNDUklQVF9ERUJV
R0dFUiIsCi0gICAgIkRPTURlYnVnZ2VyIjogIkpBVkFTQ1JJUFRfREVCVUdHRVIiLAogICAgICJJ
bmRleGVkREIiOiAiSU5ERVhFRF9EQVRBQkFTRSIsCi0gICAgIlByb2ZpbGVyIjogIkpBVkFTQ1JJ
UFRfREVCVUdHRVIiLAogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVE
ZWZpbmVzLmggYi9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oCmluZGV4IGU5ZjU5NjRi
MTdhMjg3MTg0ZmQyMmU4YjRmNmJiMTc1MzQyNTM1YzYuLjcxYjhmMmI0OWNmOTlmODU1Mjg1OWM3
MGIzM2ZlZDJjZWVlZjA5ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZp
bmVzLmgKKysrIGIvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaApAQCAtNTc0LDEwICs1
NzQsNiBAQAogI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SIDEKICNlbmRpZgogCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpCi0jZGVmaW5lIEVOQUJMRV9KQVZBU0NSSVBU
X0RFQlVHR0VSIDEKLSNlbmRpZgotCiAjaWYgIWRlZmluZWQoRU5BQkxFX0pBVkFTQ1JJUFRfSTE4
Tl9BUEkpCiAjZGVmaW5lIEVOQUJMRV9KQVZBU0NSSVBUX0kxOE5fQVBJIDAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggNzVh
MWY3M2ZhZWJhMTc2OWFkNzU2YmY5NzA3MDMyNTE0ZmZiOTg0YS4uNjhlZmZjNjQxYmY4ZjYxOWQz
ZGUwMzQxMjNiOWZiNmY2Y2JmZDk1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgdm9pZCBKU0RPTVdpbmRv
d0Jhc2U6OnByaW50RXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgY29uc3QKIAog
Ym9vbCBKU0RPTVdpbmRvd0Jhc2U6OnN1cHBvcnRzUHJvZmlsaW5nKGNvbnN0IEpTR2xvYmFsT2Jq
ZWN0KiBvYmplY3QpCiB7Ci0jaWYgIUVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSB8fCAhRU5B
QkxFKElOU1BFQ1RPUikKKyNpZiAhRU5BQkxFKElOU1BFQ1RPUikKICAgICBVTlVTRURfUEFSQU0o
b2JqZWN0KTsKICAgICByZXR1cm4gZmFsc2U7CiAjZWxzZQpAQCAtMTI2LDcgKzEyNiw3IEBAIGJv
b2wgSlNET01XaW5kb3dCYXNlOjpzdXBwb3J0c1Byb2ZpbGluZyhjb25zdCBKU0dsb2JhbE9iamVj
dCogb2JqZWN0KQogCiBib29sIEpTRE9NV2luZG93QmFzZTo6c3VwcG9ydHNSaWNoU291cmNlSW5m
byhjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQogewotI2lmICFFTkFCTEUoSkFWQVNDUklQ
VF9ERUJVR0dFUikgfHwgIUVOQUJMRShJTlNQRUNUT1IpCisjaWYgIUVOQUJMRShJTlNQRUNUT1Ip
CiAgICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7CiAgICAgcmV0dXJuIGZhbHNlOwogI2Vsc2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIu
Y3BwCmluZGV4IGM3ZWVmYmYzN2MzOWI4N2YzMmE0ZDAwMzU1MTk2MGMxZDBlYTgyMmYuLmU5Mzhk
ODkwMDI2NTliMjYzNzNhMzA1ZTkxMDk5ZDIwOTliODE3ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcApAQCAtMzIsOCAr
MzIsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBhZ2VTY3JpcHREZWJ1Z1Nl
cnZlci5oIgogCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0KICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgpAQCAtMjczLDUgKzI3MSwzIEBAIHZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpzZXRKYXZh
U2NyaXB0UGF1c2VkKEZyYW1lVmlldyogdmlldywgYm9vbCBwYXVzZWQpCiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2Vy
dmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIu
aAppbmRleCA0NmIyZGQxMjYwZTA2YjVkNjAyNzU1MjIzNDYzYmI1NjBmYWE4ZmI0Li43NWRiNzdh
MWMyMTRhMzk0OTYyZTJiMTIwZDUxNzNjODc3YTBhM2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaApAQCAtMzEsOCArMzEsNiBA
QAogI2lmbmRlZiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXJfaAogI2RlZmluZSBQYWdlU2NyaXB0RGVi
dWdTZXJ2ZXJfaAogCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0KICNpbmNsdWRl
IDxpbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogCkBAIC04MSw2ICs3OSw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAotI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotCiAjZW5kaWYgLy8gUGFn
ZVNjcmlwdERlYnVnU2VydmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdFByb2ZpbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
UHJvZmlsZS5jcHAKaW5kZXggM2U0ZTYzYjM0MTM5MDFiYjE5NTU2Y2M2MDRkZjczOWQ2YTc2ZGFi
OC4uYzg3NzhhNTgwYjJjYjQwNDY5ZGRiNTI5YTA1ZWFiYzFjNDFlZGJkZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5jcHAKQEAgLTI2LDggKzI2LDYgQEAK
IAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIp
Ci0KICNpbmNsdWRlICJTY3JpcHRQcm9maWxlLmgiCiAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcu
aCIKQEAgLTEwNyw1ICsxMDUsMyBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6
OlByb2ZpbGVyOjpDUFVQcm9maWxlTm9kZT4gU2NyaXB0UHJvZmlsZTo6YnVpbAogI2VuZGlmCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RF
QlVHR0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJv
ZmlsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5oCmluZGV4
IDNiMjQzNTI0NDQ0YzhmYjRmMDNhOGZjNTQyYmI2NWU3NmE1NmFkZmIuLjFmNGMwM2VjOTY3ODZj
ODNmNDEzNzQzNWRkODQ5NTUxNTA0MzZjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRQcm9maWxlLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNpZm5kZWYgU2NyaXB0UHJvZmls
ZV9oCiAjZGVmaW5lIFNjcmlwdFByb2ZpbGVfaAogCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVC
VUdHRVIpCiAjaW5jbHVkZSAiU2NyaXB0UHJvZmlsZU5vZGUuaCIKICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC02OCw2ICs2Nyw0IEBAIHBy
aXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShKQVZB
U0NSSVBUX0RFQlVHR0VSKQotCiAjZW5kaWYgLy8gU2NyaXB0UHJvZmlsZV9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlTm9kZS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZU5vZGUuaAppbmRleCBiMmVkY2JmZmQy
OTdlZDA2Y2ZhMjQ1ZGEwNzgxMjdmYjcyYjc1YWU4Li4yYjllYzViZWIxMzIwMjVhYWNiMWY3Y2Nj
MmVmYTNmZWE3NTcxOGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRQcm9maWxlTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dFByb2ZpbGVOb2RlLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNpZm5kZWYgU2NyaXB0UHJvZmlsZU5v
ZGVfaAogI2RlZmluZSBTY3JpcHRQcm9maWxlTm9kZV9oCiAKLSNpZiBFTkFCTEUoSkFWQVNDUklQ
VF9ERUJVR0dFUikKICNpbmNsdWRlIDxwcm9maWxlci9Qcm9maWxlTm9kZS5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC0zNiw2ICszNSw0IEBAIHR5cGVkZWYgSlNDOjpQcm9maWxlTm9kZSBT
Y3JpcHRQcm9maWxlTm9kZTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8g
RU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0KICNlbmRpZiAvLyBTY3JpcHRQcm9maWxlTm9k
ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlci5jcHAKaW5k
ZXggZmM5Mzk4YzI2MTE5OTU5YTM5ODdhYmUzYWEwZDU4NjAyNzg4NTJkMS4uYTMwZTdiMjg1MTdi
YTlmMjRkMjBlZDk1YjI4ODRhOWZlMGE1ZDY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdFByb2ZpbGVyLmNwcApAQCAtMjYsOCArMjYsNiBAQAogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLQogI2luY2x1ZGUg
IlNjcmlwdFByb2ZpbGVyLmgiCiAKICNpbmNsdWRlICJHQ0NvbnRyb2xsZXIuaCIKQEAgLTkyLDUg
KzkwLDMgQEAgUGFzc1JlZlB0cjxTY3JpcHRQcm9maWxlPiBTY3JpcHRQcm9maWxlcjo6c3RvcEZv
cldvcmtlckdsb2JhbFNjb3BlKFdvcmtlckdsb2JhbFMKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlci5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZXIuaAppbmRleCBmMDFmYWQwZDlhNTk1MjQ0
NjI4NWRiYzE2YzRjNGNlYTAzYTA3ZDAyLi4zZTk5MTY4YTRiNDNiNWQyYzlkNWM4MDI4YmYyYTE4
NjM0NWRkODUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQ
cm9maWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGVy
LmgKQEAgLTI3LDggKzI3LDYgQEAKICNpZm5kZWYgU2NyaXB0UHJvZmlsZXJfaAogI2RlZmluZSBT
Y3JpcHRQcm9maWxlcl9oCiAKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLQogI2lu
Y2x1ZGUgIlNjcmlwdEhlYXBTbmFwc2hvdC5oIgogI2luY2x1ZGUgIlNjcmlwdFByb2ZpbGUuaCIK
ICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgpAQCAtNzQsNiArNzIsNCBAQCBwdWJsaWM6CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVH
R0VSKQotCiAjZW5kaWYgLy8gU2NyaXB0UHJvZmlsZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4IGRhMWVi
M2FmMDM0M2JmMmVhZDg3NWM3YzE4MTNmOTZjMzY3MGYwNzguLjc2Yzk1ZWViYzNkYTAzMTJlOTFj
YmEzODdjYTFjNmFjODllYjQwOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTMyLDggKzMyLDYgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oIgog
Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0KICNpbmNsdWRlICJKU0RPTUJpbmRp
bmcuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIldvcmtlckRlYnVnZ2VyQWdlbnQu
aCIKQEAgLTExMSw1ICsxMDksMyBAQCB2b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjppbnRl
cnJ1cHRBbmRSdW5UYXNrKFBhc3NPd25QdHI8U2NyaXB0RGVidWdTZXJ2ZXI6OgogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dF
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERl
YnVnU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1
Z1NlcnZlci5oCmluZGV4IGI1YzYxNGY5M2Q1Y2EzM2FmY2FmNGVmODg3YmFmMDdkYzA2Njk4MTcu
Ljc4ZWZkMGJjN2UyNWUxMjk1MGE1ZjRkODhlNDkwOWNjMTNlZTkxNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaApAQCAt
MzEsOCArMzEsNiBAQAogI2lmbmRlZiBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcl9oCiAjZGVmaW5l
IFdvcmtlclNjcmlwdERlYnVnU2VydmVyX2gKIAotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVH
R0VSKQotCiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTY3LDYgKzY1LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0KICNl
bmRpZiAvLyBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKaW5kZXggNjIzYmNkZGZkYmE4ZDIyMjFh
Zjg3MGYzMGRhYjI2Y2YyNjMzZWY5MS4uMjZjOWQyY2UwNDJjYzg0ZTg1OTcwNjkzOGI2MmQ3NWVk
NTQ1Nzk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25z
b2xlQWdlbnQuaApAQCAtODUsMTAgKzg1LDggQEAgcHVibGljOgogICAgIHZvaWQgZGlkRmluaXNo
WEhSTG9hZGluZyh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IHVybCwgY29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1bnNpZ25lZCBzZW5kTGluZU51bWJlciwgdW5z
aWduZWQgc2VuZENvbHVtbk51bWJlcik7CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5z
aWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwog
ICAgIHZvaWQgZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciwg
Y29uc3QgUmVzb3VyY2VFcnJvciYpOwotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQog
ICAgIHZvaWQgYWRkUHJvZmlsZUZpbmlzaGVkTWVzc2FnZVRvQ29uc29sZShQYXNzUmVmUHRyPFNj
cmlwdFByb2ZpbGU+LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKICAgICB2b2lkIGFkZFN0YXJ0UHJvZmlsaW5nTWVz
c2FnZVRvQ29uc29sZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1
bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKLSNlbmRpZgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRNb25pdG9yaW5nWEhSRW5hYmxlZChFcnJvclN0cmluZyosIGJv
b2wgZW5hYmxlZCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGFkZEluc3BlY3RlZE5vZGUo
RXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFkZEluc3Bl
Y3RlZEhlYXBPYmplY3QoRXJyb3JTdHJpbmcqLCBpbnQgaW5zcGVjdGVkSGVhcE9iamVjdElkKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b25zb2xlSW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oCmluZGV4IGZmMjA3NTc5MzliMmRjMTJjZmM0MjMx
MjQ5MDFmNGE1NjljMDk4ZjcuLmVlZTc4N2M5OGNmMTRjZTMwYjdlNjNlNjQwZTU5MzFiZjVlNGM0
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xl
SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaApAQCAtMTczLDcgKzE3Myw2IEBAIGlubGluZSB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZVRpbWVTdGFtcChGcmFtZSogZnJhbWUs
IFBhc3NSZWZQdHI8CiAjZW5kaWYKIH0KIAotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VS
KQogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRTdGFydFByb2ZpbGlu
Z01lc3NhZ2VUb0NvbnNvbGUoUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWdu
ZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpAQCAtMjIyLDcgKzIyMSw2IEBAIGlubGlu
ZSBTdHJpbmcgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpnZXRDdXJyZW50VXNlckluaXRpYXRl
ZFByb2ZpbGVOYW1lKFBhZ2UqCiAjZW5kaWYKICAgICByZXR1cm4gIiI7CiB9Ci0jZW5kaWYKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggNDMxYmFhZGU1MjRmYTdjYTE0ZTU5ZjljYmEy
YzY2NWJiZjExM2Q0Yy4uMTk3ZWZmMmE1ODYxZWYwMDc4ODVjNjg5NWRiZmFhNWVjOGE1ZmM1YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cApAQCAtMTQ1LDcgKzE0NSw2IEBAIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRy
b2xsZXIoUGFnZSYgcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDCiAgICAgSW5zcGVj
dG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBjb25zb2xlQWdlbnRQdHIuZ2V0KCk7CiAg
ICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bW92ZShjb25zb2xlQWdlbnRQdHIpKTsKIAotI2lmIEVO
QUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIGF1dG8gZGVidWdnZXJBZ2VudFB0ciA9IHN0
ZDo6bWFrZV91bmlxdWU8UGFnZURlYnVnZ2VyQWdlbnQ+KG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmdldCgpLCBtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwgbV9vdmVybGF5
LmdldCgpKTsKICAgICBtX2RlYnVnZ2VyQWdlbnQgPSBkZWJ1Z2dlckFnZW50UHRyLmdldCgpOwog
ICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1vdmUoZGVidWdnZXJBZ2VudFB0cikpOwpAQCAtMTU5
LDcgKzE1OCw2IEBAIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIoUGFn
ZSYgcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDCiAgICAgbV9hZ2VudHMuYXBwZW5k
KHN0ZDo6bW92ZShwcm9maWxlckFnZW50UHRyKSk7CiAKICAgICBtX2FnZW50cy5hcHBlbmQoc3Rk
OjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudD4obV9pbnN0cnVtZW50aW5n
QWdlbnRzLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSkpOwotI2VuZGlmCiAK
ICAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JXb3JrZXJBZ2Vu
dD4obV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpKSk7CiAKQEAgLTE4Myw5ICsxODEsNyBAQCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIEluc3Bl
Y3RvckNsaWVudCogaW5zcGVjdG9yQwogICAgICAgICApOwogICAgIH0KIAotI2lmIEVOQUJMRShK
QVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIHJ1bnRpbWVBZ2VudC0+c2V0U2NyaXB0RGVidWdTZXJ2
ZXIoJm1fZGVidWdnZXJBZ2VudC0+c2NyaXB0RGVidWdTZXJ2ZXIoKSk7Ci0jZW5kaWYKIH0KIAog
SW5zcGVjdG9yQ29udHJvbGxlcjo6fkluc3BlY3RvckNvbnRyb2xsZXIoKQpAQCAtMzkwLDcgKzM4
Niw2IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0SW5kaWNhdGluZyhib29sIGluZGlj
YXRpbmcpCiAgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50LT5oaWRlSW5kaWNhdGlvbigpOwogfQog
Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiBib29sIEluc3BlY3RvckNvbnRyb2xs
ZXI6OnByb2ZpbGVyRW5hYmxlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJvZmlsZXJBZ2Vu
dC0+ZW5hYmxlZCgpOwpAQCAtNDEyLDcgKzQwNyw2IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxl
cjo6cmVzdW1lKCkKICAgICAgICAgbV9kZWJ1Z2dlckFnZW50LT5yZXN1bWUoJmVycm9yKTsKICAg
ICB9CiB9Ci0jZW5kaWYKIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzZXRSZXNvdXJjZXNE
YXRhU2l6ZUxpbWl0c0Zyb21JbnRlcm5hbHMoaW50IG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6
ZSwgaW50IG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggODFlZjgxNjA0ODky
MDU4ZTk0ZGU2NzBiNThiNmUzNzFmN2MyMTI0MC4uMDdiZDcyZGJmMTY5MTI3YzY4ZGYyNmVjMjUx
NzMxNDhhODA0NTEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5oCkBAIC0xMTksMTIgKzExOSwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1Vu
ZGVyVGVzdCgpOwogICAgIHZvaWQgZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChsb25nIGNhbGxJ
ZCwgY29uc3QgU3RyaW5nJiBzY3JpcHQpOwogCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdH
RVIpCiAgICAgYm9vbCBwcm9maWxlckVuYWJsZWQoKSBjb25zdDsKICAgICB2b2lkIHNldFByb2Zp
bGVyRW5hYmxlZChib29sKTsKIAogICAgIHZvaWQgcmVzdW1lKCk7Ci0jZW5kaWYKIAogICAgIHZv
aWQgc2V0UmVzb3VyY2VzRGF0YVNpemVMaW1pdHNGcm9tSW50ZXJuYWxzKGludCBtYXhpbXVtUmVz
b3VyY2VzQ29udGVudFNpemUsIGludCBtYXhpbXVtU2luZ2xlUmVzb3VyY2VDb250ZW50U2l6ZSk7
CiAKQEAgLTE1NSwxMSArMTUzLDkgQEAgcHJpdmF0ZToKICAgICBJbnNwZWN0b3JSZXNvdXJjZUFn
ZW50KiBtX3Jlc291cmNlQWdlbnQ7CiAgICAgSW5zcGVjdG9yUGFnZUFnZW50KiBtX3BhZ2VBZ2Vu
dDsKICAgICBJbnNwZWN0b3JNZW1vcnlBZ2VudCogbV9tZW1vcnlBZ2VudDsKLSNpZiBFTkFCTEUo
SkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdl
bnQqIG1fZGVidWdnZXJBZ2VudDsKICAgICBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KiBtX2Rv
bURlYnVnZ2VyQWdlbnQ7CiAgICAgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudCogbV9wcm9maWxlckFn
ZW50OwotI2VuZGlmCiAKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlcj4gbV9pbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ+IG1faW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJB
Z2VudC5jcHAKaW5kZXggN2NjOGViZWRiMzQ2MmMwYTNhMTRmNzkyNTcyOGExYmI1OGE2MzE2ZC4u
NGE0YjM4ZjJiNWM1YjhiMDYyMDY4ZTg1Zjk5M2Q1ZTllMDA4OWQ0YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcApA
QCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
ckRPTURlYnVnZ2VyQWdlbnQuaCIKIAotI2lmIEVOQUJMRShJTlNQRUNUT1IpICYmIEVOQUJMRShK
QVZBU0NSSVBUX0RFQlVHR0VSKQorI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJI
VE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRPTUFnZW50LmgiCkBAIC00MjYsNCAr
NDI2LDQgQEAgdm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpjbGVhcigpCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpICYmIEVOQUJM
RShKQVZBU0NSSVBUX0RFQlVHR0VSKQorI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQu
aAppbmRleCA0ZGQ3OTJjZTI5MDc2ZmYzMjlmOTM3MDQ5MDFkZDVjZDc5OWQ1ZDVkLi5lYmUyNjY1
MGFkYjZmYWNiOGRlZjA3Mzc1OTM0YTJiZTkzZWVkODAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmgKQEAgLTMxLDcgKzMx
LDcgQEAKICNpZm5kZWYgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudF9oCiAjZGVmaW5lIEluc3Bl
Y3RvckRPTURlYnVnZ2VyQWdlbnRfaAogCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIp
ICYmIEVOQUJMRShJTlNQRUNUT1IpCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2luY2x1ZGUg
Ikluc3BlY3RvcldlYkFnZW50QmFzZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvcldlYkJhY2tlbmRE
aXNwYXRjaGVycy5oIgpAQCAtMTEzLDYgKzExMyw2IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBF
TkFCTEUoSU5TUEVDVE9SKQorI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCiAKICNlbmRpZiAv
LyAhZGVmaW5lZChJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50X2gpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcAppbmRl
eCA3Nzc1MzNkY2U1NmMyOGY5MzA3YzU0ODIwZDJiZWUxZWQ4NGFiMTcwLi5jY2ZlMmY4OWQzZDMw
Yzk4Njk0YzI3NTRmYjlmNTQ3YjQyMTE5YWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAKQEAgLTMxLDcgKzMx
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudC5oIgogCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRShJ
TlNQRUNUT1IpCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2luY2x1ZGUgIkNvbW1hbmRMaW5l
QVBJSG9zdC5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKQEAgLTIzMCw0ICsy
MzAsNCBAQCB2b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRIZWFwT2JqZWN0SWQo
RXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKLSNlbmRpZiAvLyBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikgJiYgRU5BQkxFKElOU1BF
Q1RPUikKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaAppbmRleCBjOTQ4MjE4
ZDcyZTkzMjZmNjk0NDI3M2QyN2RlYmY5NzQ1ODcyNDU4Li5lNDE3YzNjYjBhNDM1ODgzMWJkNTdh
ZTg3OGNkMDI1OWYwN2E0YjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaApAQCAtMzEsNyArMzEsNyBAQAogI2lmbmRl
ZiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudF9oCiAjZGVmaW5lIEluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50X2gKIAotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFCTEUo
SU5TUEVDVE9SKQorI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJJbnNwZWN0b3JX
ZWJBZ2VudEJhc2UuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JXZWJCYWNrZW5kRGlzcGF0Y2hlcnMu
aCIKQEAgLTkxLDYgKzkxLDYgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
Ci0jZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRShJTlNQRUNU
T1IpCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKIAogI2VuZGlmIC8vICFkZWZpbmVkKElu
c3BlY3RvckhlYXBQcm9maWxlckFnZW50X2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IGY0NjVmNDFkMjk3YzI0
MDM0YTljM2EwMDE1ZTY4NmQ3MzViMjA3ODQuLmEyYmJhY2IyZDU4ZTc1N2RmNGY3ZDY0ZWIzNzdl
MDBhM2NkMmQ5NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0xMDgsMTIgKzEwOCwxMCBAQCB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkSW1wbChJbnN0
cnVtZW50aW5nQWdlbgogICAgIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zdHJ1
bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCk7CiAgICAgaWYgKHBhZ2VBZ2VudCkK
ICAgICAgICAgcGFnZUFnZW50LT5kaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoZnJhbWUsIHdv
cmxkKTsKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBpZiAoUGFnZURlYnVn
Z2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5wYWdlRGVidWdn
ZXJBZ2VudCgpKSB7CiAgICAgICAgIGlmIChwYWdlQWdlbnQgJiYgJndvcmxkID09ICZtYWluVGhy
ZWFkTm9ybWFsV29ybGQoKSAmJiBmcmFtZSA9PSBwYWdlQWdlbnQtPm1haW5GcmFtZSgpKQogICAg
ICAgICAgICAgZGVidWdnZXJBZ2VudC0+ZGlkQ2xlYXJNYWluRnJhbWVXaW5kb3dPYmplY3QoKTsK
ICAgICB9Ci0jZW5kaWYKICAgICBpZiAoUGFnZVJ1bnRpbWVBZ2VudCogcGFnZVJ1bnRpbWVBZ2Vu
dCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPnBhZ2VSdW50aW1lQWdlbnQoKSkgewogICAgICAgICBp
ZiAoJndvcmxkID09ICZtYWluVGhyZWFkTm9ybWFsV29ybGQoKSkKICAgICAgICAgICAgIHBhZ2VS
dW50aW1lQWdlbnQtPmRpZENyZWF0ZU1haW5Xb3JsZENvbnRleHQoZnJhbWUpOwpAQCAtMTIyLDU3
ICsxMjAsNDUgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENsZWFyV2luZG93
T2JqZWN0SW5Xb3JsZEltcGwoSW5zdHJ1bWVudGluZ0FnZW4KIAogYm9vbCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmlzRGVidWdnZXJQYXVzZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMpCiB7Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAg
ICAgaWYgKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50
aW5nQWdlbnRzLT5pbnNwZWN0b3JEZWJ1Z2dlckFnZW50KCkpCiAgICAgICAgIHJldHVybiBkZWJ1
Z2dlckFnZW50LT5pc1BhdXNlZCgpOwotI2VuZGlmCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEluc2VydERPTU5vZGVJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIE5vZGUqIHBhcmVudCkKIHsKLSNp
ZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBpZiAoSW5zcGVjdG9yRE9NRGVidWdn
ZXJBZ2VudCogZG9tRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3Rv
ckRPTURlYnVnZ2VyQWdlbnQoKSkKICAgICAgICAgZG9tRGVidWdnZXJBZ2VudC0+d2lsbEluc2Vy
dERPTU5vZGUocGFyZW50KTsKLSNlbmRpZgogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkSW5zZXJ0RE9NTm9kZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cywgTm9kZSogbm9kZSkKIHsKICAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRv
bUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRE9NQWdlbnQoKSkKICAgICAg
ICAgZG9tQWdlbnQtPmRpZEluc2VydERPTU5vZGUobm9kZSk7Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpCiAgICAgaWYgKEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQqIGRvbURlYnVn
Z2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50
KCkpCiAgICAgICAgIGRvbURlYnVnZ2VyQWdlbnQtPmRpZEluc2VydERPTU5vZGUobm9kZSk7Ci0j
ZW5kaWYKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZW1vdmVET01O
b2RlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBOb2RlKiBu
b2RlKQogewotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIGlmIChJbnNwZWN0
b3JET01EZWJ1Z2dlckFnZW50KiBkb21EZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy0+aW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCgpKQogICAgICAgICBkb21EZWJ1Z2dlckFnZW50
LT53aWxsUmVtb3ZlRE9NTm9kZShub2RlKTsKLSNlbmRpZgogfQogCiB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkUmVtb3ZlRE9NTm9kZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cywgTm9kZSogbm9kZSkKIHsKLSNpZiBFTkFCTEUoSkFWQVNDUklQ
VF9ERUJVR0dFUikKICAgICBpZiAoSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCogZG9tRGVidWdn
ZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQo
KSkKICAgICAgICAgZG9tRGVidWdnZXJBZ2VudC0+ZGlkUmVtb3ZlRE9NTm9kZShub2RlKTsKLSNl
bmRpZgogICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLT5pbnNwZWN0b3JET01BZ2VudCgpKQogICAgICAgICBkb21BZ2VudC0+ZGlkUmVtb3Zl
RE9NTm9kZShub2RlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxN
b2RpZnlET01BdHRySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBFbGVtZW50KiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9taWNTdHJpbmcmIG5ld1ZhbHVlKQogewotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VS
KQogICAgIGlmIChJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KiBkb21EZWJ1Z2dlckFnZW50ID0g
aW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCgpKQogICAgICAg
ICBkb21EZWJ1Z2dlckFnZW50LT53aWxsTW9kaWZ5RE9NQXR0cihlbGVtZW50KTsKICAgICBpZiAo
SW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVj
dG9yRE9NQWdlbnQoKSkKICAgICAgICAgZG9tQWdlbnQtPndpbGxNb2RpZnlET01BdHRyKGVsZW1l
bnQsIG9sZFZhbHVlLCBuZXdWYWx1ZSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZE1vZGlmeURPTUF0dHJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMsIEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKQEAgLTE5MSwxMCArMTc3LDggQEAgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEludmFsaWRhdGVTdHlsZUF0dHJJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMqIGkKIHsKICAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRE9NQWdlbnQoKSkKICAgICAgICAg
ZG9tQWdlbnQtPmRpZEludmFsaWRhdGVTdHlsZUF0dHIobm9kZSk7Ci0jaWYgRU5BQkxFKEpBVkFT
Q1JJUFRfREVCVUdHRVIpCiAgICAgaWYgKEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQqIGRvbURl
YnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50KCkpCiAgICAgICAgIGRvbURlYnVnZ2VyQWdlbnQtPmRpZEludmFsaWRhdGVTdHlsZUF0dHIo
bm9kZSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1l
V2luZG93RGlzY2FyZGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBET01XaW5kb3cqIHdpbmRvdykKQEAgLTI5OCwxMCArMjgyLDggQEAgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmNoYXJhY3RlckRhdGFNb2RpZmllZEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW4KIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kWE1M
SHR0cFJlcXVlc3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IGNvbnN0IFN0cmluZyYgdXJsKQogewotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQog
ICAgIGlmIChJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KiBkb21EZWJ1Z2dlckFnZW50ID0gaW5z
dHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCgpKQogICAgICAgICBk
b21EZWJ1Z2dlckFnZW50LT53aWxsU2VuZFhNTEh0dHBSZXF1ZXN0KHVybCk7Ci0jZW5kaWYKIH0K
IAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1
ZXN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBT
dHJpbmcmIHVybCwgRnJhbWUqIGZyYW1lKQpAQCAtNzE5LDEwICs3MDEsOCBAQCB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6c2NyaXB0SW1wb3J0ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbgogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2NyaXB0RXhl
Y3V0aW9uQmxvY2tlZEJ5Q1NQSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBjb25zdCBTdHJpbmcmIGRpcmVjdGl2ZVRleHQpCiB7Ci0jaWYgRU5BQkxFKEpBVkFT
Q1JJUFRfREVCVUdHRVIpCiAgICAgaWYgKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2Vy
QWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JEZWJ1Z2dlckFnZW50KCkpCiAg
ICAgICAgIGRlYnVnZ2VyQWdlbnQtPnNjcmlwdEV4ZWN1dGlvbkJsb2NrZWRCeUNTUChkaXJlY3Rp
dmVUZXh0KTsKLSNlbmRpZgogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
UmVjZWl2ZVNjcmlwdFJlc3BvbnNlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCkBAIC03NzcsMTIgKzc1NywxMCBA
QCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudAogCiAgICAgICAgIGlmIChJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50KiByZXNvdXJjZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUmVz
b3VyY2VBZ2VudCgpKQogICAgICAgICAgICAgcmVzb3VyY2VBZ2VudC0+bWFpbkZyYW1lTmF2aWdh
dGVkKGxvYWRlcik7Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgICAgIGlm
IChJbnNwZWN0b3JQcm9maWxlckFnZW50KiBwcm9maWxlckFnZW50ID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cy0+aW5zcGVjdG9yUHJvZmlsZXJBZ2VudCgpKQogICAgICAgICAgICAgcHJvZmlsZXJBZ2Vu
dC0+cmVzZXRTdGF0ZSgpOwogICAgICAgICBpZiAoSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQq
IGhlYXBQcm9maWxlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9ySGVhcFBy
b2ZpbGVyQWdlbnQoKSkKICAgICAgICAgICAgIGhlYXBQcm9maWxlckFnZW50LT5yZXNldFN0YXRl
KCk7Ci0jZW5kaWYKICAgICAgICAgaWYgKEluc3BlY3RvckNTU0FnZW50KiBjc3NBZ2VudCA9IGlu
c3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckNTU0FnZW50KCkpCiAgICAgICAgICAgICBjc3NB
Z2VudC0+cmVzZXQoKTsKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQpAQCAtODk0LDI2ICs4NzIs
MjIgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGVJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3QKIHsKICAgICBpZiAoSW5zcGVjdG9yQ29uc29s
ZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JDb25z
b2xlQWdlbnQoKSkKICAgICAgICAgY29uc29sZUFnZW50LT5hZGRNZXNzYWdlVG9Db25zb2xlKHNv
dXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGNhbGxTdGFjaywgcmVxdWVzdElkZW50aWZpZXIp
OwotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIC8vIEZJWE1FOiBUaGlzIHNo
b3VsZCBqdXN0IHBhc3MgdGhlIG1lc3NhZ2Ugb24gdG8gdGhlIGRlYnVnZ2VyIGFnZW50LiBKYXZh
U2NyaXB0Q29yZSBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50IHNob3VsZCBrbm93IENvbnNvbGUgTWVz
c2FnZVR5cGVzLgogICAgIGlmIChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRGVidWdnZXJBZ2VudCgpKSB7CiAgICAg
ICAgIGlmIChpc0NvbnNvbGVBc3NlcnRNZXNzYWdlKHNvdXJjZSwgdHlwZSkpCiAgICAgICAgICAg
ICBkZWJ1Z2dlckFnZW50LT5oYW5kbGVDb25zb2xlQXNzZXJ0KCk7CiAgICAgfQotI2VuZGlmCiB9
CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBNZXNzYWdlU291cmNl
IHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1
bWVudHM+IGFyZ3VtZW50cywgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKIHsKICAg
ICBpZiAoSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLT5pbnNwZWN0b3JDb25zb2xlQWdlbnQoKSkKICAgICAgICAgY29uc29sZUFnZW50LT5h
ZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHN0YXRlLCBh
cmd1bWVudHMsIHJlcXVlc3RJZGVudGlmaWVyKTsKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJV
R0dFUikKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQganVzdCBwYXNzIHRoZSBtZXNzYWdlIG9u
IHRvIHRoZSBkZWJ1Z2dlciBhZ2VudC4gSmF2YVNjcmlwdENvcmUgSW5zcGVjdG9yRGVidWdnZXJB
Z2VudCBzaG91bGQga25vdyBDb25zb2xlIE1lc3NhZ2VUeXBlcy4KICAgICBpZiAoSW5zcGVjdG9y
RGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQoKSkgewogICAgICAgICBpZiAoaXNDb25zb2xlQXNzZXJ0TWVzc2Fn
ZShzb3VyY2UsIHR5cGUpKQogICAgICAgICAgICAgZGVidWdnZXJBZ2VudC0+aGFuZGxlQ29uc29s
ZUFzc2VydCgpOwogICAgIH0KLSNlbmRpZgogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWVudGluZ0FnZW50cywgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1l
c3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNj
cmlwdElELCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIEpTQzo6
RXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKQEAgLTk1
Myw3ICs5MjcsNiBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZVRpbWVT
dGFtcEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bQogICAgICB9CiB9CiAKLSNpZiBF
TkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjphZGRTdGFydFByb2ZpbGluZ01lc3NhZ2VUb0NvbnNvbGVJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnN0IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwp
CiB7CiAgICAgaWYgKEluc3BlY3RvclByb2ZpbGVyQWdlbnQqIHByb2ZpbGVyQWdlbnQgPSBpbnN0
cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQcm9maWxlckFnZW50KCkpCkBAIC05ODEsNyArOTU0
LDYgQEAgYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnByb2ZpbGVyRW5hYmxlZEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWUKICAgICAgICAgcmV0dXJuIHByb2ZpbGVyQWdl
bnQtPmVuYWJsZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9Ci0jZW5kaWYKIAogI2lmIEVOQUJM
RShTUUxfREFUQUJBU0UpCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkT3BlbkRh
dGFiYXNlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBQYXNz
UmVmUHRyPERhdGFiYXNlPiBkYXRhYmFzZSwgY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQpAQCAtMTAxOSwxMCArOTkxLDggQEAg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVdvcmtlclNjcmlwdChX
b3JrZXJHbG9iYWxTY29wZSogd29ya2UKICAgICBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGF0aW9uRm9yV29ya2VyR2xvYmFsU2NvcGUod29ya2Vy
R2xvYmFsU2NvcGUpOwogICAgIGlmICghaW5zdHJ1bWVudGluZ0FnZW50cykKICAgICAgICAgcmV0
dXJuOwotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIGlmIChXb3JrZXJSdW50
aW1lQWdlbnQqIHJ1bnRpbWVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPndvcmtlclJ1bnRp
bWVBZ2VudCgpKQogICAgICAgICBydW50aW1lQWdlbnQtPnBhdXNlV29ya2VyR2xvYmFsU2NvcGUo
d29ya2VyR2xvYmFsU2NvcGUpOwotI2VuZGlmCiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3b3JrZXJHbG9iYWxTY29wZVRlcm1pbmF0ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIFdvcmtlckdsb2JhbFNjb3BlUHJveHkqIHByb3h5KQpA
QCAtMTExNiwyMCArMTA4NiwxNSBAQCBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6dGlt
ZWxpbmVBZ2VudEVuYWJsZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaQogCiB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cGF1c2VPbk5hdGl2ZUV2ZW50SWZOZWVkZWQoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgYm9vbCBpc0RPTUV2ZW50LCBjb25z
dCBTdHJpbmcmIGV2ZW50TmFtZSwgYm9vbCBzeW5jaHJvbm91cykKIHsKLSNpZiBFTkFCTEUoSkFW
QVNDUklQVF9ERUJVR0dFUikKICAgICBpZiAoSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCogZG9t
RGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckRPTURlYnVnZ2Vy
QWdlbnQoKSkKICAgICAgICAgZG9tRGVidWdnZXJBZ2VudC0+cGF1c2VPbk5hdGl2ZUV2ZW50SWZO
ZWVkZWQoaXNET01FdmVudCwgZXZlbnROYW1lLCBzeW5jaHJvbm91cyk7Ci0jZW5kaWYKIH0KIAog
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNhbmNlbFBhdXNlT25OYXRpdmVFdmVudChJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzKQogewotI2lmIEVOQUJMRShK
QVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIGlmIChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1
Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRGVidWdnZXJBZ2VudCgp
KQogICAgICAgICBkZWJ1Z2dlckFnZW50LT5jYW5jZWxQYXVzZU9uTmV4dFN0YXRlbWVudCgpOwot
I2VuZGlmCiB9Ci0KIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZXF1ZXN0QW5p
bWF0aW9uRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IGludCBjYWxsYmFja0lkLCBGcmFtZSogZnJhbWUpCiB7CiAgICAgcGF1c2VPbk5hdGl2ZUV2ZW50
SWZOZWVkZWQoaW5zdHJ1bWVudGluZ0FnZW50cywgZmFsc2UsIHJlcXVlc3RBbmltYXRpb25GcmFt
ZUV2ZW50TmFtZSwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggZTI0NTg4ZDUzYTg5ODVhZWQzZDQ2ODEwNGQy
NmI1YmJmZDM3NWNiZi4uMTNkNjIyNDU1ZDI4OTE4MGRiZDJmYWRhMTdhMTgzNjIxOWZmYmFmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaApAQCAtMjIxLDEyICsyMjEsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbEZpcmVBbmltYXRpb25GcmFtZShEb2N1bWVudCos
IGludCBjYWxsYmFja0lkKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaXJlQW5pbWF0aW9uRnJhbWUo
Y29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CiAKLSNpZiBFTkFCTEUoSkFW
QVNDUklQVF9ERUJVR0dFUikKICAgICBzdGF0aWMgdm9pZCBhZGRTdGFydFByb2ZpbGluZ01lc3Nh
Z2VUb0NvbnNvbGUoUGFnZSosIGNvbnN0IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwogICAg
IHN0YXRpYyB2b2lkIGFkZFByb2ZpbGUoUGFnZSosIFJlZlB0cjxTY3JpcHRQcm9maWxlPiwgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICBzdGF0aWMgU3RyaW5nIGdldEN1cnJlbnRV
c2VySW5pdGlhdGVkUHJvZmlsZU5hbWUoUGFnZSosIGJvb2wgaW5jcmVtZW50UHJvZmlsZU51bWJl
cik7CiAgICAgc3RhdGljIGJvb2wgcHJvZmlsZXJFbmFibGVkKFBhZ2UqKTsKLSNlbmRpZgogCiAj
aWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKICAgICBzdGF0aWMgdm9pZCBkaWRPcGVuRGF0YWJhc2Uo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8RGF0YWJhc2U+LCBjb25zdCBTdHJp
bmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pOwpA
QCAtNDA1LDEyICs0MDMsMTAgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uQ29va2llIHdpbGxGaXJlQW5pbWF0aW9uRnJhbWVJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqLCBpbnQgY2FsbGJhY2tJZCwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaXJl
QW5pbWF0aW9uRnJhbWVJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYp
OwogCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgc3RhdGljIHZvaWQgYWRk
U3RhcnRQcm9maWxpbmdNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1u
TnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgc3RhdGljIHZvaWQgYWRkUHJv
ZmlsZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFJlZlB0cjxTY3JpcHRQcm9maWxlPiwgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICBzdGF0aWMgU3RyaW5nIGdldEN1cnJlbnRV
c2VySW5pdGlhdGVkUHJvZmlsZU5hbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBib29sIGlu
Y3JlbWVudFByb2ZpbGVOdW1iZXIpOwogICAgIHN0YXRpYyBib29sIHByb2ZpbGVyRW5hYmxlZElt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyopOwotI2VuZGlmCiAKICNpZiBFTkFCTEUoU1FMX0RBVEFC
QVNFKQogICAgIHN0YXRpYyB2b2lkIGRpZE9wZW5EYXRhYmFzZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyosIFBhc3NSZWZQdHI8RGF0YWJhc2U+LCBjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IDY0ZWM2NzA3
ZWE2ZGEwNTE0YjI5YTc1MGQxZDQzYzc2MjMyNTQ4YWUuLjVhY2MzYTE2MTlhZDlkMTQzNDU3OTkw
N2UzODEzZjNjZDE5ZDZkYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRShJ
TlNQRUNUT1IpCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2luY2x1ZGUgIkluc3BlY3RvclBy
b2ZpbGVyQWdlbnQuaCIKIApAQCAtNDU1LDQgKzQ1NSw0IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudDo6Z2V0SGVhcE9iamVjdElkKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3Qg
U3RyCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NS
SVBUX0RFQlVHR0VSKSAmJiBFTkFCTEUoSU5TUEVDVE9SKQorI2VuZGlmIC8vIEVOQUJMRShJTlNQ
RUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVy
QWdlbnQuaAppbmRleCBkMzc5MzlmZDg3MDUzNzZhZGRhMDVkZGE5YzA0NzU1YjRkYzIwMzFkLi5i
OWI2MDMxNmRiNjk0NGViMjg4YjE1ZDc2NzVhM2FhYTlmYjhiMmM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmgKQEAgLTMwLDcgKzMw
LDcgQEAKICNpZm5kZWYgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudF9oCiAjZGVmaW5lIEluc3BlY3Rv
clByb2ZpbGVyQWdlbnRfaAogCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVO
QUJMRShJTlNQRUNUT1IpCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2luY2x1ZGUgIkluc3Bl
Y3RvcldlYkFnZW50QmFzZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvcldlYkJhY2tlbmREaXNwYXRj
aGVycy5oIgpAQCAtMTM0LDYgKzEzNCw2IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFCTEUo
SU5TUEVDVE9SKQorI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCiAKICNlbmRpZiAvLyAhZGVm
aW5lZChJbnNwZWN0b3JQcm9maWxlckFnZW50X2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKaW5kZXggNmVlMjUxM2E4NzU5NmMzYWNiNzhm
NDcyODMzMGEwOWYxZWQzYTg3YS4uMTU2NDM5MzFiNzgwM2NhOTg2MzM2YzFiNDI1MGU2YThmMWZj
YzhjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdB
Z2VudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdl
bnRzLmNwcApAQCAtNjIsMTIgKzYyLDEwIEBAIEluc3RydW1lbnRpbmdBZ2VudHM6Okluc3RydW1l
bnRpbmdBZ2VudHMoSW5zcGVjdG9yRW52aXJvbm1lbnQmIGVudmlyb25tZW50KQogICAgICwgbV9p
bnNwZWN0b3JEYXRhYmFzZUFnZW50KG51bGxwdHIpCiAjZW5kaWYKICAgICAsIG1faW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50KG51bGxwdHIpCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVC
VUdHRVIpCiAgICAgLCBtX2luc3BlY3RvckRlYnVnZ2VyQWdlbnQobnVsbHB0cikKICAgICAsIG1f
cGFnZURlYnVnZ2VyQWdlbnQobnVsbHB0cikKICAgICAsIG1faW5zcGVjdG9yRE9NRGVidWdnZXJB
Z2VudChudWxscHRyKQogICAgICwgbV9pbnNwZWN0b3JQcm9maWxlckFnZW50KG51bGxwdHIpCi0j
ZW5kaWYKICAgICAsIG1faW5zcGVjdG9yV29ya2VyQWdlbnQobnVsbHB0cikKICAgICAsIG1faW5z
cGVjdG9yQ2FudmFzQWdlbnQobnVsbHB0cikKIHsKQEAgLTkyLDEyICs5MCwxMCBAQCB2b2lkIElu
c3RydW1lbnRpbmdBZ2VudHM6OnJlc2V0KCkKICAgICBtX2luc3BlY3RvckRhdGFiYXNlQWdlbnQg
PSBudWxscHRyOwogI2VuZGlmCiAgICAgbV9pbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQg
PSBudWxscHRyOwotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIG1faW5zcGVj
dG9yRGVidWdnZXJBZ2VudCA9IG51bGxwdHI7CiAgICAgbV9wYWdlRGVidWdnZXJBZ2VudCA9IG51
bGxwdHI7CiAgICAgbV9pbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50ID0gbnVsbHB0cjsKICAgICBt
X2luc3BlY3RvclByb2ZpbGVyQWdlbnQgPSBudWxscHRyOwotI2VuZGlmCiAgICAgbV9pbnNwZWN0
b3JXb3JrZXJBZ2VudCA9IG51bGxwdHI7CiAgICAgbV9pbnNwZWN0b3JDYW52YXNBZ2VudCA9IG51
bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVu
dGluZ0FnZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2Vu
dHMuaAppbmRleCBhZmFiY2U2NjEyZjBiYTkyZGE0ZjAzZDhlNGU1OGJmZmIwZTQxZWUzLi5kOWI1
ZDQxZGM1NThhNjExZGQ2YzBiZWFmNDlkNWZjODU1NmJjNmY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKQEAgLTExNiw3ICsxMTYsNiBAQCBw
dWJsaWM6CiAgICAgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KiBpbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudDsgfQogICAgIHZvaWQgc2V0SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
KEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQgPSBhZ2VudDsgfQogCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVC
VUdHRVIpCiAgICAgSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBpbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50KCkgY29uc3QgeyByZXR1cm4gbV9pbnNwZWN0b3JEZWJ1Z2dlckFnZW50OyB9
CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KEluc3BlY3Rvcjo6SW5zcGVjdG9y
RGVidWdnZXJBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0b3JEZWJ1Z2dlckFnZW50ID0gYWdlbnQ7
IH0KIApAQCAtMTMxLDcgKzEzMCw2IEBAIHB1YmxpYzoKIAogICAgIEluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50KiBpbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1f
aW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ7IH0KICAgICB2b2lkIHNldEluc3BlY3RvckhlYXBQ
cm9maWxlckFnZW50KEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KiBhZ2VudCkgeyBtX2luc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50ID0gYWdlbnQ7IH0KLSNlbmRpZgogCiAgICAgSW5zcGVjdG9y
V29ya2VyQWdlbnQqIGluc3BlY3RvcldvcmtlckFnZW50KCkgY29uc3QgeyByZXR1cm4gbV9pbnNw
ZWN0b3JXb3JrZXJBZ2VudDsgfQogICAgIHZvaWQgc2V0SW5zcGVjdG9yV29ya2VyQWdlbnQoSW5z
cGVjdG9yV29ya2VyQWdlbnQqIGFnZW50KSB7IG1faW5zcGVjdG9yV29ya2VyQWdlbnQgPSBhZ2Vu
dDsgfQpAQCAtMTY2LDEzICsxNjQsMTEgQEAgcHJpdmF0ZToKICAgICBJbnNwZWN0b3JEYXRhYmFz
ZUFnZW50KiBtX2luc3BlY3RvckRhdGFiYXNlQWdlbnQ7CiAjZW5kaWYKICAgICBJbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQqIG1faW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Owot
I2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIEluc3BlY3Rvcjo6SW5zcGVjdG9y
RGVidWdnZXJBZ2VudCogbV9pbnNwZWN0b3JEZWJ1Z2dlckFnZW50OwogICAgIFBhZ2VEZWJ1Z2dl
ckFnZW50KiBtX3BhZ2VEZWJ1Z2dlckFnZW50OwogICAgIEluc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQqIG1faW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDsKICAgICBJbnNwZWN0b3JQcm9maWxlckFn
ZW50KiBtX2luc3BlY3RvclByb2ZpbGVyQWdlbnQ7CiAgICAgSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQqIG1faW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ7Ci0jZW5kaWYKICAgICBJbnNwZWN0
b3JXb3JrZXJBZ2VudCogbV9pbnNwZWN0b3JXb3JrZXJBZ2VudDsKICAgICBJbnNwZWN0b3JDYW52
YXNBZ2VudCogbV9pbnNwZWN0b3JDYW52YXNBZ2VudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAppbmRleCA2YjM4ZjNhOTgyZDJjMzVmNjg1
MDk5ZWYyMTM2MDYzY2ZlZmE2ZGM4Li42N2Y0OTUxYWMwZjZhMjIwMzdkOGY3NzM5ODBjMzJmOTlj
OTY1NWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2Vy
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2Vu
dC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQ
YWdlRGVidWdnZXJBZ2VudC5oIgogCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYm
IEVOQUJMRShJTlNQRUNUT1IpCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yT3ZlcmxheS5oIgpAQCAtMTQ0LDQg
KzE0NCw0IEBAIHZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OmRpZENsZWFyTWFpbkZyYW1lV2luZG93
T2JqZWN0KCkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKEpB
VkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRShJTlNQRUNUT1IpCisjZW5kaWYgLy8gRU5BQkxF
KElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVi
dWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50
LmgKaW5kZXggMDFlM2FkOThkZmI4OTUyNTY3ODAwODFhZjVhNWEwZTIyY2QzZGJkZi4uOWJmNzhh
MzEyYzkyYTRhMzBjZDI4M2M4MmQxMTM4NTlhZWExZDM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpZm5kZWYg
UGFnZURlYnVnZ2VyQWdlbnRfaAogI2RlZmluZSBQYWdlRGVidWdnZXJBZ2VudF9oCiAKLSNpZiBF
TkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikgJiYgRU5BQkxFKElOU1BFQ1RPUikKKyNpZiBFTkFC
TEUoSU5TUEVDVE9SKQogCiAjaW5jbHVkZSAiUGFnZVNjcmlwdERlYnVnU2VydmVyLmgiCiAjaW5j
bHVkZSAiV2ViRGVidWdnZXJBZ2VudC5oIgpAQCAtNzcsNiArNzcsNiBAQCBwcml2YXRlOgogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoSkFWQVNDUklQVF9ERUJV
R0dFUikgJiYgRU5BQkxFKElOU1BFQ1RPUikKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQog
CiAjZW5kaWYgLy8gIWRlZmluZWQoUGFnZURlYnVnZ2VyQWdlbnRfaCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbAppbmRleCBmMzc2MGY2MDRmOGZiZGZmYzA4MDhm
MjNjZjg4YmQ2NTc5MmJjOThjLi5mYjIzMWJkZTg2MDRlMzZlODI2ODBlMTRkOGFkYzZiZGJiZjQz
NGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsCkBAIC0y
Niw3ICsyNiw2IEBACiAKIFsKICAgICBOb0ludGVyZmFjZU9iamVjdCwKLSAgICBDb25kaXRpb25h
bD1KQVZBU0NSSVBUX0RFQlVHR0VSLAogXSBpbnRlcmZhY2UgU2NyaXB0UHJvZmlsZSB7CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0aXRsZTsKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5zaWduZWQgbG9uZyB1aWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Njcmlw
dFByb2ZpbGVOb2RlLmlkbAppbmRleCAwMjJiMWJhMDk2OGM4MDlhZDNlODA0MTVkN2Y1NjU4MTNl
Y2RhZTI1Li5iMDc2OWRlN2VmYTU5YWJhMTE3M2RlNzJhNDRhNjYxYWI1YjQ0NTI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwKQEAgLTI2LDcg
KzI2LDYgQEAKIAogWwogICAgIE5vSW50ZXJmYWNlT2JqZWN0LAotICAgIENvbmRpdGlvbmFsPUpB
VkFTQ1JJUFRfREVCVUdHRVIsCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQogXSBpbnRl
cmZhY2UgU2NyaXB0UHJvZmlsZU5vZGUgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgZnVuY3Rpb25OYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dl
YkRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkRlYnVnZ2Vy
QWdlbnQuY3BwCmluZGV4IDkyYWY1YTIxNDcxYzkyNjU4NDkzZmYyY2UyYzI3MzIyOTQ1ODRiNDku
LjU3ZDIxNzQ0Y2M3ZmM5OGY5NzAxM2QwMTk5ZjMzNDJjMDc4N2VkNjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvV2ViRGVidWdnZXJBZ2VudC5jcHAKQEAgLTI3LDcgKzI3LDYgQEAK
ICNpbmNsdWRlICJXZWJEZWJ1Z2dlckFnZW50LmgiCiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQot
I2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGlu
Z0FnZW50cy5oIgogCkBAIC01NSw1ICs1NCw0IEBAIHZvaWQgV2ViRGVidWdnZXJBZ2VudDo6ZGlz
YWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAot
I2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogI2VuZGlmIC8vIEVOQUJMRShJ
TlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViRGVidWdn
ZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkRlYnVnZ2VyQWdlbnQuaApp
bmRleCA1YzYxNzNmNTY5Zjg3ZjY5OTY3OGY3NDdkODU0NzI0OTRhZTdiNjYwLi4wZTQyNWVhN2Y1
NTZiYWE4NDA3Nzg4ZjZhZTUzMTVhMWI2MWYwNGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvV2ViRGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9XZWJEZWJ1Z2dlckFnZW50LmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgV2ViRGVi
dWdnZXJBZ2VudF9oCiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotI2lmIEVOQUJMRShKQVZBU0NS
SVBUX0RFQlVHR0VSKQogCiAjaW5jbHVkZSA8aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50Lmg+CiAKQEAgLTUyLDcgKzUxLDYgQEAgcHJvdGVjdGVkOgogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICNl
bmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQogCiAjZW5kaWYgLy8gIWRlZmluZWQoV2ViRGVidWdn
ZXJBZ2VudF9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRl
YnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2Vy
QWdlbnQuY3BwCmluZGV4IDNhOGJhZDVjMTNhNGVlZGQ4NmI3MjE1NWY5ODJhZmYzMjAzMGJkYWYu
LjUwNTNhNGMxMjc4Yzk5NTgwMzZhOGY2MGYyZWU4M2E4NGE0MTkwODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAKQEAgLTMxLDcgKzMx
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dlckFnZW50
LmgiCiAKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikgJiYgRU5BQkxFKElOU1BFQ1RP
UikKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUu
aCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKQEAgLTE2MCw0ICsxNjAsNCBAQCB2b2lkIFdv
cmtlckRlYnVnZ2VyQWdlbnQ6OnVubXV0ZUNvbnNvbGUoKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikgJiYgRU5BQkxFKElO
U1BFQ1RPUikKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmgKaW5kZXggYjA4NjA5NmE2MmVlMTcwNzBm
NjEwY2YzZDhlNTlmMmFmMmZhOTA0NS4uNmQ0MWFhNTg4NjA0YjdlYjE1ZGRiYWUzZTY1OTRkMWJj
NDA3NmQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVn
Z2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJB
Z2VudC5oCkBAIC0zMSw3ICszMSw3IEBACiAjaWZuZGVmIFdvcmtlckRlYnVnZ2VyQWdlbnRfaAog
I2RlZmluZSBXb3JrZXJEZWJ1Z2dlckFnZW50X2gKIAotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RF
QlVHR0VSKSAmJiBFTkFCTEUoSU5TUEVDVE9SKQorI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNp
bmNsdWRlICJXZWJEZWJ1Z2dlckFnZW50LmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0RGVidWdT
ZXJ2ZXIuaCIKQEAgLTY3LDYgKzY3LDYgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRShJ
TlNQRUNUT1IpCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKIAogI2VuZGlmIC8vICFkZWZp
bmVkKFdvcmtlckRlYnVnZ2VyQWdlbnRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCAyMWQzOWJkZDU0NDVm
ODlhMTM4NmJkOTMwYzg2MjUxOWM4YjY4MTRhLi43NDljODgxNTJmMDQzNTg2Mjk5MDEzYjc5OTk3
YTI1OTdmYTlmOWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC05MSwxNCArOTEsMTIgQEAgV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlcjo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihXb3JrZXJHbG9iYWxT
Y29wZSYgd29ya2VyR2wKICAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptb3ZlKHJ1bnRpbWVBZ2Vu
dCkpOwogCiAgICAgYXV0byBjb25zb2xlQWdlbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlckNv
bnNvbGVBZ2VudD4obV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX2luamVjdGVkU2NyaXB0
TWFuYWdlci5nZXQoKSk7Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgYXV0
byBkZWJ1Z2dlckFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJEZWJ1Z2dlckFnZW50Piht
X2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgbV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgp
LCAmd29ya2VyR2xvYmFsU2NvcGUpOwogICAgIG1fcnVudGltZUFnZW50LT5zZXRTY3JpcHREZWJ1
Z1NlcnZlcigmZGVidWdnZXJBZ2VudC0+c2NyaXB0RGVidWdTZXJ2ZXIoKSk7CiAgICAgbV9hZ2Vu
dHMuYXBwZW5kKHN0ZDo6bW92ZShkZWJ1Z2dlckFnZW50KSk7CiAKICAgICBtX2FnZW50cy5hcHBl
bmQoSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5n
ZXQoKSwgY29uc29sZUFnZW50LmdldCgpLCAmd29ya2VyR2xvYmFsU2NvcGUsIG1faW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLmdldCgpKSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bWFrZV91bmlx
dWU8SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ+KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQo
KSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKTsKLSNlbmRpZgogICAgIG1fYWdlbnRz
LmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+KG1faW5zdHJ1
bWVudGluZ0FnZW50cy5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0ciwgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6V29ya2VySW5zcGVjdG9yLCBudWxscHRyKSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0
ZDo6bW92ZShjb25zb2xlQWdlbnQpKTsKIApAQCAtMTQ1LDEzICsxNDMsMTEgQEAgdm9pZCBXb3Jr
ZXJJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQoY29uc3Qg
U3RyaW5nJiBtZXNzYWcKICAgICAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+ZGlzcGF0Y2gobWVz
c2FnZSk7CiB9CiAKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKIHZvaWQgV29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzdW1lKCkKIHsKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7
CiAgICAgbV9ydW50aW1lQWdlbnQtPnJ1bigmdW51c2VkKTsKIH0KLSNlbmRpZgogCiBJbnNwZWN0
b3JGdW5jdGlvbkNhbGxIYW5kbGVyIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OmZ1bmN0aW9u
Q2FsbEhhbmRsZXIoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggYWQzMmQzMDZkMTcyNTU3OTZhMzUy
ZjJiMjJlZGFhNzU4NGY5YTI4Yy4uNzk4NDA4OGIxM2Y3OTI2MTNlN2VjYTlmZjkxYzgxYjJmMzhk
NDMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVj
dG9yQ29udHJvbGxlci5oCkBAIC02NSw5ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbm5l
Y3RGcm9udGVuZCgpOwogICAgIHZvaWQgZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6SW5z
cGVjdG9yRGlzY29ubmVjdFJlYXNvbik7CiAgICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tRnJv
bnRlbmQoY29uc3QgU3RyaW5nJik7Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAg
ICAgdm9pZCByZXN1bWUoKTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIGRldmVsb3BlckV4
dHJhc0VuYWJsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVh
bCBib29sIGNhbkFjY2Vzc0luc3BlY3RlZFNjcmlwdFN0YXRlKEpTQzo6RXhlY1N0YXRlKikgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV29ya2VyUnVudGltZUFnZW50LmNwcAppbmRleCBmY2UyZDY0MmExZjk2NDExZjMwMGU2MGQ1
MGJkNGMyNDAzZjJjZTg4Li42ZTI2NGNkMjEyOTRhNzIxMTBjNjE5YmRmZjcxY2M2Y2E3YWE2NzVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNw
cApAQCAtOTUsNyArOTUsNiBAQCBKU0M6OlZNKiBXb3JrZXJSdW50aW1lQWdlbnQ6Omdsb2JhbFZN
KCkKICAgICByZXR1cm4gSlNET01XaW5kb3dCYXNlOjpjb21tb25WTSgpOwogfQogCi0jaWYgRU5B
QkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiB2b2lkIFdvcmtlclJ1bnRpbWVBZ2VudDo6cGF1c2VX
b3JrZXJHbG9iYWxTY29wZShXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCkKIHsKICAgICBtX3Bh
dXNlZCA9IHRydWU7CkBAIC0xMDUsNyArMTA0LDYgQEAgdm9pZCBXb3JrZXJSdW50aW1lQWdlbnQ6
OnBhdXNlV29ya2VyR2xvYmFsU2NvcGUoV29ya2VyR2xvYmFsU2NvcGUqIGNvbnRleHQpCiAgICAg
Ly8gS2VlcCB3YWl0aW5nIHVudGlsIGV4ZWN1dGlvbiBpcyByZXN1bWVkLgogICAgIH0gd2hpbGUg
KHJlc3VsdCA9PSBNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2ZWQgJiYgbV9wYXVzZWQpOwogfQot
I2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50
aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQu
aAppbmRleCBiNzA1MDhmZDAyM2RlYjQ5MWRhMTE4ZWI3YjA0MjQwMDQ5ZWQ3YWI1Li45NWUyNTRk
Y2QyZWZmNjQ2NGI1ZTcwN2ZhNjRhM2Y0YzVkMDk4NmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCkBAIC01MSw5ICs1MSw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBydW4oRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsKIAotI2lmIEVO
QUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIHZvaWQgcGF1c2VXb3JrZXJHbG9iYWxTY29w
ZShXb3JrZXJHbG9iYWxTY29wZSopOwotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBK
U0M6OlZNKiBnbG9iYWxWTSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKaW5kZXggZWRiNDlmM2E3OTc4ZWM5OTAwMzg0YWVkOGM3Y2VjZjBlMTc0ZTM5MC4uYzZm
NzJhNTcyZWQ4MGE1YWU4NDlkZDZhYTdiMzU4ODkwYjhhZjA2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yOTQ4LDcgKzI5NDgsNyBAQCB2b2lkIEZyYW1lTG9hZGVy
Ojpjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgUGFzcwogICAgIGlmICghbV9mcmFtZS5wYWdlKCkpCiAgICAgICAgIHJldHVybjsKIAotI2lm
IEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFCTEUoSU5TUEVDVE9SKQorI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkgewog
ICAgICAgICBpZiAobV9mcmFtZS5pc01haW5GcmFtZSgpKQogICAgICAgICAgICAgcGFnZS0+aW5z
cGVjdG9yQ29udHJvbGxlcigpLnJlc3VtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9Db25zb2xlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKaW5kZXgg
NDUwYzRkM2Y0OWNjMzUwZTAwMWQ2NGYxMTc0ODJmODY5YWViNjk0Ni4uZTIxYjg2MmU5N2MxZmJk
NmI4MzFlNDA4MjBjMTAxZmE4MzFmMzMzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Db25zb2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCkBAIC0x
ODYsOCArMTg2LDYgQEAgdm9pZCBDb25zb2xlOjpjb3VudChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUs
IFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMKICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmNvbnNvbGVDb3VudChwYWdlKCksIHN0YXRlLCBhcmd1bWVudHMpOwogfQog
Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0KIHZvaWQgQ29uc29sZTo6cHJvZmls
ZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgUGFn
ZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKQEAgLTIyNyw4ICsyMjUsNiBAQCB2b2lkIENvbnNvbGU6
OnByb2ZpbGVFbmQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBjb25zdCBTdHJpbmcmIHRpdGxlKQog
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkUHJvZmlsZShwYWdlLCBwcm9maWxlLCBj
YWxsU3RhY2spOwogfQogCi0jZW5kaWYKLQogdm9pZCBDb25zb2xlOjp0aW1lKGNvbnN0IFN0cmlu
ZyYgdGl0bGUpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdGFydENvbnNvbGVU
aW1pbmcobV9mcmFtZSwgdGl0bGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
b25zb2xlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAppbmRleCAzMzMyZDAxYjBm
Y2Y3MDEyYmZmNjdmZDM3Yjc5ZTI1M2Y2Y2M1NWNkLi42NGVhYzFhYzQ4NzYyZWM0MjIwZGY0YTc5
ZTk0ZDNlZDFhYjk4OTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaApAQCAtNDMsOSArNDMsNyBAQCBj
bGFzcyBGcmFtZTsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBTY3JpcHRBcmd1bWVudHM7CiAKLSNpZiBF
TkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxTY3JpcHRQ
cm9maWxlPj4gUHJvZmlsZXNBcnJheTsKLSNlbmRpZgogCiBjbGFzcyBDb25zb2xlIDogcHVibGlj
IFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8Q29uc29sZT4sIHB1YmxpYyBET01X
aW5kb3dQcm9wZXJ0eSB7CiBwdWJsaWM6CkBAIC02NCwxMSArNjIsOSBAQCBwdWJsaWM6CiAgICAg
dm9pZCB0cmFjZShKU0M6OkV4ZWNTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPik7
CiAgICAgdm9pZCBhc3NlcnRDb25kaXRpb24oSlNDOjpFeGVjU3RhdGUqLCBQYXNzUmVmUHRyPFNj
cmlwdEFyZ3VtZW50cz4sIGJvb2wgY29uZGl0aW9uKTsKICAgICB2b2lkIGNvdW50KEpTQzo6RXhl
Y1N0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+KTsKLSNpZiBFTkFCTEUoSkFWQVND
UklQVF9ERUJVR0dFUikKICAgICBjb25zdCBQcm9maWxlc0FycmF5JiBwcm9maWxlcygpIGNvbnN0
IHsgcmV0dXJuIG1fcHJvZmlsZXM7IH0KICAgICB2b2lkIHByb2ZpbGUoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBTdHJpbmcmID0gU3RyaW5nKCkpOwogICAgIHZvaWQgcHJvZmlsZUVuZChKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgPSBTdHJpbmcoKSk7Ci0jZW5kaWYKICAgICB2b2lkIHRp
bWUoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCB0aW1lRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nJik7CiAgICAgdm9pZCB0aW1lU3RhbXAoUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVu
dHM+KTsKQEAgLTgxLDkgKzc3LDcgQEAgcHJpdmF0ZToKIAogICAgIGV4cGxpY2l0IENvbnNvbGUo
RnJhbWUqKTsKIAotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIFByb2ZpbGVz
QXJyYXkgbV9wcm9maWxlczsKLSNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ29uc29sZS5pZGwKaW5kZXggYzhjMjhhNGRhNjE3ZWIwZmJhYzJhZmE3ODY4Zjky
OWMzMzZhYzk5Yi4uOTBhZDEwYTUwNDVjYjkzYWZhMmQwN2ZkOTBjNjAyOTEwMWM0MzM4ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NvbnNvbGUuaWRsCkBAIC00Niw5ICs0Niw5IEBACiAgICAgLy8gQXMgcGVyIHNw
ZWM6IGh0dHA6Ly93d3cudzMub3JnL1RSL1dlYklETC8jaWRsLXNlcXVlbmNlCiAgICAgLy8gIlNl
cXVlbmNlcyBtdXN0IG5vdCBiZSB1c2VkIGFzIHRoZSB0eXBlIG9mIGFuIGF0dHJpYnV0ZSwgY29u
c3RhbnQgb3IgZXhjZXB0aW9uIGZpZWxkLiIKICAgICAvLyBGSVhNRTogdGhpcyB3aWxsIGxlYWQg
dG8gQlVHIGNvbnNvbGUucHJvZmlsZXMgIT09IGNvbnNvbGUucHJvZmlsZXMgYXMgcHJvZmlsZSB3
aWxsIGFsd2F5cyByZXR1cm5zIG5ldyBhcnJheS4KLSAgICBbQ29uZGl0aW9uYWw9SkFWQVNDUklQ
VF9ERUJVR0dFUl0gcmVhZG9ubHkgYXR0cmlidXRlIFNjcmlwdFByb2ZpbGVbXSBwcm9maWxlczsK
LSAgICBbQ29uZGl0aW9uYWw9SkFWQVNDUklQVF9ERUJVR0dFUiwgQ2FsbFdpdGg9U2NyaXB0U3Rh
dGVdIHZvaWQgcHJvZmlsZShbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRB
cz1OdWxsU3RyaW5nXSBvcHRpb25hbCBET01TdHJpbmcgdGl0bGUpOwotICAgIFtDb25kaXRpb25h
bD1KQVZBU0NSSVBUX0RFQlVHR0VSLCBDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gdm9pZCBwcm9maWxl
RW5kKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmdd
IG9wdGlvbmFsIERPTVN0cmluZyB0aXRsZSk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNjcmlw
dFByb2ZpbGVbXSBwcm9maWxlczsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIHZvaWQgcHJv
ZmlsZShbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5n
XSBvcHRpb25hbCBET01TdHJpbmcgdGl0bGUpOworICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0g
dm9pZCBwcm9maWxlRW5kKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFz
PU51bGxTdHJpbmddIG9wdGlvbmFsIERPTVN0cmluZyB0aXRsZSk7CiAKICAgICB2b2lkIHRpbWUo
W1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gRE9N
U3RyaW5nIHRpdGxlKTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIHZvaWQgdGltZUVuZChb
VHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBET01T
dHJpbmcgdGl0bGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDk5YTMx
N2U1Y2VlZDRlODRkNTgxYTIyMTUxYTkzNDkyNmEzMjhjMTguLjVmNDYyMzkzYmQyYjI2OWM0MTUz
ZDAzYjI0MmZlYzEzMDY4MGE0OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
QEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lkIEludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZShQYWdlKiBwYWdlKQogICAgIFRleHRSdW46OnNldEFsbG93c1JvdW5kaW5nSGFja3MoZmFsc2Up
OwogICAgIFdlYkNvcmU6Om92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhWZWN0b3I8U3Ry
aW5nPigpKTsKICAgICBXZWJDb3JlOjpTZXR0aW5nczo6c2V0VXNlc092ZXJsYXlTY3JvbGxiYXJz
KGZhbHNlKTsKLSNpZiBFTkFCTEUoSU5TUEVDVE9SKSAmJiBFTkFCTEUoSkFWQVNDUklQVF9ERUJV
R0dFUikKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xs
ZXIoKS5zZXRQcm9maWxlckVuYWJsZWQoZmFsc2UpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKSAmJiAhUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCBlZjM2MGFjMWIxODE5ZGM1NWU1MTRiYmY4NGIx
OTNiYzY5MWFiMDdkLi4zMjRjZDg5NDRiNzJiM2JiODVhYWYxNjU0ZjM0YWUyZGZhMTBjNmViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApA
QCAtNDA2LDEzICs0MDYsMTEgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6d29ya2VyT2Jq
ZWN0RGVzdHJveWVkSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCoKIH0KIAogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiBzdGF0aWMg
dm9pZCBjb25uZWN0VG9Xb3JrZXJHbG9iYWxTY29wZUluc3BlY3RvclRhc2soU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgYm9vbCkKIHsKICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTihjb250ZXh0LT5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOwogICAgIHN0YXRpY19j
YXN0PFdvcmtlckdsb2JhbFNjb3BlKj4oY29udGV4dCktPndvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIoKS5jb25uZWN0RnJvbnRlbmQoKTsKIH0KLSNlbmRpZgogCiB2b2lkIFdvcmtlck1lc3NhZ2lu
Z1Byb3h5Ojpjb25uZWN0VG9JbnNwZWN0b3IoV29ya2VyR2xvYmFsU2NvcGVQcm94eTo6UGFnZUlu
c3BlY3RvciogcGFnZUluc3BlY3RvcikKIHsKQEAgLTQyMCw0NSArNDE4LDM1IEBAIHZvaWQgV29y
a2VyTWVzc2FnaW5nUHJveHk6OmNvbm5lY3RUb0luc3BlY3RvcihXb3JrZXJHbG9iYWxTY29wZVBy
b3h5OjpQYWdlSW5zcGVjCiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQoIW1fcGFnZUluc3Bl
Y3Rvcik7CiAgICAgbV9wYWdlSW5zcGVjdG9yID0gcGFnZUluc3BlY3RvcjsKLSNpZiBFTkFCTEUo
SkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBtX3dvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RU
YXNrRm9yTW9kZShjcmVhdGVDYWxsYmFja1Rhc2soY29ubmVjdFRvV29ya2VyR2xvYmFsU2NvcGVJ
bnNwZWN0b3JUYXNrLCB0cnVlKSwgV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9k
ZSk7Ci0jZW5kaWYKIH0KIAotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogc3RhdGlj
IHZvaWQgZGlzY29ubmVjdEZyb21Xb3JrZXJHbG9iYWxTY29wZUluc3BlY3RvclRhc2soU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgYm9vbCkKIHsKICAgICBBU1NFUlRfV0lUSF9TRUNV
UklUWV9JTVBMSUNBVElPTihjb250ZXh0LT5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOwogICAgIHN0
YXRpY19jYXN0PFdvcmtlckdsb2JhbFNjb3BlKj4oY29udGV4dCktPndvcmtlckluc3BlY3RvckNv
bnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JEaXNjb25u
ZWN0UmVhc29uOjpJbnNwZWN0b3JEZXN0cm95ZWQpOwogfQotI2VuZGlmCiAKIHZvaWQgV29ya2Vy
TWVzc2FnaW5nUHJveHk6OmRpc2Nvbm5lY3RGcm9tSW5zcGVjdG9yKCkKIHsKICAgICBtX3BhZ2VJ
bnNwZWN0b3IgPSAwOwogICAgIGlmIChtX2Fza2VkVG9UZXJtaW5hdGUpCiAgICAgICAgIHJldHVy
bjsKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBtX3dvcmtlclRocmVhZC0+
cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShjcmVhdGVDYWxsYmFja1Rhc2soZGlzY29ubmVjdEZy
b21Xb3JrZXJHbG9iYWxTY29wZUluc3BlY3RvclRhc2ssIHRydWUpLCBXb3JrZXJEZWJ1Z2dlckFn
ZW50OjpkZWJ1Z2dlclRhc2tNb2RlKTsKLSNlbmRpZgogfQogCi0jaWYgRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpCiBzdGF0aWMgdm9pZCBkaXNwYXRjaE9uSW5zcGVjdG9yQmFja2VuZFRhc2so
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQog
ewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGNvbnRleHQtPmlzV29ya2Vy
R2xvYmFsU2NvcGUoKSk7CiAgICAgc3RhdGljX2Nhc3Q8V29ya2VyR2xvYmFsU2NvcGUqPihjb250
ZXh0KS0+d29ya2VySW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc3BhdGNoTWVzc2FnZUZyb21Gcm9u
dGVuZChtZXNzYWdlKTsKIH0KLSNlbmRpZgogCiB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpz
ZW5kTWVzc2FnZVRvSW5zcGVjdG9yKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBpZiAo
bV9hc2tlZFRvVGVybWluYXRlKQogICAgICAgICByZXR1cm47Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpCiAgICAgbV93b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1v
ZGUoY3JlYXRlQ2FsbGJhY2tUYXNrKGRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kVGFzaywgU3Ry
aW5nKG1lc3NhZ2UpKSwgV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSk7CiAg
ICAgV29ya2VyRGVidWdnZXJBZ2VudDo6aW50ZXJydXB0QW5kRGlzcGF0Y2hJbnNwZWN0b3JDb21t
YW5kcyhtX3dvcmtlclRocmVhZC5nZXQoKSk7Ci0jZW5kaWYKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaW5zcGVjdG9yLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3IuY3BwCmluZGV4IGU5YTA4
OTE2MGU1YzRhZmIxMTJkZGJlM2MyYzQ5NmZhNjNmNDA5MzIuLmZiNmFiMTA0MDc3MWM5ZGUzY2M2
M2I1NDNjZDY3MmUzZWYwZjNjOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJpbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJpbnNwZWN0b3IuY3BwCkBAIC0zNTEsMTIgKzM1MSw4IEBAIHN0YXRpYyB2b2lkIHdl
YmtpdF93ZWJfaW5zcGVjdG9yX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHBy
b3BfaWQsIGNvCiAKICAgICBzd2l0Y2gocHJvcF9pZCkgewogICAgIGNhc2UgUFJPUF9KQVZBU0NS
SVBUX1BST0ZJTElOR19FTkFCTEVEOiB7Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIp
CiAgICAgICAgIGJvb2wgZW5hYmxlZCA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwogICAg
ICAgICBwcml2LT5wYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuc2V0UHJvZmlsZXJFbmFibGVk
KGVuYWJsZWQpOwotI2Vsc2UKLSAgICAgICAgZ19tZXNzYWdlKCJQUk9QX0pBVkFTQ1JJUFRfUFJP
RklMSU5HX0VOQUJMRUQgaXMgbm90IHdvcmsgYmVjYXVzZSBvZiB0aGUgamF2YXNjcmlwdCBkZWJ1
Z2dlciBpcyBkaXNhYmxlZFxuIik7Ci0jZW5kaWYKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
IGNhc2UgUFJPUF9USU1FTElORV9QUk9GSUxJTkdfRU5BQkxFRDogewpAQCAtMzgyLDExICszNzgs
NyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2luc3BlY3Rvcl9nZXRfcHJvcGVydHkoR09iamVj
dCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVgogICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmco
dmFsdWUsIHByaXYtPmluc3BlY3RlZF91cmkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBS
T1BfSkFWQVNDUklQVF9QUk9GSUxJTkdfRU5BQkxFRDoKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9E
RUJVR0dFUikKICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+cGFnZS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLnByb2ZpbGVyRW5hYmxlZCgpKTsKLSNlbHNlCi0gICAgICAg
IGdfbWVzc2FnZSgiUFJPUF9KQVZBU0NSSVBUX1BST0ZJTElOR19FTkFCTEVEIGlzIG5vdCB3b3Jr
IGJlY2F1c2Ugb2YgdGhlIGphdmFzY3JpcHQgZGVidWdnZXIgaXMgZGlzYWJsZWRcbiIpOwotI2Vu
ZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUFJPUF9USU1FTElORV9QUk9GSUxJTkdfRU5B
QkxFRDoKICAgICAgICAgZ19tZXNzYWdlKCJQUk9QX1RJTUVMSU5FX1BST0ZJTElOR19FTkFCTEVE
IGhhcyBiZWVuIGRlcHJlY2F0ZWRcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAppbmRleCBjY2Y0NTVmMjUyOWI4ZmQzMjE2ZTdm
Mjc4ZTRiN2IwMGFlNDNjNmJkLi45MWMxMzQ1NWI0MjhmMGRjMTMzNGUxOTExN2FhZDllMTBlMTA4
MDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yLmNwcApAQCAtMjMzLDQ5ICsyMzMsMzkgQEAgdm9pZCBXZWJJbnNwZWN0b3I6OnNob3dN
YWluUmVzb3VyY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogCiB2b2lkIFdlYkluc3BlY3Rv
cjo6c3RhcnRKYXZhU2NyaXB0RGVidWdnaW5nKCkKIHsKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9E
RUJVR0dFUikKICAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5z
aG93KCk7CiAgICAgaWYgKG1fZnJvbnRlbmRDbGllbnQpCiAgICAgICAgIG1fZnJvbnRlbmRDbGll
bnQtPnNldERlYnVnZ2luZ0VuYWJsZWQodHJ1ZSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJJbnNw
ZWN0b3I6OnN0b3BKYXZhU2NyaXB0RGVidWdnaW5nKCkKIHsKLSNpZiBFTkFCTEUoSkFWQVNDUklQ
VF9ERUJVR0dFUikKICAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIo
KS5zaG93KCk7CiAgICAgaWYgKG1fZnJvbnRlbmRDbGllbnQpCiAgICAgICAgIG1fZnJvbnRlbmRD
bGllbnQtPnNldERlYnVnZ2luZ0VuYWJsZWQoZmFsc2UpOwotI2VuZGlmCiB9CiAKIHZvaWQgV2Vi
SW5zcGVjdG9yOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7
Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgbV9wYWdlLT5jb3JlUGFnZSgp
LT5pbnNwZWN0b3JDb250cm9sbGVyKCkuc2hvdygpOwogICAgIGlmICghbV9mcm9udGVuZENsaWVu
dCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wYWdlLT5jb3JlUGFnZSgpLT5pbnNwZWN0b3JD
b250cm9sbGVyKCkuc2V0UHJvZmlsZXJFbmFibGVkKGVuYWJsZWQpOwotI2VuZGlmCiB9CiAKIHZv
aWQgV2ViSW5zcGVjdG9yOjpzdGFydEphdmFTY3JpcHRQcm9maWxpbmcoKQogewotI2lmIEVOQUJM
RShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9y
Q29udHJvbGxlcigpLnNob3coKTsKICAgICBpZiAobV9mcm9udGVuZENsaWVudCkKICAgICAgICAg
bV9mcm9udGVuZENsaWVudC0+c3RhcnRQcm9maWxpbmdKYXZhU2NyaXB0KCk7Ci0jZW5kaWYKIH0K
IAogdm9pZCBXZWJJbnNwZWN0b3I6OnN0b3BKYXZhU2NyaXB0UHJvZmlsaW5nKCkKIHsKLSNpZiBF
TkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3Bl
Y3RvckNvbnRyb2xsZXIoKS5zaG93KCk7CiAgICAgaWYgKG1fZnJvbnRlbmRDbGllbnQpCiAgICAg
ICAgIG1fZnJvbnRlbmRDbGllbnQtPnN0b3BQcm9maWxpbmdKYXZhU2NyaXB0KCk7Ci0jZW5kaWYK
IH0KIAogdm9pZCBXZWJJbnNwZWN0b3I6OnN0YXJ0UGFnZVByb2ZpbGluZygpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0
RmVhdHVyZXMuY21ha2UKaW5kZXggYjA2N2I5NjBhMmM0M2FkZTJiMGRjNmVmYTcxMmZlYzYyOTRk
ZDlhYi4uMTQxZGQ4N2EyYmMwZDljMjQ3MTJjMzMwNzM2MmFhYWU5YjIyYTkzMyAxMDA2NDQKLS0t
IGEvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9X
ZWJLaXRGZWF0dXJlcy5jbWFrZQpAQCAtNjksNyArNjksNiBAQCBtYWNybyhXRUJLSVRfT1BUSU9O
X0JFR0lOKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUg
IlRvZ2dsZSB0aW1lIHR5cGUgPGlucHV0PiBzdXBwb3J0IiBPRkYpCiAgICAgV0VCS0lUX09QVElP
Tl9ERUZJTkUoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSyAiVG9nZ2xlIHdlZWsgdHlwZSA8aW5wdXQ+
IHN1cHBvcnQiIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfSU5TUEVDVE9S
ICJUb2dnbGUgV2ViIEluc3BlY3RvciBzdXBwb3J0IiBPTikKLSAgICBXRUJLSVRfT1BUSU9OX0RF
RklORShFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUiAiVG9nZ2xlIEphdmFTY3JpcHQgRGVidWdn
ZXIvUHJvZmlsZXIgc3VwcG9ydCIgT04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxF
X0pJVCAiRW5hYmxlIEp1c3RJblRpbWUgamF2YXNjcmlwdCBzdXBwb3J0IiBPTikKICAgICBXRUJL
SVRfT1BUSU9OX0RFRklORShFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMgIlRvZ2dsZSBMZWdh
Y3kgRGVza3RvcCBOb3RpZmljYXRpb25zIFN1cHBvcnQiIE9GRikKICAgICBXRUJLSVRfT1BUSU9O
X0RFRklORShFTkFCTEVfTEVHQUNZX1ZJRVdQT1JUX0FEQVBUSU9OICJUb2dnbGUgbGVnYWN5IHZp
ZXdwb3J0IGFkYXB0aW9uIiBPRkYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Vjb25maWcuaC5j
bWFrZSBiL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCmluZGV4IDY0ZTI0NmIxMTY4MjllZThi
ZDg2NmZmMWVlZTdiMTliNDA1ZWE2YWUuLjEwOWQ4MTVjNzQ2MjY4N2I4NTZmMDM1Mzk3YmZlNjg4
NTQxNWE5OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCisrKyBiL1Nv
dXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCkBAIC02MCw3ICs2MCw2IEBACiAjY21ha2VkZWZpbmUw
MSBFTkFCTEVfSU5QVVRfVFlQRV9NT05USAogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0lOUFVUX1RZ
UEVfV0VFSwogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0lOU1BFQ1RPUgotI2NtYWtlZGVmaW5lMDEg
RU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9KSVQKICNj
bWFrZWRlZmluZTAxIEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUwogI2NtYWtlZGVmaW5lMDEg
RU5BQkxFX0xFR0FDWV9WSUVXUE9SVF9BREFQVElPTgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQxZTMwOTk5Mjk2NWEzZDc2ODhlMDZlOTMwOGM2
ZjkwODE0NTYzNTMuLmQ4NmM5YTkyNjU2OWNlNmFiZGIzNzQ5Y2UyZDVjZTEyNDk0Yjc1NWMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAxNC0wMS0yOSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3Jn
PgorCisgICAgICAgIFJlbW92ZSBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikgZ3VhcmRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4NDAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbToKKwogMjAxNC0wMS0yOSAgS3J6eXN6dG9mIEN6ZWNo
ICA8ay5jemVjaEBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbQVRLXSBFeHBvc2UgYXJpYS1kZXNj
cmliZWRieSB3aXRoIEFUS19SRUxBVElPTl9ERVNDUklCRURfQlkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cGVybC9GZWF0dXJlTGlzdC5wbQppbmRleCA1MGJkYzhjZmQxNmRhNzlkZGJjN2Y2OGM0NjI2NDVm
NzEzYTgzYmYzLi5mNTViOTY1MmIwMDE0NjUyYmNiZTkyMDdiODMzMjhhNTFhNzIzMjhjIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC0zMTIsOSArMzEyLDYgQEAg
bXkgQGZlYXR1cmVzID0gKAogICAgIHsgb3B0aW9uID0+ICJpbnNwZWN0b3IiLCBkZXNjID0+ICJU
b2dnbGUgSW5zcGVjdG9yIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSU5TUEVD
VE9SIiwgZGVmYXVsdCA9PiAhaXNXaW5DRSgpLCB2YWx1ZSA9PiBcJGluc3BlY3RvclN1cHBvcnQg
fSwKIAotICAgIHsgb3B0aW9uID0+ICJqYXZhc2NyaXB0LWRlYnVnZ2VyIiwgZGVzYyA9PiAiVG9n
Z2xlIEphdmFTY3JpcHQgRGVidWdnZXIgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9KQVZBU0NSSVBUX0RFQlVHR0VSIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJGphdmFzY3Jp
cHREZWJ1Z2dlclN1cHBvcnQgfSwKLQogICAgIHsgb3B0aW9uID0+ICJsZWdhY3ktbm90aWZpY2F0
aW9ucyIsIGRlc2MgPT4gIlRvZ2dsZSBMZWdhY3kgTm90aWZpY2F0aW9ucyBzdXBwb3J0IiwKICAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TIiwgZGVmYXVsdCA9PiAw
LCB2YWx1ZSA9PiBcJGxlZ2FjeU5vdGlmaWNhdGlvbnNTdXBwb3J0IH0sCiAKZGlmZiAtLWdpdCBh
L0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA4OTk3ZjRkZDA2NjA5ZGJlMmMwZTgyMDU2MDY5
YTc3MTFlZGZjYjQ5Li5iMTZlNjQxYzFjNmM3ZGYyN2Y0ZTllOTg0YTUzZmIyOWNkY2I1YjNjIDEw
MDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTQtMDEtMjkgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSZW1vdmUgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpIGd1YXJkcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3ODQwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0
RmVhdHVyZXMuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtlY29uZmlnLmguY21ha2U6CisK
IDIwMTQtMDEtMjUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEdl
dCByaWQgb2YgSUNVX1VOSUNPREUgYW5kIFdDSEFSX1VOSUNPREUgcmVtbmFudHMK
</data>

          </attachment>
      

    </bug>

</bugzilla>