<?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>107736</bug_id>
          
          <creation_ts>2013-01-23 14:20:41 -0800</creation_ts>
          <short_desc>Replace ASSERT_NOT_REACHED with RELEASE_ASSERT_NOT_REACHED in JSC</short_desc>
          <delta_ts>2013-01-24 15:12:09 -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="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>814625</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-01-23 14:20:41 -0800</bug_when>
    <thetext>Replace ASSERT_NOT_REACHED with RELEASE_ASSERT_NOT_REACHED in JSC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814626</commentid>
    <comment_count>1</comment_count>
      <attachid>184311</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-01-23 14:22:11 -0800</bug_when>
    <thetext>Created attachment 184311
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814631</commentid>
    <comment_count>2</comment_count>
      <attachid>184311</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-01-23 14:24:59 -0800</bug_when>
    <thetext>Comment on attachment 184311
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814635</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-01-23 14:26:33 -0800</bug_when>
    <thetext>Committed r140594: &lt;http://trac.webkit.org/changeset/140594&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815701</commentid>
    <comment_count>4</comment_count>
      <attachid>184311</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-01-24 12:06:09 -0800</bug_when>
    <thetext>Comment on attachment 184311
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        Mechanical change with no performance impact.

What guarantees that adding this extra code in code paths we don’t execute has no performance impact?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815887</commentid>
    <comment_count>5</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-01-24 15:12:09 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 184311 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184311&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:8
&gt; &gt; +        Mechanical change with no performance impact.
&gt; 
&gt; What guarantees that adding this extra code in code paths we don’t execute has no performance impact?

Sorry, i don&apos;t understand what you&apos;re asking here.

I went through every ASSERT in JSC and applied the following logic:
1.  If this assertion failing won&apos;t cause badness (i.e. it&apos;s not meant to happen but we can handle it), then no change
2. If the assertion is in a hot path, then no change
3. Otherwise if the assertion failing would indicate relatively obvious incorrect behaviour w.r.t memory access, execution, reuse, etc then it becomes a RELEASE_ASSERT

I tried to be as aggressive as possible without impacting performance, and without touching any of the core YARR interpreter loop.  None of the benchmarks show any regression following these changes.

I&apos;m planning to beat YARR with the RELEASE_ASSERT stick as a separate patch because there are already a bunch of similar release mode-y things that YARR does, so working out what things become release assertions and what become checked&lt;&gt; is less mechanical.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184311</attachid>
            <date>2013-01-23 14:22:11 -0800</date>
            <delta_ts>2013-01-24 12:06:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107736-20130123141904.patch</filename>
            <type>text/plain</type>
            <size>103340</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NjkwYTQ2MmZhY2FkN2U1NThiNGUwZjk2MjVlZDFkNDc4YmZlNmU4Li5lOWUwNjcyZDIxOWY0ZDZm
YzE2NzdmZDMyZTA5NGYxMzM4MDMzN2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyNzQgQEAKIDIwMTMtMDEtMjMgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4K
IAorICAgICAgICBSZXBsYWNlIEFTU0VSVF9OT1RfUkVBQ0hFRCB3aXRoIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEIGluIEpTQworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA3NzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTWVjaGFuaWNhbCBjaGFuZ2Ugd2l0aCBubyBwZXJmb3JtYW5jZSBpbXBhY3Qu
CisKKyAgICAgICAgKiBBUEkvSlNCbG9ja0FkYXB0b3IubW06CisgICAgICAgIChCbG9ja0FyZ3Vt
ZW50VHlwZURlbGVnYXRlOjp0eXBlVm9pZCk6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmpl
Y3RGdW5jdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6Ojpjb25zdHJ1Y3QpOgorICAgICAgICAoSlND
Ojo6OmNhbGwpOgorICAgICAgICAqIEFQSS9KU1NjcmlwdFJlZi5jcHA6CisgICAgICAgICogQVBJ
L09iakNDYWxsYmFja0Z1bmN0aW9uLm1tOgorICAgICAgICAoQXJndW1lbnRUeXBlRGVsZWdhdGU6
OnR5cGVWb2lkKToKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaDoKKyAgICAg
ICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OmxpbmspOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2Vt
Ymxlcjo6cmVwbGFjZVdpdGhMb2FkKToKKyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OnJl
cGxhY2VXaXRoQWRkcmVzc0NvbXB1dGF0aW9uKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OmludmVydCk6CisgICAg
ICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNOjpjb3VudExlYWRpbmdaZXJvczMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJBUk06OmRpdkRvdWJsZSk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyTUlQUy5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmFic0RvdWJsZSk6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6cmVwbGFjZVdpdGhKdW1wKToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjptYXhKdW1wUmVwbGFjZW1lbnRTaXplKToK
KyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQuaDoKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJTSDQ6OmFic0RvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyU0g0OjpyZXBsYWNlV2l0aEp1bXApOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclNI
NDo6bWF4SnVtcFJlcGxhY2VtZW50U2l6ZSk6CisgICAgICAgICogYXNzZW1ibGVyL1NINEFzc2Vt
Ymxlci5oOgorICAgICAgICAoSlNDOjpTSDRBc3NlbWJsZXI6OnNobGxJbW04cik6CisgICAgICAg
IChKU0M6OlNINEFzc2VtYmxlcjo6c2hsckltbThyKToKKyAgICAgICAgKEpTQzo6U0g0QXNzZW1i
bGVyOjpjbXBsUmVnUmVnKToKKyAgICAgICAgKEpTQzo6U0g0QXNzZW1ibGVyOjpicmFuY2gpOgor
ICAgICAgICAqIGFzc2VtYmxlci9YODZBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6WDg2QXNz
ZW1ibGVyOjpyZXBsYWNlV2l0aExvYWQpOgorICAgICAgICAoSlNDOjpYODZBc3NlbWJsZXI6OnJl
cGxhY2VXaXRoQWRkcmVzc0NvbXB1dGF0aW9uKToKKyAgICAgICAgKiBieXRlY29kZS9DYWxsTGlu
a0luZm8uY3BwOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OnVubGluayk6CisgICAgICAg
ICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6ZGVidWdIb29rTmFtZSk6
CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cHJpbnRHZXRCeUlkT3ApOgorICAgICAgICAoSlND
OjpDb2RlQmxvY2s6OnByaW50R2V0QnlJZENhY2hlU3RhdHVzKToKKyAgICAgICAgKEpTQzo6Q29k
ZUJsb2NrOjp2aXNpdEFnZ3JlZ2F0ZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZmluYWxp
emVVbmNvbmRpdGlvbmFsbHkpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnVzZXNPcGNvZGUp
OgorICAgICAgICAqIGJ5dGVjb2RlL0RhdGFGb3JtYXQuaDoKKyAgICAgICAgKEpTQzo6bmVlZERh
dGFGb3JtYXRDb252ZXJzaW9uKToKKyAgICAgICAgKiBieXRlY29kZS9FeGl0S2luZC5jcHA6Cisg
ICAgICAgIChKU0M6OmV4aXRLaW5kVG9TdHJpbmcpOgorICAgICAgICAoSlNDOjpleGl0S2luZElz
Q291bnRhYmxlKToKKyAgICAgICAgKiBieXRlY29kZS9NZXRob2RPZkdldHRpbmdBVmFsdWVQcm9m
aWxlLmNwcDoKKyAgICAgICAgKEpTQzo6TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZTo6Z2V0
U3BlY0ZhaWxCdWNrZXQpOgorICAgICAgICAqIGJ5dGVjb2RlL09wY29kZS5oOgorICAgICAgICAo
SlNDOjpvcGNvZGVMZW5ndGgpOgorICAgICAgICAqIGJ5dGVjb2RlL1BvbHltb3JwaGljUHV0QnlJ
ZExpc3QuY3BwOgorICAgICAgICAoSlNDOjpQdXRCeUlkQWNjZXNzOjpmcm9tU3RydWN0dXJlU3R1
YkluZm8pOgorICAgICAgICAoSlNDOjpQdXRCeUlkQWNjZXNzOjp2aXNpdFdlYWspOgorICAgICAg
ICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0
dXJlU3R1YkluZm86OmRlcmVmKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpSZXNvbHZlUmVzdWx0OjpjaGVja1ZhbGlkaXR5KToK
KyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZXRMb2NhbFZhcik6CisgICAg
ICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpiZWdpblN3aXRjaCk6CisgICAgICAgICogYnl0
ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OkJpbmFyeU9wTm9kZTo6
ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6ZW1pdFJlYWRNb2RpZnlBc3NpZ25tZW50KToK
KyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
QWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSk6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RTdGF0
ZTo6bWVyZ2VTdGF0ZUF0VGFpbCk6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RTdGF0ZTo6
bWVyZ2VUb1N1Y2Nlc3NvcnMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6Om1ha2VTYWZlKToKKyAgICAgICAg
KEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RG
R0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNGR1NpbXBs
aWZpY2F0aW9uUGhhc2U6OmZpeFBvc3NpYmxlR2V0TG9jYWwpOgorICAgICAgICAoSlNDOjpERkc6
OkNGR1NpbXBsaWZpY2F0aW9uUGhhc2U6OmZpeFRhaWxPcGVyYW5kKToKKyAgICAgICAgKiBkZmcv
REZHQ1NFUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNTRVBoYXNlOjpzZXRMb2NhbFN0
b3JlRWxpbWluYXRpb24pOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OmNhbkhhbmRsZU9wY29kZXMpOgorICAgICAgICAqIGRmZy9ERkdDb21t
b24uaDoKKyAgICAgICAgKEpTQzo6REZHOjp1c2VLaW5kVG9TdHJpbmcpOgorICAgICAgICAqIGRm
Zy9ERkdEb3VibGVGb3JtYXRTdGF0ZS5oOgorICAgICAgICAoSlNDOjpERkc6Om1lcmdlRG91Ymxl
Rm9ybWF0U3RhdGVzKToKKyAgICAgICAgKEpTQzo6REZHOjpkb3VibGVGb3JtYXRTdGF0ZVRvU3Ry
aW5nKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6Rml4dXBQaGFzZTo6Ymxlc3NBcnJheU9wZXJhdGlvbik6CisgICAgICAgICogZGZnL0RGR0dy
YXBoLmg6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OmNsb2JiZXJzV29ybGQpOgorICAgICAg
ICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6dmFsdWVPZkpTQ29u
c3RhbnQpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnN1Y2Nlc3Nvcik6CisgICAgICAgICog
ZGZnL0RGR05vZGVGbGFncy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6bm9kZUZsYWdzQXNTdHJp
bmcpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAoSlNDOjpERkc6OmRl
ZmF1bHRGbGFncyk6CisgICAgICAgICogZGZnL0RGR1JlcGF0Y2guaDoKKyAgICAgICAgKEpTQzo6
REZHOjpkZmdSZXNldEdldEJ5SUQpOgorICAgICAgICAoSlNDOjpERkc6OmRmZ1Jlc2V0UHV0QnlJ
RCk6CisgICAgICAgICogZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6
OkRGRzo6U2xvd1BhdGhHZW5lcmF0b3I6OmNhbGwpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNh
dmVQbGFuRm9yR1BSKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c2lsZW50
U3BpbGwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRGaWxsKToK
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2hlY2tBcnJheSk6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNoZWNrR2VuZXJhdGVkVHlwZUZvclRvSW50MzIp
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVUb0ludDMy
KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25G
bG9hdFR5cGVkQXJyYXkpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpiaXRPcCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNoaWZ0T3ApOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjppbnRlZ2VyUmVzdWx0KToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmZpbGxJbnRlZ2VyKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Zmls
bERvdWJsZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxKU1ZhbHVl
KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludElu
dGVybmFsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0
ZURvdWJsZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxh
dGVDZWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0
ZUJvb2xlYW4pOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxJbnRlZ2VyKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6ZmlsbERvdWJsZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmZpbGxKU1ZhbHVlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Zmls
bFNwZWN1bGF0ZUludEludGVybmFsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6ZmlsbFNwZWN1bGF0ZURvdWJsZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmZpbGxTcGVjdWxhdGVDZWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6ZmlsbFNwZWN1bGF0ZUJvb2xlYW4pOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGluZ1Bo
YXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTdHJ1Y3R1cmVDaGVja0hvaXN0aW5nUGhhc2U6
OnJ1bik6CisgICAgICAgICogZGZnL0RGR1ZhbHVlU291cmNlLmg6CisgICAgICAgIChKU0M6OkRG
Rzo6VmFsdWVTb3VyY2U6OnZhbHVlUmVjb3ZlcnkpOgorICAgICAgICAqIGRmZy9ERkdWYXJpYWJs
ZUV2ZW50LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUV2ZW50OjpkdW1wKToKKyAg
ICAgICAgKiBkZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6VmFyaWFibGVFdmVudFN0cmVhbTo6cmVjb25zdHJ1Y3QpOgorICAgICAgICAqIGhlYXAvQmxv
Y2tBbGxvY2F0b3IuaDoKKyAgICAgICAgKEpTQzo6QmxvY2tBbGxvY2F0b3I6OnJlZ2lvblNldEZv
cik6CisgICAgICAgICogaGVhcC9HQ1RocmVhZC5jcHA6CisgICAgICAgIChKU0M6OkdDVGhyZWFk
OjpnY1RocmVhZE1haW4pOgorICAgICAgICAqIGhlYXAvTWFya2VkQmxvY2suY3BwOgorICAgICAg
ICAoSlNDOjpNYXJrZWRCbG9jazo6c3dlZXBIZWxwZXIpOgorICAgICAgICAqIGhlYXAvTWFya2Vk
QmxvY2suaDoKKyAgICAgICAgKEpTQzo6TWFya2VkQmxvY2s6OmlzTGl2ZSk6CisgICAgICAgICog
aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg6CisgICAgICAgIChKU0M6OkV4ZWNTdGF0ZTo6aW5saW5l
Q2FsbEZyYW1lKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAg
ICAgIChKU0M6OmdldENhbGxlckluZm8pOgorICAgICAgICAoSlNDOjpnZXRTdGFja0ZyYW1lQ29k
ZVR5cGUpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZSk6CisgICAgICAgICog
aml0L0V4ZWN1dGFibGVBbGxvY2F0b3JGaXhlZFZNUG9vbC5jcHA6CisgICAgICAgIChKU0M6OkZp
eGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvcjo6bm90aWZ5UGFnZUlzRnJlZSk6CisgICAgICAg
ICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFz
cyk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMpOgorICAgICAg
ICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlKToKKyAgICAgICAgKiBqaXQvSklUQXJpdGhtZXRp
Yy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfbW9kKToKKyAgICAgICAgKiBq
aXQvSklUQXJpdGhtZXRpYzMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0QmluYXJ5
RG91YmxlT3ApOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX21vZCk6CisgICAgICAg
ICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjppc0RpcmVj
dFB1dEJ5SWQpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6Omdl
dFBvbHltb3JwaGljQWNjZXNzU3RydWN0dXJlTGlzdFNsb3QpOgorICAgICAgICAoSlNDOjpERUZJ
TkVfU1RVQl9GVU5DVElPTik6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgor
ICAgICAgICAoSlNDOjpMTEludDo6aml0Q29tcGlsZUFuZFNldEhldXJpc3RpY3MpOgorICAgICAg
ICAqIHBhcnNlci9MZXhlci5jcHA6CisgICAgICAgIChKU0M6Ojo6bGV4KToKKyAgICAgICAgKiBw
YXJzZXIvTm9kZXMuaDoKKyAgICAgICAgKEpTQzo6RXhwcmVzc2lvbk5vZGU6OmVtaXRCeXRlY29k
ZUluQ29uZGl0aW9uQ29udGV4dCk6CisgICAgICAgICogcGFyc2VyL1BhcnNlci5oOgorICAgICAg
ICAoSlNDOjpQYXJzZXI6OmdldFRva2VuTmFtZSk6CisgICAgICAgIChKU0M6OlBhcnNlcjo6dXBk
YXRlRXJyb3JNZXNzYWdlU3BlY2lhbENhc2UpOgorICAgICAgICAqIHBhcnNlci9TeW50YXhDaGVj
a2VyLmg6CisgICAgICAgIChKU0M6OlN5bnRheENoZWNrZXI6Om9wZXJhdG9yU3RhY2tQb3ApOgor
ICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAgICAgKEpTQzo6QXJndW1lbnRz
Ojp0ZWFyT2ZmRm9ySW5saW5lQ2FsbEZyYW1lKToKKyAgICAgICAgKiBydW50aW1lL0RhdGVQcm90
b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpmb3JtYXRMb2NhbGVEYXRlKToKKyAgICAgICAgKiBy
dW50aW1lL0V4ZWN1dGFibGUuY3BwOgorICAgICAgICAoSlNDOjpzYW1wbGluZ0Rlc2NyaXB0aW9u
KToKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6U2NyaXB0
RXhlY3V0YWJsZTo6dW5saW5rQ2FsbHMpOgorICAgICAgICAqIHJ1bnRpbWUvSWRlbnRpZmllci5j
cHA6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5j
cHA6CisgICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb246OmdldENhbGxEYXRhKToKKyAgICAg
ICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpwdXNoKToK
KyAgICAgICAgKEpTQzo6SlNBcnJheTo6c29ydCk6CisgICAgICAgICogcnVudGltZS9KU0NlbGwu
Y3BwOgorICAgICAgICAoSlNDOjpKU0NlbGw6OmRlZmF1bHRWYWx1ZSk6CisgICAgICAgIChKU0M6
OkpTQ2VsbDo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6Z2V0
T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpjbGFzc05h
bWUpOgorICAgICAgICAoSlNDOjpKU0NlbGw6OmdldFByb3BlcnR5TmFtZXMpOgorICAgICAgICAo
SlNDOjpKU0NlbGw6OmN1c3RvbUhhc0luc3RhbmNlKToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpw
dXREaXJlY3RWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpkZWZpbmVPd25Qcm9wZXJ0
eSk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAg
ICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAgICAgICAoSlNDZWxsKToKKyAgICAgICAgKiBy
dW50aW1lL0pTTmFtZVNjb3BlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNOYW1lU2NvcGU6OnB1dCk6
CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1
dEJ5SW5kZXgpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6ZW5zdXJlQXJyYXlTdG9yYWdlU2xv
dyk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgpOgorICAg
ICAgICAoSlNDOjpKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6
OkpTT2JqZWN0OjpwdXRCeUluZGV4QmV5b25kVmVjdG9yTGVuZ3RoKToKKyAgICAgICAgKEpTQzo6
SlNPYmplY3Q6OnB1dERpcmVjdEluZGV4QmV5b25kVmVjdG9yTGVuZ3RoKToKKyAgICAgICAgKEpT
Qzo6SlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGlt
ZS9KU09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Y2FuR2V0SW5kZXhRdWlja2x5
KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldEluZGV4UXVpY2tseSk6CisgICAgICAgIChK
U0M6OkpTT2JqZWN0Ojp0cnlHZXRJbmRleFF1aWNrbHkpOgorICAgICAgICAoSlNDOjpKU09iamVj
dDo6Y2FuU2V0SW5kZXhRdWlja2x5KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmNhblNldElu
ZGV4UXVpY2tseUZvclB1dERpcmVjdCk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpzZXRJbmRl
eFF1aWNrbHkpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6aW5pdGlhbGl6ZUluZGV4KToKKyAg
ICAgICAgKEpTQzo6SlNPYmplY3Q6Omhhc1NwYXJzZU1hcCk6CisgICAgICAgIChKU0M6OkpTT2Jq
ZWN0OjppblNwYXJzZUluZGV4aW5nTW9kZSk6CisgICAgICAgICogcnVudGltZS9KU1Njb3BlLmNw
cDoKKyAgICAgICAgKEpTQzo6SlNTY29wZTo6aXNEeW5hbWljU2NvcGUpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNTeW1ib2xUYWJsZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTU3ltYm9sVGFi
bGVPYmplY3Q6OnB1dERpcmVjdFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTeW1ib2xU
YWJsZU9iamVjdC5oOgorICAgICAgICAoSlNTeW1ib2xUYWJsZU9iamVjdCk6CisgICAgICAgICog
cnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6OjpwYXJzZSk6CisgICAg
ICAgICogcnVudGltZS9SZWdFeHAuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHA6OmNvbXBpbGUp
OgorICAgICAgICAoSlNDOjpSZWdFeHA6OmNvbXBpbGVNYXRjaE9ubHkpOgorICAgICAgICAqIHJ1
bnRpbWUvU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlLmg6CisgICAgICAgIChKU0M6Om5ld0luZGV4
aW5nVHlwZSk6CisgICAgICAgICogdG9vbHMvQ29kZVByb2ZpbGUuY3BwOgorICAgICAgICAoSlND
OjpDb2RlUHJvZmlsZTo6c2FtcGxlKToKKyAgICAgICAgKiB5YXJyL1lhcnJDYW5vbmljYWxpemVV
Q1MyLmg6CisgICAgICAgIChKU0M6OllhcnI6OmdldENhbm9uaWNhbFBhaXIpOgorICAgICAgICAo
SlNDOjpZYXJyOjphcmVDYW5vbmljYWxseUVxdWl2YWxlbnQpOgorICAgICAgICAqIHlhcnIvWWFy
ckludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6WWFycjo6SW50ZXJwcmV0ZXI6Om1hdGNo
Q2hhcmFjdGVyQ2xhc3MpOgorICAgICAgICAoSlNDOjpZYXJyOjpJbnRlcnByZXRlcjo6bWF0Y2hC
YWNrUmVmZXJlbmNlKToKKyAgICAgICAgKEpTQzo6WWFycjo6SW50ZXJwcmV0ZXI6OmJhY2t0cmFj
a1BhcmVudGhlc2VzVGVybWluYWxFbmQpOgorICAgICAgICAoSlNDOjpZYXJyOjpJbnRlcnByZXRl
cjo6bWF0Y2hQYXJlbnRoZXNlcyk6CisgICAgICAgIChKU0M6OllhcnI6OkludGVycHJldGVyOjpi
YWNrdHJhY2tQYXJlbnRoZXNlcyk6CisgICAgICAgIChKU0M6OllhcnI6OkludGVycHJldGVyOjpt
YXRjaERpc2p1bmN0aW9uKToKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQuY3BwOgorICAgICAgICAo
SlNDOjpZYXJyOjpZYXJyR2VuZXJhdG9yOjpnZW5lcmF0ZVRlcm0pOgorICAgICAgICAoSlNDOjpZ
YXJyOjpZYXJyR2VuZXJhdG9yOjpiYWNrdHJhY2tUZXJtKToKKyAgICAgICAgKiB5YXJyL1lhcnJQ
YXJzZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjpDaGFyYWN0ZXJDbGFzc1BhcnNl
ckRlbGVnYXRlOjphc3NlcnRpb25Xb3JkQm91bmRhcnkpOgorICAgICAgICAoSlNDOjpZYXJyOjpQ
YXJzZXI6OkNoYXJhY3RlckNsYXNzUGFyc2VyRGVsZWdhdGU6OmF0b21CYWNrUmVmZXJlbmNlKToK
KyAgICAgICAgKiB5YXJyL1lhcnJQYXR0ZXJuLmNwcDoKKyAgICAgICAgKEpTQzo6WWFycjo6WWFy
clBhdHRlcm5Db25zdHJ1Y3Rvcjo6YXRvbUNoYXJhY3RlckNsYXNzQnVpbHRJbik6CisKKzIwMTMt
MDEtMjMgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKwogICAgICAgICBSZXBsYWNl
IG51bWVyb3VzIG1hbnVhbCBDUkFTSCdzIGluIEpTQyB3aXRoIFJFTEVBU0VfQVNTRVJUCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc3MjYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jsb2NrQWRhcHRvci5tbSBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCbG9ja0FkYXB0b3IubW0KaW5kZXggNmIwNDg2ODMz
Y2ZiYzRmMmE3ZGZiZjVlZGEwNGM3YmI4MWEzMjgxMC4uZGE5ZDVmMTZlMDhiY2EwMzM5YTNhZGI4
OTU3YmFjNzJhZWYzMTA4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0Jsb2NrQWRhcHRvci5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQmxvY2tB
ZGFwdG9yLm1tCkBAIC0xMzMsNyArMTMzLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFJlc3Vs
dFR5cGUgdHlwZVZvaWQoKQogICAgIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
T2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tP
YmplY3RGdW5jdGlvbnMuaAppbmRleCBmZmU5YzA2MzllYTliYjNhZGZjMTM2NDM0NDZmMWQ4MDdm
MWExOGUwLi5hYjQwNjdhOTk2MzllYzM0NmEyZmI0N2I4NGQ2YjcyNzhmMzBmMTE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlv
bnMuaApAQCAtMzg0LDcgKzM4NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8
UGFyZW50Pjo6Y29uc3RydWN0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgfQogICAgIH0KICAg
ICAKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gZ2V0Q29uc3RydWN0RGF0YSBzaG91bGQg
cHJldmVudCB1cyBmcm9tIHJlYWNoaW5nIGhlcmUKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOyAvLyBnZXRDb25zdHJ1Y3REYXRhIHNob3VsZCBwcmV2ZW50IHVzIGZyb20gcmVhY2hp
bmcgaGVyZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKIH0KIApAQCAt
NDUwLDcgKzQ1MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6
Y2FsbChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IC8vIGdldENhbGxEYXRhIHNob3VsZCBwcmV2ZW50IHVzIGZyb20gcmVh
Y2hpbmcgaGVyZQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIGdldENhbGxE
YXRhIHNob3VsZCBwcmV2ZW50IHVzIGZyb20gcmVhY2hpbmcgaGVyZQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
U2NyaXB0UmVmLmNwcAppbmRleCAxZDY1YzMzNTc3NzRjODNjOGQ5YjZkZGE1NTRkMzEyMWFhYmY4
NDhjLi41ZmQyMzA2ZTE5Yjg4OTIzZDdiNWI5ZjNmNDc0MmM2Y2Y5OWE0NGFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIEpT
VmFsdWVSZWYgSlNTY3JpcHRFdmFsdWF0ZShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNTY3JpcHRS
ZWYgc2NyaXB0LCBKU1ZhbHVlUmVmCiAgICAgRXhlY1N0YXRlKiBleGVjID0gdG9KUyhjb250ZXh0
KTsKICAgICBBUElFbnRyeVNoaW0gZW50cnlTaGltKGV4ZWMpOwogICAgIGlmIChzY3JpcHQtPmds
b2JhbERhdGEoKSAhPSAmZXhlYy0+Z2xvYmFsRGF0YSgpKSB7Ci0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CiAgICAgSlNWYWx1ZSBpbnRlcm5hbEV4Y2VwdGlvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0g
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tCmluZGV4
IGU1ODQzODJkZTcwMDI0MTEyYWU4NTU3OTE0NjM5NGFiMzNhYmNiMjIuLmFiZjRiN2Q2ODQ3OTZl
OWE0ODg0NDVlNzUzNzIxZTdiZTllMDVhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5tbQpAQCAtMjQyLDcgKzI0Miw3IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBSZXN1bHRUeXBlIHR5cGVWb2lkKCkKICAgICB7Ci0gICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAppbmRleCBiOTNlYzZlNjNmNWZhODU0NTk0NmQw
YjI5ZDQ5OWJiNDkyN2QzNGFiLi5iYjhmMTlmMzg1MWZkM2M0ZWQ4Y2Y5YjI0MmUyZDc3YWM1ODBm
YWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNz
ZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2Vt
Ymxlci5oCkBAIC0yMDE5LDcgKzIwMTksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBsaW5rQlgo
cmVpbnRlcnByZXRfY2FzdF9wdHI8dWludDE2X3QqPihmcm9tKSwgdG8pOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgIH0KQEAgLTIxNjMsNyArMjE2Myw3IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIGNhY2hlRmx1c2gocHRyLCBzaXplb2YodWludDE2X3QpICogMik7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgfQogICAgIH0KIApAQCAtMjE4Myw3ICsyMTgzLDcgQEAgcHVibGljOgogICAgICAgICBj
YXNlIE9QX0FERF9pbW1fVDM6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoK
LSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCmluZGV4IDA5MDljNmM0NDI1
ZjhkYzEwNjgyM2E2Y2Y1MTFkYWY2MzQzOTQ4ZTguLmIxOWU5OTEwNTk2MWI5ZjQ5OWI2ZmUwNzI4
MzA0MWM3OWI1MjQ4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyLmgKQEAgLTEyMSw3ICsxMjEsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNh
c2UgRG91YmxlTGVzc1RoYW5PckVxdWFsT3JVbm9yZGVyZWQ6CiAgICAgICAgICAgICByZXR1cm4g
RG91YmxlR3JlYXRlclRoYW47CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgICAgICByZXR1cm4gRG91YmxlRXF1YWw7IC8vIG1ha2UgY29tcGlsZXIgaGFwcHkK
ICAgICAgICAgfQogICAgIH0KQEAgLTE0NSw3ICsxNDUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNh
c2UgTm9uWmVybzoKICAgICAgICAgICAgIHJldHVybiBaZXJvOwogICAgICAgICBkZWZhdWx0Ogot
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuIFplcm87IC8vIE1ha2UgY29t
cGlsZXIgaGFwcHkgZm9yIHJlbGVhc2UgYnVpbGRzLgogICAgICAgICB9CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5oCmlu
ZGV4IDUyNzEyNmI0Mzg3N2RlMGU4MWRhY2U0OGNhNjljODQ0ODIyMjk2MzkuLmViZGJjZWFlMTA0
ZmY5M2YwMmZhYWNjNTliNGM3OWJiN2ZmZjJjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgKQEAgLTM0Miw3ICszNDIsNyBA
QCBwdWJsaWM6CiAjZWxzZQogICAgICAgICBVTlVTRURfUEFSQU0oc3JjKTsKICAgICAgICAgVU5V
U0VEX1BBUkFNKGRlc3QpOwotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICNlbmRpZgogICAgIH0KIApAQCAtMTEwNCw3
ICsxMTA0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaXZEb3VibGUoQWRkcmVzcyBzcmMsIEZQ
UmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8v
IFVudGVzdGVkCisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIFVudGVz
dGVkCiAgICAgICAgIGxvYWREb3VibGUoc3JjLCBBUk1SZWdpc3RlcnM6OlNEMCk7CiAgICAgICAg
IGRpdkRvdWJsZShBUk1SZWdpc3RlcnM6OlNEMCwgZGVzdCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXgg
MWIxYTEyNzkyM2MzNzIyZDAyYjZhY2M5YjlhZTg1ZDA1ZmM0ZThiNC4uNDNhZDQzNDAwMWZlZTZl
Y2MxYTM3M2Q2MGE5NmRlMjc4MWY1NjdlYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCkBAIC01MTcsNyArNTE3LDcgQEAg
cHVibGljOgogICAgIAogICAgIHZvaWQgYWJzRG91YmxlKEZQUmVnaXN0ZXJJRCwgRlBSZWdpc3Rl
cklEKQogICAgIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogCiAgICAgQ29udmVydGlibGVMb2FkTGFi
ZWwgY29udmVydGlibGVMb2FkUHRyKEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQpA
QCAtMjI1MiwxMiArMjI1MiwxMiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCByZXBsYWNl
V2l0aEp1bXAoQ29kZUxvY2F0aW9uTGFiZWwgaW5zdHJ1Y3Rpb25TdGFydCwgQ29kZUxvY2F0aW9u
TGFiZWwgZGVzdGluYXRpb24pCiAgICAgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAgICAgCiAgICAg
c3RhdGljIHB0cmRpZmZfdCBtYXhKdW1wUmVwbGFjZW1lbnRTaXplKCkKICAgICB7Ci0gICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQuaAppbmRleCBlZjIxMGY4MGNiOTBi
ZTI0Y2FiOTYyZGY2ZDdmZTM2Mzk4ZTlmNDM1Li41NmZiNzRkNDViYWYxZjE3NTY4MzNiMTdkMjc5
MTg2ZDlmZWE3ZTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyU0g0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclNINC5oCkBAIC0xNTMzLDcgKzE1MzMsNyBAQCB2b2lkIG9yMzIoVHJ1
c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKICAgICAKICAg
ICB2b2lkIGFic0RvdWJsZShGUFJlZ2lzdGVySUQsIEZQUmVnaXN0ZXJJRCkKICAgICB7Ci0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIH0KIAogICAgIEp1bXAgYnJhbmNoVGVzdDgoUmVzdWx0Q29uZGl0aW9uIGNv
bmQsIEFkZHJlc3MgYWRkcmVzcywgVHJ1c3RlZEltbTMyIG1hc2sgPSBUcnVzdGVkSW1tMzIoLTEp
KQpAQCAtMjIzNSwxMiArMjIzNSwxMiBAQCB2b2lkIG9yMzIoVHJ1c3RlZEltbTMyIGltbSwgUmVn
aXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKIAogICAgIHN0YXRpYyB2b2lkIHJlcGxhY2VX
aXRoSnVtcChDb2RlTG9jYXRpb25MYWJlbCBpbnN0cnVjdGlvblN0YXJ0LCBDb2RlTG9jYXRpb25M
YWJlbCBkZXN0aW5hdGlvbikKICAgICB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KICAgICAKICAgICBz
dGF0aWMgcHRyZGlmZl90IG1heEp1bXBSZXBsYWNlbWVudFNpemUoKQogICAgIHsKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9TSDRBc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvU0g0QXNzZW1ibGVyLmgKaW5kZXggMzlmNTU4NWJlMWUzNmY2MDhkNWU0YThm
YmY2YzBkNjUyZjFhODc5Mi4uYjdhMTY2ZWE5OTQ5MzIxMDFkOTE0MGJiNDlmNmFlMjgwMzhiZGYy
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9TSDRBc3NlbWJs
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1NINEFzc2VtYmxlci5o
CkBAIC01MzQsNyArNTM0LDcgQEAgcHVibGljOgogICAgICAgICAgICAgb25lU2hvcnRPcChnZXRP
cGNvZGVHcm91cDIoU0hMTDE2X09QQ09ERSwgZHN0KSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogICAgIH0KIApA
QCAtNTg0LDcgKzU4NCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG9uZVNob3J0T3AoZ2V0T3Bj
b2RlR3JvdXAyKFNITFIxNl9PUENPREUsIGRzdCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICB9CiAKQEAg
LTY1NCw3ICs2NTQsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBvbmVTaG9ydE9wKGdldE9wY29k
ZUdyb3VwMShDTVBHVF9PUENPREUsIGxlZnQsIHJpZ2h0KSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogICAgIH0K
IApAQCAtNzMxLDcgKzczMSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG9uZVNob3J0T3AoZ2V0
T3Bjb2RlR3JvdXA1KEJGX09QQ09ERSwgbGFiZWwpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CiAgICAgfQogCkBA
IC03NTEsNyArNzUxLDcgQEAgcHVibGljOgogICAgICAgICAgICAgb25lU2hvcnRPcChnZXRPcGNv
ZGVHcm91cDIoQlNSRl9PUENPREUsIHJlZykpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCmluZGV4IDI1ZmY2
ZjBhNTBmZTRhZjE0M2MzNWUzNmY0ZjRjYzc5MzAyYjM1OGEuLjA5MmU3NzVhYjVhMTU2MGNkNjc1
Y2I5YWE3YWE4NjkwMWUyZjlkN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9YODZBc3NlbWJsZXIuaApAQCAtMTk1Miw3ICsxOTUyLDcgQEAgcHVibGljOgogICAgICAg
ICAgICAgKnB0ciA9IE9QX01PVl9HdkV2OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCkBAIC0x
OTcwLDcgKzE5NzAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgT1BfTEVBOgogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IH0KICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ2FsbExpbmtJbmZvLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxs
TGlua0luZm8uY3BwCmluZGV4IGZlOGFhODIzMWZlOGZmN2Q2OTc2ZDQ3NGVjY2ZlMThmZjg2OWY1
YWUuLmE2Zjg4NDc0NGFkODYwMjIzOWI4YzExNzBmYzYxNTc4MDJkYmI1ZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCkBAIC00Miw3ICs0
Miw3IEBAIHZvaWQgQ2FsbExpbmtJbmZvOjp1bmxpbmsoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBSZXBhdGNoQnVmZmVyJiByZXBhdGNoQnVmZmVyCiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAg
ICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxSZXR1cm5Mb2NhdGlvbiwgKGNhbGxUeXBlID09
IENvbnN0cnVjdCA/IGdsb2JhbERhdGEuZ2V0Q1RJU3R1YihERkc6OmxpbmtDb25zdHJ1Y3RUaHVu
a0dlbmVyYXRvcikgOiBnbG9iYWxEYXRhLmdldENUSVN0dWIoREZHOjpsaW5rQ2FsbFRodW5rR2Vu
ZXJhdG9yKSkuY29kZSgpKTsKICNlbHNlCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogI2VuZGlmCiAgICAgfSBlbHNl
CiAgICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxSZXR1cm5Mb2NhdGlvbiwgY2FsbFR5
cGUgPT0gQ29uc3RydWN0ID8gZ2xvYmFsRGF0YS5nZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RHZW5l
cmF0b3IpLmNvZGUoKSA6IGdsb2JhbERhdGEuZ2V0Q1RJU3R1YihsaW5rQ2FsbEdlbmVyYXRvciku
Y29kZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAK
aW5kZXggMTEwMmE1YmFlOTVkYmFlODAzOGY0N2E0MDI1OTVlYTE2ODg0NGEwOS4uY2ZlNjJhOGQ0
NGUzNmMxNjE0MWI0N2M2YTVjODNiYWM5NjcxYjYzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTIzMSw3ICsyMzEsNyBAQCBORVZFUl9JTkxJ
TkUgc3RhdGljIGNvbnN0IGNoYXIqIGRlYnVnSG9va05hbWUoaW50IGRlYnVnSG9va0lEKQogICAg
ICAgICAgICAgcmV0dXJuICJkaWRSZWFjaEJyZWFrcG9pbnQiOwogICAgIH0KIAotICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
cmV0dXJuICIiOwogfQogCkBAIC0zMDUsNyArMzA1LDcgQEAgdm9pZCBDb2RlQmxvY2s6OnByaW50
R2V0QnlJZE9wKFByaW50U3RyZWFtJiBvdXQsIEV4ZWNTdGF0ZSogZXhlYywgaW50IGxvY2F0aW9u
LAogICAgICAgICBvcCA9ICJzdHJpbmdfbGVuZ3RoIjsKICAgICAgICAgYnJlYWs7CiAgICAgZGVm
YXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIG9wID0gMDsKICAgICB9CiAgICAgaW50IHIwID0g
KCsraXQpLT51Lm9wZXJhbmQ7CkBAIC00MTUsNyArNDE1LDcgQEAgdm9pZCBDb2RlQmxvY2s6OnBy
aW50R2V0QnlJZENhY2hlU3RhdHVzKFByaW50U3RyZWFtJiBvdXQsIEV4ZWNTdGF0ZSogZXhlYywg
aW50IGwKICAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCJzdHJpbmdfbGVuZ3RoIik7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAKQEAgLTIxMTEsNyArMjExMSw3IEBAIHZvaWQgQ29kZUJsb2NrOjp2aXNpdEFnZ3Jl
Z2F0ZShTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICAgICAgdmlzaXRvci5hZGRXZWFrUmVmZXJl
bmNlSGFydmVzdGVyKHRoaXMpOwogICAgIAogI2Vsc2UgLy8gRU5BQkxFKERGR19KSVQpCi0gICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKIH0KIApAQCAtMjIyNyw3ICsyMjI3LDcgQEAgdm9p
ZCBDb2RlQmxvY2s6OmZpbmFsaXplVW5jb25kaXRpb25hbGx5KCkKICAgICAgICAgICAgIGNhc2Ug
b3BfZ2V0X2FycmF5X2xlbmd0aDoKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogCkBAIC0zMzQ3LDcgKzMzNDcsNyBAQCBib29sIENvZGVCbG9jazo6dXNlc09wY29k
ZShPcGNvZGVJRCBvcGNvZGVJRCkKICAgICAgICAgICAgIEZPUl9FQUNIX09QQ09ERV9JRChERUZJ
TkVfT1ApCiAjdW5kZWYgREVGSU5FX09QCiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EYXRhRm9ybWF0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvRGF0YUZvcm1hdC5oCmluZGV4IDUxYzhhZmJmNjI3MmMzNDI5
ZmVjZDcyYmYyYTc1NzgzM2Y2NmRhZmQuLmZiNjQ2YzYzMjBjNGU1ODE5YTE5ZTliZDUzMjY1NGI2
OGRiZmY1M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EYXRh
Rm9ybWF0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RhdGFGb3JtYXQu
aApAQCAtMTE1LDE0ICsxMTUsMTQgQEAgaW5saW5lIGJvb2wgbmVlZERhdGFGb3JtYXRDb252ZXJz
aW9uKERhdGFGb3JtYXQgZnJvbSwgRGF0YUZvcm1hdCB0bykKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIC8vIFRoaXMgY2FwdHVyZXMgRGF0
YUZvcm1hdEJvb2xlYW4sIHdoaWNoIGlzIGN1cnJlbnRseSB1bnVzZWQuCi0gICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIH0KICAgICBjYXNlIERhdGFGb3JtYXRTdG9yYWdlOgogICAgICAgICBB
U1NFUlQodG8gPT0gRGF0YUZvcm1hdFN0b3JhZ2UpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgLy8gVGhpcyBjYXB0dXJlcyBEYXRhRm9ybWF0Qm9vbGVhbiwg
d2hpY2ggaXMgY3VycmVudGx5IHVudXNlZC4KLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogICAgIHJldHVy
biB0cnVlOwogfQpAQCAtMTQ5LDcgKzE0OSw3IEBAIGlubGluZSBib29sIG5lZWREYXRhRm9ybWF0
Q29udmVyc2lvbihEYXRhRm9ybWF0IGZyb20sIERhdGFGb3JtYXQgdG8pCiAgICAgICAgIEFTU0VS
VCh0byA9PSBEYXRhRm9ybWF0U3RvcmFnZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBk
ZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcAppbmRleCA2M2NjZGEzNWUxZDQ5
OTU5ODg3YWEzN2RlYjNhYWE5ZDBhMjhmYjBiLi5mYWE2MzQ4OTIwNWFiMTM4ZTE2NjQ2MjAwNzNl
NTU2ZDAxZTllYzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
RXhpdEtpbmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2lu
ZC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgY29uc3QgY2hhciogZXhpdEtpbmRUb1N0cmluZyhFeGl0
S2luZCBraW5kKQogICAgIGNhc2UgVW5jb3VudGFibGVXYXRjaHBvaW50OgogICAgICAgICByZXR1
cm4gIlVuY291bnRhYmxlV2F0Y2hwb2ludCI7CiAgICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgIHJldHVybiAiVW5rbm93biI7CiAgICAgfQogfQpAQCAtNzgsNyArNzgsNyBAQCBib29s
IGV4aXRLaW5kSXNDb3VudGFibGUoRXhpdEtpbmQga2luZCkKIHsKICAgICBzd2l0Y2ggKGtpbmQp
IHsKICAgICBjYXNlIEV4aXRLaW5kVW5zZXQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIGNhc2UgQmFkVHlw
ZToKICAgICBjYXNlIFVuY291bnRhYmxlOgogICAgIGNhc2UgVW5jb3VudGFibGVXYXRjaHBvaW50
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZE9mR2V0
dGluZ0FWYWx1ZVByb2ZpbGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01l
dGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCmluZGV4IDg1N2VkOWM4NzJmNTlhZGZiMmFi
NTcyYWQzMWJlMDdmMGMwODJkYjguLmEwZjMwMWEwYzNjODVkZWFlNzhjMDIzOGEwMzIyNmI4YmNl
MzM3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAKQEAgLTU4LDcgKzU4LDcgQEAg
RW5jb2RlZEpTVmFsdWUqIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGU6OmdldFNwZWNGYWls
QnVja2V0KHVuc2lnbmVkIGluZGV4KQogICAgICAgICAgICAgICAgIHUubGF6eU9wZXJhbmQuYnl0
ZWNvZGVPZmZzZXQsIHUubGF6eU9wZXJhbmQub3BlcmFuZCkpLT5zcGVjRmFpbEJ1Y2tldChpbmRl
eCk7CiAgICAgICAgIAogICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4g
MDsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
T3Bjb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKaW5kZXgg
NWZlMjhiYzA5NzgzYmEwM2I4YmMwM2MwMGI3NDNmOWFjODY2N2I3MC4uNTQ4Zjk1YzkzOTFmN2Vj
MDlhMGU3MjhkODI0ZmJkMzRjYzVjNjRlMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL09wY29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9PcGNvZGUuaApAQCAtMjkwLDcgKzI5MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAg
ICAgIEZPUl9FQUNIX09QQ09ERV9JRChPUENPREVfSURfTEVOR1RIUykKICN1bmRlZiBPUENPREVf
SURfTEVOR1RIUwogICAgICAgICB9Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gMDsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9y
cGhpY1B1dEJ5SWRMaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5
bW9ycGhpY1B1dEJ5SWRMaXN0LmNwcAppbmRleCAzYTg3NTY3ZDg5ODRiYTJlOGZlYTEzMTIxNjBm
MmFhMDM5NDJiYjAzLi42YTZlYzgxNDE1YTM1NzgzOTM4ZjFmZDVhMzRkMmU2ZjVjZDI5YTJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNQdXRC
eUlkTGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3Jw
aGljUHV0QnlJZExpc3QuY3BwCkBAIC01NSw3ICs1NSw3IEBAIFB1dEJ5SWRBY2Nlc3MgUHV0QnlJ
ZEFjY2Vzczo6ZnJvbVN0cnVjdHVyZVN0dWJJbmZvKAogICAgICAgICBicmVhazsKICAgICAgICAg
CiAgICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogICAgIAogICAgIHJldHVybiByZXN1
bHQ7CkBAIC03Nyw3ICs3Nyw3IEBAIGJvb2wgUHV0QnlJZEFjY2Vzczo6dmlzaXRXZWFrKCkgY29u
c3QKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVs
dDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgcmV0dXJu
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0
dXJlU3R1YkluZm8uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVy
ZVN0dWJJbmZvLmNwcAppbmRleCA5MjM4ZmVmZGMzODY1NjVkNzViNmEwZjQwZThlZjk4MDM1ODI1
MzgxLi43MGNmMmZjY2IwZmI4ZTM1ZTZmNzg1ODljNTAyMDAwOWQ2ZmRjOTJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAK
QEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBTdHJ1Y3R1cmVTdHViSW5mbzo6ZGVyZWYoKQogICAgICAg
ICAvLyBUaGVzZSBpbnN0cnVjdGlvbnMgZG9uJ3QgaGF2ZSB0byByZWxlYXNlIGFueSBhbGxvY2F0
ZWQgbWVtb3J5CiAgICAgICAgIHJldHVybjsKICAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5jcHAKaW5kZXggODE0NTZmYzZlMWVkODVlOGFmNTM4N2VmYTEz
MmUxOGRkMzRhYjk1Yi4uYzM4N2NmZTBlNzkzNmQ5ZDdkN2U1NWJiYTY4ZWI4NzQzYzliMThmYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHAKQEAgLTE0Myw3ICsxNDMsNyBAQCB2b2lkIFJlc29sdmVSZXN1bHQ6
OmNoZWNrVmFsaWRpdHkoKQogICAgICAgICBBU1NFUlQoIW1fbG9jYWwpOwogICAgICAgICByZXR1
cm47CiAgICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQogI2VuZGlmCkBAIC0xNDEy
LDcgKzE0MTIsNyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdldExvY2Fs
VmFyKFJlZ2lzdGVySUQqIGRzdCwgY29uc3QgUmVzb2x2ZVJlcwogICAgICAgICByZXR1cm4gbW92
ZVRvRGVzdGluYXRpb25JZk5lZWRlZChkc3QsIHJlc29sdmVSZXN1bHQubG9jYWwoKSk7CiAKICAg
ICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogfQpAQCAt
MjM5Nyw3ICsyMzk3LDcgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6YmVnaW5Td2l0Y2goUmVn
aXN0ZXJJRCogc2NydXRpbmVlUmVnaXN0ZXIsIFN3aXRjaEluZm86OlMKICAgICAgICAgICAgIGVt
aXRPcGNvZGUob3Bfc3dpdGNoX3N0cmluZyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKICAgICBpbnN0cnVjdGlvbnMo
KS5hcHBlbmQoMCk7IC8vIHBsYWNlIGhvbGRlciBmb3IgdGFibGUgaW5kZXgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCBk
NGJiNWIyZmNkZmVjMmNkYTc4YTVhNTE5MDc0YjVmNWExN2VlN2ZjLi5hZTRhNTcwOWRhYTM4NzEx
ZThmOTYxMjc0MmY2MWEzMTNhZDRhNGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC0xMDUwLDcgKzEwNTAsNyBAQCBS
ZWdpc3RlcklEKiBCaW5hcnlPcE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYg
Z2VuZXJhdG9yLCBSZWdpc3RlcklEKgogICAgICAgICBlbHNlIGlmIChvcGNvZGVJRCA9PSBvcF9u
c3RyaWN0ZXEpCiAgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdEVxdWFsaXR5T3Aob3Bfc3RyaWN0
ZXEsIGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKHRtcC5nZXQoKSwgc3JjMS5nZXQoKSksIHNy
YzEuZ2V0KCksIHNyYzIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdFVuYXJ5T3Aob3Bfbm90LCBnZW5lcmF0b3IuZmluYWxE
ZXN0aW5hdGlvbihkc3QsIHRtcC5nZXQoKSksIHRtcC5nZXQoKSk7CiAgICAgfQogICAgIHJldHVy
biBnZW5lcmF0b3IuZW1pdEJpbmFyeU9wKG9wY29kZUlELCBnZW5lcmF0b3IuZmluYWxEZXN0aW5h
dGlvbihkc3QsIHNyYzEuZ2V0KCkpLCBzcmMxLmdldCgpLCBzcmMyLCBPcGVyYW5kVHlwZXMobGVm
dC0+cmVzdWx0RGVzY3JpcHRvcigpLCByaWdodC0+cmVzdWx0RGVzY3JpcHRvcigpKSk7CkBAIC0x
MjMxLDcgKzEyMzEsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBSZWdpc3RlcklEKiBlbWl0UmVh
ZE1vZGlmeUFzc2lnbm1lbnQoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbgogICAgICAgICAgICAgb3Bj
b2RlSUQgPSBvcF9tb2Q7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybiBkc3Q7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcAppbmRleCAxMWI1
NzgwZjc2N2I5OTI1MmIxZmFkMDdjOWIwYTI2YmYwOTc3OWVkLi40MDgzMzc2NjhkNjJlZjI5MmM0
MDBhMDczZGJlMmQzNjNjNTRhNzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RTdGF0ZS5jcHAKQEAgLTM1OCw3ICszNTgsNyBAQCBib29sIEFic3RyYWN0U3Rh
dGU6OmV4ZWN1dGUodW5zaWduZWQgaW5kZXhJbkJsb2NrKQogICAgICAgICAgICAgICAgIGNvbnN0
YW50V2FzU2V0ID0gdHJ5U2V0Q29uc3RhbnQobm9kZUluZGV4LCBKU1ZhbHVlKHN0YXRpY19jYXN0
PHVpbnQzMl90PihhKSA+PiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oYikpKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgICAgICAgICBjb25zdGFudFdhc1NldCA9IGZhbHNlOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgaWYgKGNvbnN0YW50V2FzU2V0KSB7CkBAIC01ODMsNyArNTgzLDcg
QEAgYm9vbCBBYnN0cmFjdFN0YXRlOjpleGVjdXRlKHVuc2lnbmVkIGluZGV4SW5CbG9jaykKICAg
ICAgICAgICAgICAgICBjb25zdGFudFdhc1NldCA9IHRyeVNldENvbnN0YW50KG5vZGVJbmRleCwg
SlNWYWx1ZShmbW9kKGEsIGIpKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAgICAg
Y29uc3RhbnRXYXNTZXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KQEAgLTgwNSw3ICs4MDUsNyBAQCBib29sIEFic3RyYWN0U3RhdGU6OmV4ZWN1dGUodW5z
aWduZWQgaW5kZXhJbkJsb2NrKQogICAgICAgICAgICAgICAgIGNvbnN0YW50V2FzU2V0ID0gdHJ5
U2V0Q29uc3RhbnQobm9kZUluZGV4LCBqc0Jvb2xlYW4oYSA9PSBiKSk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgICAgICAgICAgY29uc3RhbnRXYXNTZXQgPSBmYWxzZTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTk1Niw3ICs5NTYsNyBAQCBib29sIEFic3Ry
YWN0U3RhdGU6OmV4ZWN1dGUodW5zaWduZWQgaW5kZXhJbkJsb2NrKQogICAgICAgICBjYXNlIEFy
cmF5OjpTZWxlY3RVc2luZ1ByZWRpY3Rpb25zOgogICAgICAgICBjYXNlIEFycmF5OjpVbnByb2Zp
bGVkOgogICAgICAgICBjYXNlIEFycmF5OjpVbmRlY2lkZWQ6Ci0gICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcnJheTo6Rm9yY2VFeGl0OgogICAg
ICAgICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7CkBAIC0xMDM5LDcgKzEwMzksNyBAQCBib29sIEFi
c3RyYWN0U3RhdGU6OmV4ZWN1dGUodW5zaWduZWQgaW5kZXhJbkJsb2NrKQogICAgICAgICAgICAg
Zm9yTm9kZShub2RlSW5kZXgpLnNldChTcGVjRG91YmxlKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CkBAIC0xNjMxLDcgKzE2MzEsNyBAQCBib29sIEFi
c3RyYWN0U3RhdGU6OmV4ZWN1dGUodW5zaWduZWQgaW5kZXhJbkJsb2NrKQogICAgICAgICAgICAg
Zm9yTm9kZShub2RlLmNoaWxkMSgpKS5maWx0ZXIoU3BlY0Zsb2F0NjRBcnJheSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGZvck5vZGUobm9kZS5jaGlsZDEoKSku
ZmlsdGVyQXJyYXlNb2Rlcyhub2RlLmFycmF5TW9kZSgpLmFycmF5TW9kZXNUaGF0UGFzc0ZpbHRl
cmluZygpKTsKQEAgLTE4MDUsNyArMTgwNSw3IEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0
ZSh1bnNpZ25lZCBpbmRleEluQmxvY2spCiAgICAgICAgIGJyZWFrOwogICAgICAgICAKICAgICBj
YXNlIExhc3ROb2RlVHlwZToKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICAKQEAgLTE5MzMsNyArMTkzMyw3IEBAIGlubGluZSBib29sIEFic3RyYWN0U3RhdGU6Om1lcmdl
U3RhdGVBdFRhaWwoQWJzdHJhY3RWYWx1ZSYgZGVzdGluYXRpb24sIEFic3RyYWN0CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KQEAgLTIwMjEsNyArMjAy
MSw3IEBAIGlubGluZSBib29sIEFic3RyYWN0U3RhdGU6Om1lcmdlVG9TdWNjZXNzb3JzKAogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAogICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCAzZTMxYzNkMWZjMzAzNzg2MjQ0ZGQ0
MWU5OTY1NzJmNmJjN2E4NWRkLi45OWNkNjY1OTZiMzc1YjZkOGEyNDJkMTRhYWEwOGU3MzIxN2Qz
MjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcApAQCAtMTAwMSw3ICsxMDAxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAKQEAgLTMyMzIsNyArMzIzMiw3IEBA
IGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAg
IGRlZmF1bHQ6CiAgICAgICAgICAgICAvLyBQYXJzZSBmYWlsZWQhIFRoaXMgc2hvdWxkIG5vdCBo
YXBwZW4gYmVjYXVzZSB0aGUgY2FwYWJpbGl0aWVzIGNoZWNrZXIKICAgICAgICAgICAgIC8vIHNo
b3VsZCBoYXZlIGNhdWdodCBpdC4KLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwCmluZGV4IDE3N2ZiMjJl
YjI1NTE4NGRkNmZjNzAwMmRjMTY4MzJlMGVmYzAwZjUuLjU4OGRkZWE4YmM3NjY3Y2FiYjcxYTRl
ZmY1YWIxMzkzMjdjNDI5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcApAQCAtMzQ3LDcgKzM0Nyw3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0Ogot
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9
CkBAIC01NDksNyArNTQ5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgICAgICAgICAgCiAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICB9CiAg
ICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NTRVBoYXNlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwCmluZGV4IGFmYTVh
MTRlOTJmY2E3ZTZkYWVmMmE5Y2Y0MDg1ZGRmOGVhZjZiOTMuLjgzYTFmMmUwZjZhZmYyZjk4OWFj
MWY1ZDA0YmUyMThhODI5YThiZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ1NFUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NF
UGhhc2UuY3BwCkBAIC05ODUsNyArOTg1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJlc3Vs
dC5tYXlFeGl0IHw9IG5vZGUuY2FuRXhpdCgpOwogICAgICAgICAgICAgcmVzdWx0Lm1heUNsb2Ji
ZXJXb3JsZCB8PSBtX2dyYXBoLmNsb2JiZXJzV29ybGQoaW5kZXgpOwogICAgICAgICB9Ci0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICAvLyBCZSBzYWZlIGluIHJlbGVhc2UgbW9kZS4KICAgICAgICAgcmVz
dWx0Lm1heUJlQWNjZXNzZWQgPSB0cnVlOwogICAgICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IGM1YTRhNWZm
ZjIwOTc0NTQ2OWJlNWU4YzEyMThmMDQ5NGZiNWZkZjkuLjk2MjU0YTNkNDkyZDAxYzEzMmM2NmYy
NzBjNjAxMDUwNDBjNzg4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nh
cGFiaWxpdGllcy5jcHAKQEAgLTExOSw3ICsxMTksNyBAQCBSZXR1cm5UeXBlIGNhbkhhbmRsZU9w
Y29kZXMoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFJldHVyblR5cGUgaW5pdGlhbFZhbHVlKQogICAg
ICAgICAgICAgRk9SX0VBQ0hfT1BDT0RFX0lEKERFRklORV9PUCkKICN1bmRlZiBERUZJTkVfT1AK
ICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDb21tb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmgKaW5k
ZXggZjhiYzJjNTcyYmZiZGZkMTA0N2Q1YmRjOTkyN2I1NzcwMzYyNTE1YS4uZWMyY2U0MDNkYTVi
NDhmYWVhODYzYmI4MmYwMjkxZWU5NjA2ZTU0YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDb21tb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NvbW1vbi5oCkBAIC0xMzAsNyArMTMwLDcgQEAgaW5saW5lIGNvbnN0IGNoYXIqIHVzZUtpbmRU
b1N0cmluZyhVc2VLaW5kIHVzZUtpbmQpCiAgICAgY2FzZSBEb3VibGVVc2U6CiAgICAgICAgIHJl
dHVybiAiZCI7CiAgICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG91Ymxl
Rm9ybWF0U3RhdGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG91YmxlRm9ybWF0
U3RhdGUuaAppbmRleCAyYWEwZjNkNGQ0ZTFmZTIxNzkyZjMwNDU5NWY3MTQzNzkxODM5OTA0Li5l
NDY5NzY4YTIwOWI2ODA0NGRkNDFkMGM1NjZmY2Y5NTgyZjE2MTg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvdWJsZUZvcm1hdFN0YXRlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb3VibGVGb3JtYXRTdGF0ZS5oCkBAIC02MSw3ICs2MSw3
IEBAIGlubGluZSBEb3VibGVGb3JtYXRTdGF0ZSBtZXJnZURvdWJsZUZvcm1hdFN0YXRlcyhEb3Vi
bGVGb3JtYXRTdGF0ZSBhLCBEb3VibGVGb3JtCiAgICAgY2FzZSBDYW50VXNlRG91YmxlRm9ybWF0
OgogICAgICAgICByZXR1cm4gQ2FudFVzZURvdWJsZUZvcm1hdDsKICAgICB9Ci0gICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICBy
ZXR1cm4gQ2FudFVzZURvdWJsZUZvcm1hdDsKIH0KIApAQCAtODYsNyArODYsNyBAQCBpbmxpbmUg
Y29uc3QgY2hhciogZG91YmxlRm9ybWF0U3RhdGVUb1N0cmluZyhEb3VibGVGb3JtYXRTdGF0ZSBz
dGF0ZSkKICAgICBjYXNlIENhbnRVc2VEb3VibGVGb3JtYXQ6CiAgICAgICAgIHJldHVybiAiRm9y
Y2VWYWx1ZSI7CiAgICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IGJiZmYxYjZiNDI1ZDRhYTZhY2Nm
OGQ2NjU4NDc2MDFkNGRlMGQ5OWQuLjdlMzE3NzBmZGNiOGY4ZmE2YjU4ZjI0YTE3MWI4NmVmYjFj
NDFmYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApA
QCAtNDkwLDcgKzQ5MCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBB
cnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9uczoKICAgICAgICAgY2FzZSBBcnJheTo6VW5wcm9m
aWxlZDoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ICAgIAogICAgICAgICBjYXNlIEFycmF5OjpHZW5lcmljOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdHcmFwaC5oCmluZGV4IGVlODlmYjE0NmQ5NTA1YmY4YzdmNzA2MTYwMGE2ZjYwYzA0NDAzMGQu
LjZjMjIyOGEyODg2OTdkODU2YTM5MzAzNzYzMTMzNzEzMWNlYTNiZjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0dyYXBoLmgKQEAgLTU2OSw3ICs1NjksNyBAQCBwdWJsaWM6CiAgICAgICAg
IGNhc2UgUHV0QnlWYWxBbGlhczoKICAgICAgICAgICAgIHJldHVybiAhYnlWYWxJc1B1cmUobm9k
ZSk7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsgLy8gSWYgYnkgc29tZSBvZGRpdHkgd2UgaGl0IHRoaXMgY2FzZSBpbiByZWxl
YXNlIGJ1aWxkIGl0J3Mgc2FmZXIgdG8gaGF2ZSBDU0UgYXNzdW1lIHRoZSB3b3JzdC4KICAgICAg
ICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggN2Y0M2Q2Yjcx
OTE1MTdkOWI0NzU2ZjA3ODU2Y2M5Y2MzYmNhM2VhOC4uODg2MmJhYzUzMjM4YzFjNTUwY2RkMTli
MjUxMGVkNWI3MzRlOTNlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTMx
Nyw3ICszMTcsNyBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIGNhc2UgUGhhbnRvbUFyZ3VtZW50
czoKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOyAvLyBIYXZlIHRv
IHJldHVybiBzb21ldGhpbmcgaW4gcmVsZWFzZSBtb2RlLgogICAgICAgICB9CiAgICAgfQpAQCAt
NjQ1LDcgKzY0NSw3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgY2FzZSAxOgogICAgICAgICAg
ICAgcmV0dXJuIG5vdFRha2VuQmxvY2tJbmRleCgpOwogICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuIE5vQmxvY2s7CiAgICAgICAgIH0KICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAKaW5kZXggZmI4
M2M1YTcxYjQ4ZWFmMzMzZDFhYjliZGRhOTVmNWEyYzhiNmIzYS4uMWU4M2ZhZWQyNjEzODk4ZWQ0
YTJmZGI2YTQyNzFlNjA2OTc1MGEzZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlRmxhZ3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZUZsYWdzLmNwcApAQCAtNjEsNyArNjEsNyBAQCBjb25zdCBjaGFyKiBub2RlRmxhZ3NBc1N0
cmluZyhOb2RlRmxhZ3MgZmxhZ3MpCiAgICAgICAgICAgICBwdHIuc3RyY2F0KCJTdG9yYWdlIik7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGhhc1ByaW50ZWQgPSB0
cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDY1OTVhYWQy
MmQ1YjFjNjNhNTkwMTI1ZDQ1NGQ3MzlmY2U1OGViZGMuLmMzMjBhNTdiZWVlZGNkNjFlZTQxNTEx
ZjE4YmFjY2NiZTU2MDc0YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBl
LmgKQEAgLTI3NSw3ICsyNzUsNyBAQCBpbmxpbmUgTm9kZUZsYWdzIGRlZmF1bHRGbGFncyhOb2Rl
VHlwZSBvcCkKICAgICBGT1JfRUFDSF9ERkdfT1AoREZHX09QX0VOVU0pCiAjdW5kZWYgREZHX09Q
X0VOVU0KICAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZXBhdGNoLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1JlcGF0Y2guaAppbmRleCA5N2QyNmFhYjIy
MTY4NWIwZmE3ZjA4ZTIyODI3NDQ4OWU2ZjkwZDNlLi4yNGI5NGI1YWFhNjg3MDQ5NmEzNjI5ZDdk
YjAwZDdmNjFjNWQzNWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1JlcGF0Y2guaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1JlcGF0Y2guaApA
QCAtNTksOCArNTksOCBAQCBzdHJ1Y3QgU3RydWN0dXJlU3R1YkluZm87CiAKIG5hbWVzcGFjZSBE
RkcgewogCi1pbmxpbmUgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBkZmdSZXNldEdldEJ5
SUQoUmVwYXRjaEJ1ZmZlciYsIFN0cnVjdHVyZVN0dWJJbmZvJikgeyBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsgfQotaW5saW5lIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgZGZnUmVzZXRQdXRC
eUlEKFJlcGF0Y2hCdWZmZXImLCBTdHJ1Y3R1cmVTdHViSW5mbyYpIHsgQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KK2lubGluZSBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIGRmZ1Jlc2V0R2V0
QnlJRChSZXBhdGNoQnVmZmVyJiwgU3RydWN0dXJlU3R1YkluZm8mKSB7IFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KK2lubGluZSBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIGRm
Z1Jlc2V0UHV0QnlJRChSZXBhdGNoQnVmZmVyJiwgU3RydWN0dXJlU3R1YkluZm8mKSB7IFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJh
dG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmgK
aW5kZXggNGFjZDg2OTBhODk5Y2RmZWZmZDQ5ODQzMmE2OTg4OTc3ZmEzZWNhMS4uOTJiOGFlYWQ1
YTllYWU1MGZkNTAxNjIxNTQyNGFlMTUyNzllNTg5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0aEdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU2xvd1BhdGhHZW5lcmF0b3IuaApAQCAtNjEsNyArNjEsNyBAQCBwdWJs
aWM6CiAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGxhYmVsKCkgY29uc3QgeyByZXR1cm4gbV9s
YWJlbDsgfQogICAgIHZpcnR1YWwgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbCgpIGNvbnN0CiAg
ICAgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gQnkgZGVmYXVsdCBzbG93IHBh
dGggZ2VuZXJhdG9ycyBkb24ndCBoYXZlIGEgY2FsbC4KKyAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgLy8gQnkgZGVmYXVsdCBzbG93IHBhdGggZ2VuZXJhdG9ycyBkb24ndCBo
YXZlIGEgY2FsbC4KICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpDYWxsKCk7CiAgICAg
fQogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcAppbmRleCAwZmE2MmE2MDU5MTI5MTBmZDQxZTMwNjNhNTU1Yzk0ZjFmZjE4MWNl
Li42N2FlOWM0MDdiNTIzYjVmNTM3MDRhYTM2NDUxOGQxMDk2NTRkYTc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtNDExLDcgKzQx
MSw3IEBAIFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4gU3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNhdmVQ
bGFuRm9yR1BSKFZpcnR1YWxSZWdpc3RlciBzcGlsCiAgICAgICAgICAgICBmaWxsQWN0aW9uID0g
TG9hZDMyUGF5bG9hZDsKICAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3Jt
YXRCb29sZWFuKSB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGZp
bGxBY3Rpb24gPSBEb05vdGhpbmdGb3JGaWxsOwogI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKICAg
ICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKQEAgLTU0OSw3ICs1NDksNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpzaWxlbnRTcGlsbChjb25zdCBTaWxlbnRSZWdpc3RlclNhdmVQ
bGFuJiBwbGFuKQogICAgICAgICBtX2ppdC5zdG9yZURvdWJsZShwbGFuLmZwcigpLCBKSVRDb21w
aWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRleCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSkp
OwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiB9CiAg
ICAgCkBAIC02MzEsNyArNjMxLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50RmlsbChj
b25zdCBTaWxlbnRSZWdpc3RlclNhdmVQbGFuJiBwbGFuLCBHUFJSZWcgY2FuVHIKICAgICAgICAg
bV9qaXQubG9hZERvdWJsZShKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihhdChwbGFuLm5vZGVJbmRl
eCgpKS52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZnByKCkpOwogICAgICAgICBicmVhazsKICAg
ICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiB9CiAgICAgCkBAIC04MDQsNyArODA0LDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2hlY2tBcnJheShOb2RlJiBub2RlKQogICAgICAgICBl
eHBlY3RlZENsYXNzSW5mbyA9IHJlc3VsdC0+bV9jbGFzc0luZm87CiAgICAgICAgIGJyZWFrOwog
ICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgCkBA
IC0yMjYyLDcgKzIyNjIsNyBAQCBHZW5lcmF0ZWRPcGVyYW5kVHlwZSBTcGVjdWxhdGl2ZUpJVDo6
Y2hlY2tHZW5lcmF0ZWRUeXBlRm9yVG9JbnQzMihOb2RlSW5kZXggbm9kZQogICAgIHN3aXRjaCAo
aW5mby5yZWdpc3RlckZvcm1hdCgpKSB7CiAgICAgY2FzZSBEYXRhRm9ybWF0Qm9vbGVhbjogLy8g
VGhpcyB0eXBlIG5ldmVyIG9jY3Vycy4KICAgICBjYXNlIERhdGFGb3JtYXRTdG9yYWdlOgotICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKIAogICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6CiAgICAgICAgIHRlcm1pbmF0ZVNw
ZWN1bGF0aXZlRXhlY3V0aW9uKFVuY291bnRhYmxlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUpOwpA
QCAtMjI4Myw3ICsyMjgzLDcgQEAgR2VuZXJhdGVkT3BlcmFuZFR5cGUgU3BlY3VsYXRpdmVKSVQ6
OmNoZWNrR2VuZXJhdGVkVHlwZUZvclRvSW50MzIoTm9kZUluZGV4IG5vZGUKICAgICAgICAgcmV0
dXJuIEdlbmVyYXRlZE9wZXJhbmREb3VibGU7CiAgICAgICAgIAogICAgIGRlZmF1bHQ6Ci0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICByZXR1cm4gR2VuZXJhdGVkT3BlcmFuZFR5cGVVbmtub3duOwogICAg
IH0KIH0KQEAgLTIzODksNyArMjM4OSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVW
YWx1ZVRvSW50MzIoTm9kZSYgbm9kZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIEdlbmVyYXRlZE9wZXJhbmRUeXBlVW5rbm93bjoKLSAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQpAQCAtMjc4MCw3ICsy
NzgwLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25GbG9hdFR5cGVk
QXJyYXkoY29uc3QgVHlwZWRBcnJheURlc2NyaXB0b3IKICAgICAgICAgYnJlYWs7CiAgICAgfQog
ICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KICAgICBkb3VibGVSZXN1bHQocmVzdWx0
UmVnLCBtX2NvbXBpbGVJbmRleCk7CiB9CkBAIC0yODE1LDcgKzI4MTUsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkoY29uc3QgVHlwZWRB
cnJheURlc2NyaXB0bwogICAgICAgICBtX2ppdC5zdG9yZURvdWJsZSh2YWx1ZU9wLmZwcigpLCBN
YWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5LCBNYWNyb0Fzc2Vt
Ymxlcjo6VGltZXNFaWdodCkpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgotICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICB9CiAgICAgaWYgKG5vZGUub3AoKSA9PSBQdXRCeVZhbCkKICAgICAgICAgb3V0
T2ZCb3VuZHMubGluaygmbV9qaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oCmluZGV4IDYzZTM1MjA3NDExNzEwNGJjM2RiNzQxZWVjM2ZiNGVkZjAy
OGQ1OTEuLjgyNWRjZTVlNGVjNzY4MGJhNWI2ZDNkNGU4ZDYxNGE5MzhjOTFlMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTY0Niw3ICs2
NDYsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2ppdC54b3IzMihJbW0zMihpbW0pLCBvcDEs
IHJlc3VsdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgfQogICAgIH0KICAgICB2b2lkIGJpdE9wKE5vZGVUeXBlIG9w
LCBHUFJSZWcgb3AxLCBHUFJSZWcgb3AyLCBHUFJSZWcgcmVzdWx0KQpAQCAtNjYyLDcgKzY2Miw3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1faml0LnhvcjMyKG9wMSwgb3AyLCByZXN1bHQpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIH0KICAgICB9CiAgICAgdm9pZCBzaGlmdE9wKE5vZGVUeXBlIG9wLCBHUFJSZWcg
b3AxLCBpbnQzMl90IHNoaWZ0QW1vdW50LCBHUFJSZWcgcmVzdWx0KQpAQCAtNjc4LDcgKzY3OCw3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1faml0LnVyc2hpZnQzMihvcDEsIEltbTMyKHNoaWZ0
QW1vdW50KSwgcmVzdWx0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0Ogot
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CiAgICAgfQogICAgIHZvaWQgc2hpZnRPcChO
b2RlVHlwZSBvcCwgR1BSUmVnIG9wMSwgR1BSUmVnIHNoaWZ0QW1vdW50LCBHUFJSZWcgcmVzdWx0
KQpAQCAtNjk0LDcgKzY5NCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1faml0LnVyc2hpZnQz
MihvcDEsIHNoaWZ0QW1vdW50LCByZXN1bHQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCkBA
IC04MDQsNyArODA0LDcgQEAgcHVibGljOgogICAgICAgICAgICAgbV9ncHJzLnJldGFpbihyZWcs
IHZpcnR1YWxSZWdpc3RlciwgU3BpbGxPcmRlckpTKTsKICAgICAgICAgICAgIGluZm8uaW5pdEpT
VmFsdWUobm9kZUluZGV4LCBub2RlLnJlZkNvdW50KCksIHJlZywgZm9ybWF0KTsKICNlbGlmIFVT
RShKU1ZBTFVFMzJfNjQpCi0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZW5kaWYKICAgICAgICAgfQog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwCmluZGV4IGU4NGQ1ZGZkYzMxYTk2MTA2M2Q1NzlmYzU5NjlmNGMyZDBiOTFl
NDcuLjE3OTc4ZjA1YmRkZDUxMjk0MTdmMjA4Y2VlMzIzMTI1NjQ1MzUwM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApA
QCAtNTQsNyArNTQsNyBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxJbnRlZ2VyKE5vZGVJ
bmRleCBub2RlSW5kZXgsIERhdGFGb3JtYXQmIHJldHVybkZvcm1hdAogICAgICAgICAgICAgaWYg
KGlzSW50MzJDb25zdGFudChub2RlSW5kZXgpKQogICAgICAgICAgICAgICAgIG1faml0Lm1vdmUo
TWFjcm9Bc3NlbWJsZXI6OkltbTMyKHZhbHVlT2ZJbnQzMkNvbnN0YW50KG5vZGVJbmRleCkpLCBn
cHIpOwogICAgICAgICAgICAgZWxzZSBpZiAoaXNOdW1iZXJDb25zdGFudChub2RlSW5kZXgpKQot
ICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAg
ICAgICAgICBBU1NFUlQoaXNKU0NvbnN0YW50KG5vZGVJbmRleCkpOwogICAgICAgICAgICAgICAg
IEpTVmFsdWUganNWYWx1ZSA9IHZhbHVlT2ZKU0NvbnN0YW50KG5vZGVJbmRleCk7CkBAIC04Myw3
ICs4Myw3IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbEludGVnZXIoTm9kZUluZGV4IG5v
ZGVJbmRleCwgRGF0YUZvcm1hdCYgcmV0dXJuRm9ybWF0CiAgICAgY2FzZSBEYXRhRm9ybWF0SlNC
b29sZWFuOgogICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6CiAgICAgICAgIC8vIFNob3VsZCBv
bmx5IGJlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBpZiB3ZSBrbm93IHRoaXMgb3BlcmFuZCB0byBi
ZSBpbnRlZ2VyLgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIAogICAgIGNhc2UgRGF0YUZvcm1hdEpTSW50ZWdlcjog
ewogICAgICAgICBHUFJSZWcgdGFnR1BSID0gaW5mby50YWdHUFIoKTsKQEAgLTEwOSw3ICsxMDks
NyBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxJbnRlZ2VyKE5vZGVJbmRleCBub2RlSW5k
ZXgsIERhdGFGb3JtYXQmIHJldHVybkZvcm1hdAogICAgIH0KIAogICAgIGRlZmF1bHQ6Ci0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICByZXR1cm4gSW52YWxpZEdQUlJlZzsKICAgICB9CiB9CkBAIC0xMzgs
NyArMTM4LDcgQEAgRlBSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsRG91YmxlKE5vZGVJbmRleCBu
b2RlSW5kZXgpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZwcjsKICAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHNob3VsZCBub3QgYmUgcmVhY2hhYmxlPwot
ICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICBEYXRhRm9ybWF0IHNwaWxsRm9ybWF0ID0gaW5mby5zcGlsbEZvcm1h
dCgpOwpAQCAtMTgxLDcgKzE4MSw3IEBAIEZQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbERvdWJs
ZShOb2RlSW5kZXggbm9kZUluZGV4KQogICAgIGNhc2UgRGF0YUZvcm1hdEpTQm9vbGVhbjoKICAg
ICBjYXNlIERhdGFGb3JtYXRTdG9yYWdlOgogICAgICAgICAvLyBTaG91bGQgb25seSBiZSBjYWxs
aW5nIHRoaXMgZnVuY3Rpb24gaWYgd2Uga25vdyB0aGlzIG9wZXJhbmQgdG8gYmUgbnVtZXJpYy4K
LSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAKICAgICBjYXNlIERhdGFGb3JtYXRKU0ludGVnZXI6CiAgICAgY2FzZSBE
YXRhRm9ybWF0SlM6IHsKQEAgLTIzNCw3ICsyMzQsNyBAQCBGUFJSZWcgU3BlY3VsYXRpdmVKSVQ6
OmZpbGxEb3VibGUoTm9kZUluZGV4IG5vZGVJbmRleCkKICAgICB9CiAKICAgICBkZWZhdWx0Ogot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIEludmFsaWRGUFJSZWc7CiAgICAgfQogfQpAQCAt
MzE5LDcgKzMxOSw3IEBAIGJvb2wgU3BlY3VsYXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKE5vZGVJbmRl
eCBub2RlSW5kZXgsIEdQUlJlZyYgdGFnR1BSLCBHUFJSZWcmIHBhCiAgICAgICAgICAgICBmaWxs
Rm9ybWF0ID0gRGF0YUZvcm1hdEpTQm9vbGVhbjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIodGFnKSwgdGFnR1BSKTsKQEAg
LTM1OCwxMCArMzU4LDEwIEBAIGJvb2wgU3BlY3VsYXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKE5vZGVJ
bmRleCBub2RlSW5kZXgsIEdQUlJlZyYgdGFnR1BSLCBHUFJSZWcmIHBhCiAgICAgICAgIAogICAg
IGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6CiAgICAgICAgIC8vIHRoaXMgdHlwZSBjdXJyZW50bHkg
bmV2ZXIgb2NjdXJzCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogCiAgICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIH0KQEAgLTExNjUsMTAgKzExNjUsMTAgQEAgR1BS
UmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlSW50SW50ZXJuYWwoTm9kZUluZGV4IG5v
ZGVJbmRleCwgRGF0YUZvcm1hdCYKICAgICBjYXNlIERhdGFGb3JtYXRKU0NlbGw6CiAgICAgY2Fz
ZSBEYXRhRm9ybWF0SlNCb29sZWFuOgogICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6Ci0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogCiAgICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBJbnZh
bGlkR1BSUmVnOwogICAgIH0KIH0KQEAgLTEyMTcsNyArMTIxNyw3IEBAIEZQUlJlZyBTcGVjdWxh
dGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZURvdWJsZShOb2RlSW5kZXggbm9kZUluZGV4LCBTcGVjdWxh
dGlvbkRpcmVjCiAgICAgICAgICAgICAgICAgaW5mby5maWxsRG91YmxlKCptX3N0cmVhbSwgZnBy
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gZnByOwogICAgICAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIERh
dGFGb3JtYXQgc3BpbGxGb3JtYXQgPSBpbmZvLnNwaWxsRm9ybWF0KCk7CiAgICAgICAgICAgICBB
U1NFUlQoKHNwaWxsRm9ybWF0ICYgRGF0YUZvcm1hdEpTKSB8fCBzcGlsbEZvcm1hdCA9PSBEYXRh
Rm9ybWF0SW50ZWdlcik7CkBAIC0xMzEzLDEwICsxMzEzLDEwIEBAIEZQUlJlZyBTcGVjdWxhdGl2
ZUpJVDo6ZmlsbFNwZWN1bGF0ZURvdWJsZShOb2RlSW5kZXggbm9kZUluZGV4LCBTcGVjdWxhdGlv
bkRpcmVjCiAgICAgY2FzZSBEYXRhRm9ybWF0SlNDZWxsOgogICAgIGNhc2UgRGF0YUZvcm1hdEJv
b2xlYW46CiAgICAgY2FzZSBEYXRhRm9ybWF0SlNCb29sZWFuOgotICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIAogICAg
IGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gSW52YWxpZEZQUlJlZzsKICAg
ICB9CiB9CkBAIC0xMzg4LDEwICsxMzg4LDEwIEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6Zmls
bFNwZWN1bGF0ZUNlbGwoTm9kZUluZGV4IG5vZGVJbmRleCwgU3BlY3VsYXRpb25EaXJlY3RpCiAg
ICAgY2FzZSBEYXRhRm9ybWF0SlNCb29sZWFuOgogICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46
CiAgICAgY2FzZSBEYXRhRm9ybWF0U3RvcmFnZToKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAKICAgICBkZWZhdWx0
OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIEludmFsaWRHUFJSZWc7CiAgICAgfQogfQpA
QCAtMTQ2NiwxMCArMTQ2NiwxMCBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxh
dGVCb29sZWFuKE5vZGVJbmRleCBub2RlSW5kZXgsIFNwZWN1bGF0aW9uRGlyZQogICAgIGNhc2Ug
RGF0YUZvcm1hdEpTQ2VsbDoKICAgICBjYXNlIERhdGFGb3JtYXRDZWxsOgogICAgIGNhc2UgRGF0
YUZvcm1hdFN0b3JhZ2U6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogCiAgICAgZGVmYXVsdDoKLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybiBJbnZhbGlkR1BSUmVnOwogICAgIH0KIH0KQEAgLTI0MTgsNyArMjQx
OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICNpZiBDUFUo
WDg2KQogICAgICAgICAgICAgY29tcGlsZUludGVnZXJBcml0aERpdkZvclg4Nihub2RlKTsKICNl
bHNlIC8vIENQVShYODYpIC0+IHNvIG5vbi1YODYgY29kZSBmb2xsb3dzCi0gICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gc2hvdWxkIGhhdmUgYmVlbiBjb3ZlcnRlZCBpbnRvIGEg
ZG91YmxlIGRpdmlkZS4KKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
IC8vIHNob3VsZCBoYXZlIGJlZW4gY292ZXJ0ZWQgaW50byBhIGRvdWJsZSBkaXZpZGUuCiAjZW5k
aWYgLy8gQ1BVKFg4NikKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yNTk5LDcg
KzI1OTksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAg
ICAgIHN3aXRjaCAobm9kZS5hcnJheU1vZGUoKS50eXBlKCkpIHsKICAgICAgICAgY2FzZSBBcnJh
eTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9uczoKICAgICAgICAgY2FzZSBBcnJheTo6Rm9yY2VFeGl0
OgotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVF
eGVjdXRpb24oSW5hZGVxdWF0ZUNvdmVyYWdlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJyYXk6OkdlbmVyaWM6IHsKQEAgLTI4NDAs
NyArMjg0MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAg
ICAgICAgICAgIGNvbXBpbGVHZXRCeVZhbE9uRmxvYXRUeXBlZEFycmF5KG1faml0Lmdsb2JhbERh
dGEoKS0+ZmxvYXQ2NEFycmF5RGVzY3JpcHRvcigpLCBub2RlLCBzaXplb2YoZG91YmxlKSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwpAQCAtMjg1OSw3
ICsyODU5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAg
ICAgICBzd2l0Y2ggKGFycmF5TW9kZS50eXBlKCkpIHsKICAgICAgICAgY2FzZSBBcnJheTo6U2Vs
ZWN0VXNpbmdQcmVkaWN0aW9uczoKICAgICAgICAgY2FzZSBBcnJheTo6Rm9yY2VFeGl0OgotICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRp
b24oSW5hZGVxdWF0ZUNvdmVyYWdlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUpOwogICAgICAgICAg
ICAgYWxyZWFkeUhhbmRsZWQgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zMDE1LDcg
KzMwMTUsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAg
ICAgIGNhc2UgQXJyYXk6OkFyZ3VtZW50czoKICAgICAgICAgICAgIC8vIEZJWE1FOiB3ZSBjb3Vs
ZCBhdCBzb21lIHBvaW50IG1ha2UgdGhpcyB3b3JrLiBSaWdodCBub3cgd2UncmUgYXNzdW1pbmcg
dGhhdCB0aGUgcmVnaXN0ZXIKICAgICAgICAgICAgIC8vIHByZXNzdXJlIHdvdWxkIGJlIHRvbyBn
cmVhdC4KLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgCiAgICAgICAgIGNhc2UgQXJyYXk6OkludDhBcnJheToKQEAgLTMwNTUsNyArMzA1NSw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBicmVhazsKQEAgLTQ2NTQs
NyArNDY1NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICNp
ZiBFTkFCTEUoREVCVUdfV0lUSF9CUkVBS1BPSU5UKQogICAgICAgICBtX2ppdC5icmVha3BvaW50
KCk7CiAjZWxzZQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICNlbmRpZgogICAgICAgICBicmVhazsKICAgICAgICAg
CkBAIC01MTQzLDcgKzUxNDMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUm
IG5vZGUpCiAgICAgY2FzZSBJbmxpbmVTdGFydDoKICAgICBjYXNlIE5vcDoKICAgICBjYXNlIExh
c3ROb2RlVHlwZToKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmlu
ZGV4IDg2OWFkMzJmZjY1YzA1ZWI1NDNmYzUwMDM4YWIwOWViY2Q3ZWE4N2YuLjIxYzcwZGU2NWIy
OGRkMjIxNDc2N2YyMDYyZDQyMmI1YjBjY2Y3MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtOTQsNyArOTQsNyBAQCBHUFJS
ZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxJbnRlZ2VyKE5vZGVJbmRleCBub2RlSW5kZXgsIERhdGFG
b3JtYXQmIHJldHVybkZvcm1hdAogICAgIGNhc2UgRGF0YUZvcm1hdEpTQm9vbGVhbjoKICAgICBj
YXNlIERhdGFGb3JtYXRTdG9yYWdlOgogICAgICAgICAvLyBTaG91bGQgb25seSBiZSBjYWxsaW5n
IHRoaXMgZnVuY3Rpb24gaWYgd2Uga25vdyB0aGlzIG9wZXJhbmQgdG8gYmUgaW50ZWdlci4KLSAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAKICAgICBjYXNlIERhdGFGb3JtYXRKU0ludGVnZXI6IHsKICAgICAgICAgR1BS
UmVnIGdwciA9IGluZm8uZ3ByKCk7CkBAIC0xMTMsNyArMTEzLDcgQEAgR1BSUmVnIFNwZWN1bGF0
aXZlSklUOjpmaWxsSW50ZWdlcihOb2RlSW5kZXggbm9kZUluZGV4LCBEYXRhRm9ybWF0JiByZXR1
cm5Gb3JtYXQKICAgICB9CiAgICAgICAgIAogICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICByZXR1cm4gSW52YWxpZEdQUlJlZzsKICAgICB9CiB9CkBAIC0xOTUsNyArMTk1LDcgQEAg
RlBSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsRG91YmxlKE5vZGVJbmRleCBub2RlSW5kZXgpCiAg
ICAgY2FzZSBEYXRhRm9ybWF0SlNCb29sZWFuOgogICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6
CiAgICAgICAgIC8vIFNob3VsZCBvbmx5IGJlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBpZiB3ZSBr
bm93IHRoaXMgb3BlcmFuZCB0byBiZSBudW1lcmljLgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIAogICAgIGNhc2Ug
RGF0YUZvcm1hdEpTOiB7CiAgICAgICAgIEdQUlJlZyBqc1ZhbHVlR3ByID0gaW5mby5ncHIoKTsK
QEAgLTI2Myw3ICsyNjMsNyBAQCBGUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxEb3VibGUoTm9k
ZUluZGV4IG5vZGVJbmRleCkKICAgICB9CiAgICAgICAgIAogICAgIGRlZmF1bHQ6Ci0gICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICByZXR1cm4gSW52YWxpZEZQUlJlZzsKICAgICB9CiB9CkBAIC0zNTgsMTAg
KzM1OCwxMCBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKE5vZGVJbmRleCBu
b2RlSW5kZXgpCiAgICAgY2FzZSBEYXRhRm9ybWF0Qm9vbGVhbjoKICAgICBjYXNlIERhdGFGb3Jt
YXRTdG9yYWdlOgogICAgICAgICAvLyB0aGlzIHR5cGUgY3VycmVudGx5IG5ldmVyIG9jY3Vycwot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgCiAgICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IHJldHVybiBJbnZhbGlkR1BSUmVnOwogICAgIH0KIH0KQEAgLTExOTAsMTAgKzExOTAsMTAgQEAg
R1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlSW50SW50ZXJuYWwoTm9kZUluZGV4
IG5vZGVJbmRleCwgRGF0YUZvcm1hdCYKICAgICB9CiAKICAgICBjYXNlIERhdGFGb3JtYXRTdG9y
YWdlOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgCiAgICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgIHJldHVybiBJbnZhbGlkR1BSUmVnOwogICAgIH0KIH0KQEAgLTEyODUsNyArMTI4NSw3
IEBAIEZQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZURvdWJsZShOb2RlSW5kZXgg
bm9kZUluZGV4LCBTcGVjdWxhdGlvbkRpcmVjCiAgICAgY2FzZSBEYXRhRm9ybWF0Tm9uZTogLy8g
U2hvdWxkIGhhdmUgZmlsbGVkLCBhYm92ZS4KICAgICBjYXNlIERhdGFGb3JtYXRCb29sZWFuOiAv
LyBUaGlzIHR5cGUgbmV2ZXIgb2NjdXJzLgogICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6Ci0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogCiAgICAgY2FzZSBEYXRhRm9ybWF0Q2VsbDoKICAgICAgICAgdGVybWluYXRl
U3BlY3VsYXRpdmVFeGVjdXRpb24oVW5jb3VudGFibGUsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSwg
ZGlyZWN0aW9uKTsKQEAgLTEzNjAsNyArMTM2MCw3IEBAIEZQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6
ZmlsbFNwZWN1bGF0ZURvdWJsZShOb2RlSW5kZXggbm9kZUluZGV4LCBTcGVjdWxhdGlvbkRpcmVj
CiAgICAgfQogICAgICAgICAKICAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0
dXJuIEludmFsaWRGUFJSZWc7CiAgICAgfQogfQpAQCAtMTQzMywxMCArMTQzMywxMCBAQCBHUFJS
ZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVDZWxsKE5vZGVJbmRleCBub2RlSW5kZXgs
IFNwZWN1bGF0aW9uRGlyZWN0aQogICAgIH0KIAogICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6
Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICAKICAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgcmV0dXJuIEludmFsaWRHUFJSZWc7CiAgICAgfQogfQpAQCAtMTUxNSwxMCArMTUxNSwxMCBA
QCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVCb29sZWFuKE5vZGVJbmRleCBu
b2RlSW5kZXgsIFNwZWN1bGF0aW9uRGlyZQogICAgIH0KICAgICAgICAgCiAgICAgY2FzZSBEYXRh
Rm9ybWF0U3RvcmFnZToKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIAogICAgIGRlZmF1bHQ6Ci0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICByZXR1cm4gSW52YWxpZEdQUlJlZzsKICAgICB9CiB9CkBAIC0yNTY4
LDcgKzI1NjgsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAg
ICAgICAgIHN3aXRjaCAobm9kZS5hcnJheU1vZGUoKS50eXBlKCkpIHsKICAgICAgICAgY2FzZSBB
cnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9uczoKICAgICAgICAgY2FzZSBBcnJheTo6Rm9yY2VF
eGl0OgotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgdGVybWluYXRlU3BlY3VsYXRp
dmVFeGVjdXRpb24oSW5hZGVxdWF0ZUNvdmVyYWdlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJyYXk6OkdlbmVyaWM6IHsKQEAgLTI3
ODEsNyArMjc4MSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkK
ICAgICAgICAgICAgIGNvbXBpbGVHZXRCeVZhbE9uRmxvYXRUeXBlZEFycmF5KG1faml0Lmdsb2Jh
bERhdGEoKS0+ZmxvYXQ2NEFycmF5RGVzY3JpcHRvcigpLCBub2RlLCBzaXplb2YoZG91YmxlKSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwpAQCAtMjgw
MCw3ICsyODAwLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQog
ICAgICAgICBzd2l0Y2ggKGFycmF5TW9kZS50eXBlKCkpIHsKICAgICAgICAgY2FzZSBBcnJheTo6
U2VsZWN0VXNpbmdQcmVkaWN0aW9uczoKICAgICAgICAgY2FzZSBBcnJheTo6Rm9yY2VFeGl0Ogot
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVj
dXRpb24oSW5hZGVxdWF0ZUNvdmVyYWdlLCBKU1ZhbHVlUmVncygpLCBOb05vZGUpOwogICAgICAg
ICAgICAgYWxyZWFkeUhhbmRsZWQgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zMDgx
LDcgKzMwODEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtNDU3OCw3
ICs0NTc4LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogI2lm
IEVOQUJMRShERUJVR19XSVRIX0JSRUFLUE9JTlQpCiAgICAgICAgIG1faml0LmJyZWFrcG9pbnQo
KTsKICNlbHNlCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgICAgICAK
QEAgLTUwMjAsMTEgKzUwMjAsMTEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2Rl
JiBub2RlKQogICAgICAgICAKICAgICBjYXNlIElubGluZVN0YXJ0OgogICAgIGNhc2UgTm9wOgot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgICAgIAogICAgIGNhc2UgTGFzdE5vZGVU
eXBlOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUNoZWNrSG9pc3RpbmdQaGFzZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUNoZWNrSG9pc3RpbmdQ
aGFzZS5jcHAKaW5kZXggMDliNzMyYjE4NjQzM2Q1ZDg4YmU5ZmFkYWQwZDI4MmUwZDZmZDgwYi4u
OTRjN2VmY2MyNWE3MDQxMDU2ZWZkY2Q1NGQxY2QxMTQ1YmRjNzg0OCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVDaGVja0hvaXN0aW5nUGhhc2UuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGlu
Z1BoYXNlLmNwcApAQCAtODgsNyArODgsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgY2Fz
ZSBGb3J3YXJkU3RydWN0dXJlVHJhbnNpdGlvbldhdGNocG9pbnQ6CiAgICAgICAgICAgICAgICAg
ICAgIC8vIFdlIGN1cnJlbnRseSByZWx5IG9uIHRoZSBmYWN0IHRoYXQgd2UncmUgdGhlIG9ubHkg
b25lcyB3aG8gd291bGQKICAgICAgICAgICAgICAgICAgICAgLy8gaW5zZXJ0IHRoaXMgbm9kZS4K
LSAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBjYXNlIEdldEJ5
T2Zmc2V0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWx1ZVNv
dXJjZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWx1ZVNvdXJjZS5oCmluZGV4
IDhhNGM2NmIzNzBjZmRmYjYzMzM4YjNhODA2NGYyNGJjNzYzYTc2NDUuLmVkOTNiN2I0YTI5Y2Nk
NjhiOWUyMWRhZDIxZmVkYjMyM2M3MDhmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVmFsdWVTb3VyY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1ZhbHVlU291cmNlLmgKQEAgLTE4Niw3ICsxODYsNyBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICByZXR1cm4gVmFsdWVSZWNvdmVyeTo6YXJndW1lbnRzVGhhdFdlcmVOb3RDcmVhdGVkKCk7CiAg
ICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgICAgIHJldHVybiBWYWx1ZVJlY292ZXJ5KCk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUV2ZW50LmNwcAppbmRleCA4ZWE1Njhi
MjNlYTlmOTM2YjliNTliYmIwZTY4NGVhMWRkMTU2NjFkLi5lMmFkNjFkOTVhZWE3NDZhMWU4Zjll
ZTA1Njg1OWFhNTE3NmViYmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1ZhcmlhYmxlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VmFyaWFibGVFdmVudC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBWYXJpYWJsZUV2ZW50Ojpk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgICAgIG91dC5wcmludGYoIlNldExvY2Fs
KHIlZCwgJXMpIiwgb3BlcmFuZCgpLCBkYXRhRm9ybWF0VG9TdHJpbmcoZGF0YUZvcm1hdCgpKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVh
azsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Zh
cmlhYmxlRXZlbnRTdHJlYW0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJp
YWJsZUV2ZW50U3RyZWFtLmNwcAppbmRleCA3MmI4ODFmMjMxM2VhMzM3MWRiNzVhMWU0ZGNiZGY2
ZTZkYjViMzE5Li45OGY5MWJiNWQ5OTcyN2ZmOTk0ODA4N2RkZGNkN2Q4MWVlZjljZjRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnRTdHJlYW0u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudFN0cmVh
bS5jcHAKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIFZhcmlhYmxlRXZlbnRTdHJlYW06OnJlY29u
c3RydWN0KAogICAgICAgICAgICAgICAgIG9wZXJhbmRTb3VyY2VzLnNldE9wZXJhbmQoZXZlbnQu
b3BlcmFuZCgpLCBWYWx1ZVNvdXJjZTo6Zm9yRGF0YUZvcm1hdChldmVudC5kYXRhRm9ybWF0KCkp
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0FsbG9jYXRvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuaAppbmRleCBmMGMzMDdmNmRlNWUyMWRlODcy
MTc4YjhlMWQyZmZjZDFhMzJlMGM3Li40YzIzMGM3NjhmZWNlZDEyZGZiMjY1OGNlZmYxZjBjODAz
ZWVkZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0FsbG9j
YXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrQWxsb2NhdG9yLmgK
QEAgLTM3MSw3ICszNzEsNyBAQCBpbmxpbmUgQmxvY2tBbGxvY2F0b3I6OlJlZ2lvblNldCYgQmxv
Y2tBbGxvY2F0b3I6OnJlZ2lvblNldEZvcjxIZWFwQmxvY2s8Q29weVdvcgogdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CiBpbmxpbmUgQmxvY2tBbGxvY2F0b3I6OlJlZ2lvblNldCYgQmxvY2tBbGxvY2F0
b3I6OnJlZ2lvblNldEZvcigpCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gKihSZWdpb25TZXQqKTA7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDVGhyZWFkLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDVGhyZWFkLmNwcAppbmRleCA3Y2FhN2Q1ODhl
NDRmMGJjODkyNjViMDE1OGJiYzdlZWZkYThhNzc2Li5hYTg2OGYxYjM0ODgxNGQ4MGU3ZDQxMjM5
ZmIzYTE0MmFlMzY2YWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9H
Q1RocmVhZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWQuY3Bw
CkBAIC0xMTksMTAgKzExOSwxMCBAQCB2b2lkIEdDVGhyZWFkOjpnY1RocmVhZE1haW4oKQogICAg
ICAgICAgICAgICAgIG1fY29weVZpc2l0b3ItPmRvbmVDb3B5aW5nKCk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5vUGhhc2U6Ci0gICAgICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgRXhpdDoK
LSAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9NYXJrZWRCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRC
bG9jay5jcHAKaW5kZXggMGI3ZjcxOWNhYWQ0NTRhODgzYjkwNTYzMmFkYTA0ZjRjNTNmYTY5Yy4u
MTQzNGI1NTA1YTQxYWM5ZTFlYWNiNWVmMDQ5YzFjMzczYzVmNTYwZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmNwcApAQCAtMTMxLDcgKzEzMSw3IEBAIE1hcmtl
ZEJsb2NrOjpGcmVlTGlzdCBNYXJrZWRCbG9jazo6c3dlZXBIZWxwZXIoU3dlZXBNb2RlIHN3ZWVw
TW9kZSkKICAgICAgICAgQVNTRVJUKHN3ZWVwTW9kZSA9PSBTd2VlcFRvRnJlZUxpc3QpOwogICAg
ICAgICByZXR1cm4gRnJlZUxpc3QoKTsKICAgICBjYXNlIEFsbG9jYXRlZDoKLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybiBGcmVlTGlzdCgpOwogICAgIGNhc2UgTWFya2VkOgogICAgICAgICBy
ZXR1cm4gc3dlZXBNb2RlID09IFN3ZWVwVG9GcmVlTGlzdApAQCAtMTM5LDcgKzEzOSw3IEBAIE1h
cmtlZEJsb2NrOjpGcmVlTGlzdCBNYXJrZWRCbG9jazo6c3dlZXBIZWxwZXIoU3dlZXBNb2RlIHN3
ZWVwTW9kZSkKICAgICAgICAgICAgIDogc3BlY2lhbGl6ZWRTd2VlcDxNYXJrZWQsIFN3ZWVwT25s
eSwgZHRvclR5cGU+KCk7CiAgICAgfQogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gRnJlZUxpc3QoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgKaW5kZXggOTA4MGFhZWY0
MmVjMDg5YjAxYjRlOTUyYWY2ODM0YzQwMWNjMzI4Mi4uOWE4MGQ0MmFlMDM5M2M1NDIxYzAwZDkz
ZjBkMDQ4OGJhMmUyODlhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
TWFya2VkQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9j
ay5oCkBAIC00MDgsMTEgKzQwOCwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBjYXNl
IE5ldzoKICAgICAgICAgY2FzZSBGcmVlTGlzdGVkOgotICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKLSAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9DYWxsRnJhbWUuaAppbmRleCAxMjBkMDg1ODg2NTVhMjcyMmZkNjBiNDUxMThkZmRkMWU5
NDMxZmVjLi43NDNmMThkYjU2MTUxZjkwOTA0Mzk3ZTNjNmUxYmNjZWJhMDJkMDNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCkBAIC0xNDUsNyAr
MTQ1LDcgQEAgbmFtZXNwYWNlIEpTQyAgewogICAgICAgICAvLyAjaWYncywgd2UgbWFrZSBhIGR1
bW15IGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSBhbnl3YXkuCiAgICAgICAgIElubGluZUNhbGxG
cmFtZSogaW5saW5lQ2FsbEZyYW1lKCkgY29uc3QKICAgICAgICAgewotICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKaW5kZXggODk4
NWRjZWY4OGI0ZjZkNWJjYzk4OWNlYTEzOTEwNTc5YzIzZGRjNy4uY2IwMWRhNDU2ZDhmMWYyMzEy
NmQ3NzRkMmIxMTgzYTljYTUzNTgxZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBAIC02NDAsNyArNjQwLDcgQEAgc3RhdGljIENh
bGxGcmFtZSogZ2V0Q2FsbGVySW5mbyhKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIENhbGxGcmFt
ZSogY2FsbEZyYW1lLAogICAgICAgICB9IGVsc2UgaWYgKGNhbGxlckNvZGVCbG9jayAmJiBjYWxs
ZXJDb2RlQmxvY2stPmdldEpJVFR5cGUoKSA9PSBKSVRDb2RlOjpERkdKSVQpIHsKICAgICAgICAg
ICAgIENvZGVPcmlnaW4gb3JpZ2luOwogICAgICAgICAgICAgaWYgKCFjYWxsZXJDb2RlQmxvY2st
PmNvZGVPcmlnaW5Gb3JSZXR1cm4oY2FsbEZyYW1lLT5yZXR1cm5QQygpLCBvcmlnaW4pKQotICAg
ICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBieXRlY29kZU9mZnNldCA9IG9y
aWdpbi5ieXRlY29kZUluZGV4OwogICAgICAgICAgICAgaWYgKElubGluZUNhbGxGcmFtZSogaWNm
ID0gb3JpZ2luLmlubGluZUNhbGxGcmFtZSkgewogICAgICAgICAgICAgICAgIEZ1bmN0aW9uRXhl
Y3V0YWJsZSogZXhlY3V0YWJsZSA9IHN0YXRpY19jYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGlj
Zi0+ZXhlY3V0YWJsZS5nZXQoKSk7CkBAIC02NzcsNyArNjc3LDcgQEAgc3RhdGljIFN0YWNrRnJh
bWVDb2RlVHlwZSBnZXRTdGFja0ZyYW1lQ29kZVR5cGUoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiAg
ICAgY2FzZSBHbG9iYWxDb2RlOgogICAgICAgICByZXR1cm4gU3RhY2tGcmFtZUdsb2JhbENvZGU7
CiAgICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFN0YWNrRnJhbWVHbG9iYWxDb2RlOwogfQogCkBAIC05
MDMsNyArOTAzLDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShQcm9ncmFtRXhlY3V0
YWJsZSogcHJvZ3JhbSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEoKICAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
CkBAIC05MzgsNyArOTM4LDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShQcm9ncmFt
RXhlY3V0YWJsZSogcHJvZ3JhbSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEoKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXN1bHQgPSBKU09OUFZhbHVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9y
Rml4ZWRWTVBvb2wuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxs
b2NhdG9yRml4ZWRWTVBvb2wuY3BwCmluZGV4IDVkY2NjZWE4ZmI3YjBiMzg3MjZmMDgyMDJiNzBl
MGFmZDU3YjdiZjAuLjYwODVlZTQ3ZTM0Yjg3NjFkZjQwMDBjNzI4MGNlZTg3MTMzZmJlOWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvckZp
eGVkVk1Qb29sLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVB
bGxvY2F0b3JGaXhlZFZNUG9vbC5jcHAKQEAgLTk4LDcgKzk4LDcgQEAgcHJvdGVjdGVkOgogICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIEFTU0VSVChyZXN1bHQgPT0gLTEpOwog
ICAgICAgICAgICAgaWYgKGVycm5vICE9IEVBR0FJTikgewotICAgICAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOyAvLyBJbiBkZWJ1ZyBtb2RlLCB0aGlzIHNob3VsZCBiZSBhIGhhcmQg
ZmFpbHVyZS4KKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyAv
LyBJbiBkZWJ1ZyBtb2RlLCB0aGlzIHNob3VsZCBiZSBhIGhhcmQgZmFpbHVyZS4KICAgICAgICAg
ICAgICAgICBicmVhazsgLy8gSW4gcmVsZWFzZSBtb2RlLCB3ZSBzaG91bGQganVzdCBpZ25vcmUg
dGhlIGVycm9yIC0gbm90IHJldHVybmluZyBtZW1vcnkgdG8gdGhlIE9TIGlzIGJldHRlciB0aGFu
IGNyYXNoaW5nLCBlc3BlY2lhbGx5IHNpbmNlIHdlIF93aWxsXyBiZSBhYmxlIHRvIHJldXNlIHRo
ZSBtZW1vcnkgaW50ZXJuYWxseSBhbnl3YXkuCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCBlYzYzNmZiMjFiZDE5Njk4NjY2ZGUyYWZiYjVl
MmI0YmRmZDU5MWRjLi40YmYxODAzNWZmN2IzZDdmNjQ1NTRhYWQwMzUyNjBhOTEzMGMxZGQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC00MDQsNyArNDA0LDcgQEAgdm9pZCBKSVQ6
OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICBjYXNlIG9wX3B1dF9ieV9pZF9nZW5l
cmljOgogICAgICAgICBjYXNlIG9wX3B1dF9ieV9pZF9yZXBsYWNlOgogICAgICAgICBjYXNlIG9w
X3B1dF9ieV9pZF90cmFuc2l0aW9uOgotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CiAg
ICAgfQogCkBAIC01NTEsNyArNTUxLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nh
c2VzKCkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX3B1dF90b19iYXNlKQogCiAgICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KIAogICAgICAgICBB
U1NFUlRfV0lUSF9NRVNTQUdFKGl0ZXIgPT0gbV9zbG93Q2FzZXMuZW5kKCkgfHwgZmlyc3RUbyAh
PSBpdGVyLT50bywiTm90IGVub3VnaCBqdW1wcyBsaW5rZWQgaW4gc2xvdyBjYXNlIGNvZGVnZW4u
Iik7CkBAIC02MzYsNyArNjM2LDcgQEAgSklUQ29kZSBKSVQ6OnByaXZhdGVDb21waWxlKENvZGVQ
dHIqIGZ1bmN0aW9uRW50cnlBcml0eUNoZWNrLCBKSVRDb21waWxhdGlvbkVmZm8KICAgICAgICAg
bV9zaG91bGRFbWl0UHJvZmlsaW5nID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVs
dDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKaW5kZXggOTA3N2QwMjc2Mzk3NDlk
ZGI0NWQ5M2IxY2QwNWI1ZDYwMTExYzFlZS4uZGZkMDA5OTk3YWNjMmQ0MDE4N2RiZjk2ZWZiNWZm
NzBhNmRlYjAwNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0
aG1ldGljLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMu
Y3BwCkBAIC03OTUsNyArNzk1LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbW9kKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF9tb2QoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRv
ciYgaXRlcikKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogfQogCiAjZW5kaWYgLy8gQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYzMyXzY0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYzMyXzY0LmNwcApp
bmRleCA3Zjc1ZGJhZWQ2YThlNjBjYWU4NmZmYjgxMjU0NjliOGRhZDk0NjIzLi4wOTU1ZGQ2NGI3
ZGQxNzE4ZThjYjY3MWUxOTI4MGU3OTZiNGYwZmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRBcml0aG1ldGljMzJfNjQuY3BwCkBAIC05MDgsNyArOTA4LDcgQEAgdm9p
ZCBKSVQ6OmVtaXRCaW5hcnlEb3VibGVPcChPcGNvZGVJRCBvcGNvZGVJRCwgdW5zaWduZWQgZHN0
LCB1bnNpZ25lZCBvcDEsIHVuc2kKICAgICAgICAgICAgICAgICBhZGRKdW1wKGJyYW5jaERvdWJs
ZShEb3VibGVHcmVhdGVyVGhhbk9yVW5vcmRlcmVkLCBmcFJlZ1QwLCBmcFJlZ1QyKSwgZHN0KTsK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICghbm90SW50MzJPcDIu
ZW1wdHkoKSkKQEAgLTEwMTIsNyArMTAxMiw3IEBAIHZvaWQgSklUOjplbWl0QmluYXJ5RG91Ymxl
T3AoT3Bjb2RlSUQgb3Bjb2RlSUQsIHVuc2lnbmVkIGRzdCwgdW5zaWduZWQgb3AxLCB1bnNpCiAg
ICAgICAgICAgICAgICAgYWRkSnVtcChicmFuY2hEb3VibGUoRG91YmxlR3JlYXRlclRoYW5PclVu
b3JkZXJlZCwgZnBSZWdUMSwgZnBSZWdUMCksIGRzdCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgIH0KICAgICB9CiAKQEAgLTEyNTMsNyArMTI1Myw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19v
cF9tb2QoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50
cnk+CiAgICAgVU5VU0VEX1BBUkFNKGl0ZXIpOwogICAgIC8vIFdlIHdvdWxkIGhhdmUgcmVhbGx5
IHVzZWZ1bCBhc3NlcnRpb25zIGhlcmUgaWYgaXQgd2Fzbid0IGZvciB0aGUgY29tcGlsZXIncwog
ICAgIC8vIGluc2lzdGVuY2Ugb24gYXR0cmlidXRlIG5vcmV0dXJuLgotICAgIC8vIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIC8vIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZW5k
aWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0
eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNz
LmNwcAppbmRleCAzMTEyNDIwNTU0MWQ1MGZlOWZmNDU5N2Y4MjE2ODJhMzM1MTlmYmRjLi4xYWNi
NmY1NTcwN2MzMmZlMDc1Y2UyZjY0NTU4NDlhMTY5NjQzZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAtMTM3NCw3ICsxMzc0LDcg
QEAgYm9vbCBKSVQ6OmlzRGlyZWN0UHV0QnlJZChTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8p
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgZGVmYXVsdDoKLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3R1YnMuY3BwCmluZGV4IGQyY2E0YzVmYjA1YmEyNmIxNjBhN2UxOThkNDFkYTYwODU4YmUy
ZmIuLjFkNjIzNWZjOTYzYTU5MTM0YzcxNjg3ZmY2NzM4NmZiZTJmOWQyNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCkBAIC0xNjMwLDcgKzE2MzAsNyBAQCBzdGF0aWMg
UG9seW1vcnBoaWNBY2Nlc3NTdHJ1Y3R1cmVMaXN0KiBnZXRQb2x5bW9ycGhpY0FjY2Vzc1N0cnVj
dHVyZUxpc3RTbG90KEpTRwogICAgICAgICAgICAgc3R1YkluZm8tPnUuZ2V0QnlJZFByb3RvTGlz
dC5saXN0U2l6ZSsrOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgotICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICB9CiAgICAgCiAgICAgQVNTRVJUKGxpc3RJbmRleCA8PSBQT0xZTU9SUEhJQ19MSVNUX0NB
Q0hFX1NJWkUpOwpAQCAtMjk1Niw3ICsyOTU2LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oaW50
LCBvcF9lcV9zdHJpbmdzKQogICAgIHJldHVybiBzdHJpbmcxLT52YWx1ZShzdGFja0ZyYW1lLmNh
bGxGcmFtZSkgPT0gc3RyaW5nMi0+dmFsdWUoc3RhY2tGcmFtZS5jYWxsRnJhbWUpOwogI2Vsc2UK
ICAgICBVTlVTRURfUEFSQU0oYXJncyk7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gMDsKICNlbmRpZgogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXgg
MDRlMTlkY2FkNzZjZDFjODliNGMzODY4ZWE1MDA1ZDBlNzJjNTYxNi4uMmNjMWVkNGQyN2ExNjQz
ZjhhNzZjMzJlMjQ4YzQ3M2UyM2VmOGE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC0zMDcsNyArMzA3LDcgQEAgaW5saW5lIGJvb2wg
aml0Q29tcGlsZUFuZFNldEhldXJpc3RpY3MoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEV4ZWNTdGF0
ZSogZXhlYykKICAgICAgICAgY29kZUJsb2NrLT5qaXRTb29uKCk7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL0xleGVyLmNwcAppbmRleCA0NzdkNDAzYzFlMzBmOWQ3NmUxODA4YTUzOThkMjQ5
YWI3YTFlYWI1Li43NjJlNzAwOWIwYWE5NzgyMTZjNGE5ZGE1ZDIzMzdmMmJkNjNlOWFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcApAQCAtMTY0OCw3ICsxNjQ4LDcgQEAg
aW5OdW1iZXJBZnRlckRlY2ltYWxQb2ludDoKICAgICAgICAgbV9sZXhFcnJvck1lc3NhZ2UgPSBp
bnZhbGlkQ2hhcmFjdGVyTWVzc2FnZSgpOwogICAgICAgICBnb3RvIHJldHVybkVycm9yOwogICAg
IGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBtX2xleEVycm9yTWVzc2FnZSA9ICJJbnRl
cm5hbCBFcnJvciI7CiAgICAgICAgIGdvdG8gcmV0dXJuRXJyb3I7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IGI0NmI2OTNjZjJmYjljM2JjOWFlZGUxMDA2YTQ1
ZWQzZGE0ZmM4MTcuLjE2ZmZkN2RiOWJmZmYwOGViODY5M2Q0MTJhZWM1Yjg1MGM5MTg2NTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAgLTE2Niw3ICsxNjYsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGlzU3VidHJhY3QoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzQ29uZGl0aW9uQ29udGV4dENv
ZGVnZW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBl
bWl0Qnl0ZWNvZGVJbkNvbmRpdGlvbkNvbnRleHQoQnl0ZWNvZGVHZW5lcmF0b3ImLCBMYWJlbCos
IExhYmVsKiwgYm9vbCkgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgICAgICB2aXJ0dWFs
IHZvaWQgZW1pdEJ5dGVjb2RlSW5Db25kaXRpb25Db250ZXh0KEJ5dGVjb2RlR2VuZXJhdG9yJiwg
TGFiZWwqLCBMYWJlbCosIGJvb2wpIHsgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQog
CiAgICAgICAgIHZpcnR1YWwgRXhwcmVzc2lvbk5vZGUqIHN0cmlwVW5hcnlQbHVzKCkgeyByZXR1
cm4gdGhpczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Bh
cnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAppbmRleCA2MTVk
MDllYjc1ZDgzYTc5YjFiYWEwOTVkYjhhMjk4MmJlYzY1NGZiLi5kNjYyNGFhYzQ3NjVkZTVhODg3
NGJkNDNhMDMwMTQxYWVhY2MxZmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2Vy
LmgKQEAgLTc1Niw3ICs3NTYsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIExhc3RVbnRhZ2dl
ZFRva2VuOiAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICByZXR1cm4gImludGVybmFsIGVycm9yIjsKICAgICB9CiAgICAgCkBAIC03ODgsNyArNzg4
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gQVNDSUlMaXRlcmFs
KCJSZXR1cm4gc3RhdGVtZW50cyBhcmUgb25seSB2YWxpZCBpbnNpZGUgZnVuY3Rpb25zIik7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiaW50ZXJuYWwgZXJy
b3IiKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAppbmRleCAwM2NhZjVmNjQ2ZGUzZjcyNTQ3ZjY3
NjBkMTNiM2JlOTJiNDNkM2Q1Li4wYTUzMTY4M2Y2MWIxYzZhNzRjYmE1NjdmYjJjZTk0M2QxMzZi
NGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNr
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaApA
QCAtMjQ2LDcgKzI0Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVuYXJ5VG9rZW5TdGFja1JlbW92
ZUxhc3QoaW50JiBzdGFja0RlcHRoKSB7IHN0YWNrRGVwdGggPSAwOyB9CiAgICAgCiAgICAgdm9p
ZCBhc3NpZ25tZW50U3RhY2tBcHBlbmQoaW50LCBpbnQsIGludCwgaW50LCBpbnQsIE9wZXJhdG9y
KSB7IH0KLSAgICBpbnQgY3JlYXRlQXNzaWdubWVudChjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBp
bnQsIGludCwgaW50LCBpbnQsIGludCkgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIDE7
IH0KKyAgICBpbnQgY3JlYXRlQXNzaWdubWVudChjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBpbnQs
IGludCwgaW50LCBpbnQsIGludCkgeyBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1
cm4gMTsgfQogICAgIGNvbnN0IElkZW50aWZpZXImIGdldE5hbWUoY29uc3QgUHJvcGVydHkmIHBy
b3BlcnR5KSBjb25zdCB7IEFTU0VSVChwcm9wZXJ0eS5uYW1lKTsgcmV0dXJuICpwcm9wZXJ0eS5u
YW1lOyB9CiAgICAgUHJvcGVydHlOb2RlOjpUeXBlIGdldFR5cGUoY29uc3QgUHJvcGVydHkmIHBy
b3BlcnR5KSBjb25zdCB7IHJldHVybiBwcm9wZXJ0eS50eXBlOyB9CiAgICAgYm9vbCBpc1Jlc29s
dmUoRXhwcmVzc2lvblR5cGUgZXhwcikgY29uc3QgeyByZXR1cm4gZXhwciA9PSBSZXNvbHZlRXhw
ciB8fCBleHByID09IFJlc29sdmVFdmFsRXhwcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FyZ3VtZW50cy5jcHAKaW5kZXggMWI3YzdlMDdmNDViZjAwOTAyNzdkZDY3MDIyNzBj
Mjk4YzBmYTBhYy4uMDIwZjMzMjZiZTg3YjdjODIyYTI0MTM1MGQwZjFmZTg0ZTQ5ZTM0MyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCkBAIC00MjgsNyAr
NDI4LDcgQEAgdm9pZCBBcmd1bWVudHM6OnRlYXJPZmZGb3JJbmxpbmVDYWxsRnJhbWUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBSZWdpc3RlciogcmUKICAgICAgICAgICAgIHZhbHVlID0gcmVj
b3ZlcnkuY29uc3RhbnQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0Ogot
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgdHJ5U2V0QXJndW1lbnQoZ2xvYmFsRGF0YSwgaSwgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAppbmRleCA1MmQ3N2U5MjU0NTBh
ZTdmN2M3YzhiZTY4MjIzYTVmMzQ1NzdhOWMxLi4yZWM3YmQ0Y2MzYWRhZmRjZmM0NWIwMThmM2E1
NWI2NWIxM2FjZjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
UHJvdG90eXBlLmNwcApAQCAtMjQ2LDcgKzI0Niw3IEBAIHN0YXRpYyBKU0NlbGwqIGZvcm1hdExv
Y2FsZURhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSYgZ2R0LCBM
CiAgICAgICAgICAgICBsZW5ndGggKz0gR2V0VGltZUZvcm1hdFcoTE9DQUxFX1VTRVJfREVGQVVM
VCwgMCwgJnN5c3RlbVRpbWUsIDAsIGJ1ZmZlci5kYXRhKCkgKyBsZW5ndGgsIGJ1ZmZlci5zaXpl
KCkgLSBsZW5ndGgpOwogICAgICAgICB9CiAgICAgfSBlbHNlCi0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogCiAgICAg
Ly8gIFJlbW92ZSB0ZXJtaW5hdGluZyBudWxsIGNoYXJhY3Rlci4KICAgICBpZiAobGVuZ3RoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAppbmRleCA5OWI3
NzBkNjQ5NTc2ZGI5YTQ4ZWVkMGE5YTJhMGRjMTdmYTMzOGY3Li5mZTJjNjVjZjhhN2RmZDE3ZjRh
M2VhZDRhMzYyMmQ1ZmYzNWEwYzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FeGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGVjdXRhYmxlLmNwcApAQCAtMTgzLDcgKzE4Myw3IEBAIGlubGluZSBjb25zdCBjaGFyKiBz
YW1wbGluZ0Rlc2NyaXB0aW9uKEpJVENvZGU6OkpJVFR5cGUgaml0VHlwZSkKICAgICBjYXNlIEpJ
VENvZGU6OkRGR0pJVDoKICAgICAgICAgcmV0dXJuICJERkcgQ29tcGlsYXRpb24gKFRPVEFMKSI7
CiAgICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAppbmRleCAxMjI3NThi
OTRhYzU5ZjRmMjEzZWNlYjk3N2U1MjhlYjU4ZDAwZTBhLi5lZWMzOTRkYTkwMTQ3MTQyMWFiZmNm
ZjgyZjk1NGVkMGU4Mjc3YWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FeGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZS5oCkBAIC04MzgsNyArODM4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGNh
c2UgRnVuY3Rpb25FeGVjdXRhYmxlVHlwZToKICAgICAgICAgICAgIHJldHVybiBqc0Nhc3Q8RnVu
Y3Rpb25FeGVjdXRhYmxlKj4odGhpcyktPnVubGlua0NhbGxzKCk7CiAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5jcHAKaW5kZXggYjgzNTBmNzY5MDI1YjljOWEw
YzdhOWM0MzI2ZTFlMTEzODgyZTVlZi4uZDAxYTZjNWVjNDNlOWNiMGI5NjgwNWQyZDdmYzNmZWYy
NDFkZmM2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRp
Zmllci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5j
cHAKQEAgLTIwNyw3ICsyMDcsNyBAQCB2b2lkIElkZW50aWZpZXI6OmNoZWNrQ3VycmVudElkZW50
aWZpZXJUYWJsZShFeGVjU3RhdGUqIGV4ZWMpCiAjZWxzZQogCiAvLyBUaGVzZSBvbmx5IGV4aXN0
cyBzbyB0aGF0IG91ciBleHBvcnRzIGFyZSB0aGUgc2FtZSBmb3IgZGVidWcgYW5kIHJlbGVhc2Ug
YnVpbGRzLgotLy8gVGhpcyB3b3VsZCBiZSBhbiBBU1NFUlRfTk9UX1JFQUNIRUQoKSwgYnV0IHdl
J3JlIGluIE5ERUJVRyBvbmx5IGNvZGUgaGVyZSEKKy8vIFRoaXMgd291bGQgYmUgYW4gUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKSwgYnV0IHdlJ3JlIGluIE5ERUJVRyBvbmx5IGNvZGUgaGVy
ZSEKIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBJZGVudGlmaWVyOjpjaGVja0N1cnJlbnRJ
ZGVudGlmaWVyVGFibGUoSlNHbG9iYWxEYXRhKikgeyBDUkFTSCgpOyB9CiBOT19SRVRVUk5fRFVF
X1RPX0NSQVNIIHZvaWQgSWRlbnRpZmllcjo6Y2hlY2tDdXJyZW50SWRlbnRpZmllclRhYmxlKEV4
ZWNTdGF0ZSopIHsgQ1JBU0goKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCmluZGV4IDViOWUwOTkzOGE1MGQwNTZjZWZmNDI1
OGRjZTRmNTMyNTNlNzg2ZWYuLjI4ODc5ZDBiNDBkYmZlOWZmOTVkNmNkYWRmNGZlNDJjMTJhMWQ1
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVu
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVu
Y3Rpb24uY3BwCkBAIC02NCw3ICs2NCw3IEBAIGNvbnN0IFN0cmluZyBJbnRlcm5hbEZ1bmN0aW9u
OjpkaXNwbGF5TmFtZShFeGVjU3RhdGUqIGV4ZWMpCiAKIENhbGxUeXBlIEludGVybmFsRnVuY3Rp
b246OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJikKIHsKLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBD
YWxsVHlwZU5vbmU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5j
cHAKaW5kZXggNGJhNWNjMmJkNWQxMmFkYjM2MDI3MzJjZjZhY2YyMmQxMTc0YTdiNy4uNjE0NWZm
OThjMDhiZDg0NjM4NzIxMzQyZDA5MDA4MDgxY2JlYjQxYSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTY3NCw3ICs2NzQsNyBAQCB2b2lkIEpTQXJyYXk6
OnB1c2goRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogICAgIH0KICAgICAgICAgCiAg
ICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQogCkBAIC0xMjIzLDcgKzEyMjMsNyBA
QCB2b2lkIEpTQXJyYXk6OnNvcnQoRXhlY1N0YXRlKiBleGVjKQogICAgIH0KICAgICAgICAgCiAg
ICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQogCkBAIC0xNDQwLDcgKzE0NDAsNyBA
QCB2b2lkIEpTQXJyYXk6OnNvcnQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGNvbXBhcmVGdW5j
dGlvbiwgQ2FsbFR5cGUgY2FsbFR5cGUsCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAg
ZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDZWxsLmNwcAppbmRleCA3MWJiM2M0ZjdjZjYxYTRhMmJmNmFkYjQ4MWE1Yzc4ZjU2
OTdhMTIzLi5kYTE0MmU0ZjZhYzJlNTQyNjMyZThiYzUxMjkxOTlhZGE5NWUzMDU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKQEAgLTE3NCwyMyArMTc0LDIzIEBA
IHZvaWQgc2xvd1ZhbGlkYXRlQ2VsbChKU0NlbGwqIGNlbGwpCiAKIEpTVmFsdWUgSlNDZWxsOjpk
ZWZhdWx0VmFsdWUoY29uc3QgSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRp
dmVUeXBlKQogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKIHZvaWQgSlND
ZWxsOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlO
YW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogdm9pZCBKU0NlbGw6Omdl
dE93bk5vbkluZGV4UHJvcGVydHlOYW1lcyhKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5
TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlKQogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIFN0cmluZyBKU0NlbGw6
OmNsYXNzTmFtZShjb25zdCBKU09iamVjdCopCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7
CiB9CiAKQEAgLTIwMSwyOSArMjAxLDI5IEBAIGNvbnN0IGNoYXIqIEpTQ2VsbDo6Y2xhc3NOYW1l
KCkKIAogdm9pZCBKU0NlbGw6OmdldFByb3BlcnR5TmFtZXMoSlNPYmplY3QqLCBFeGVjU3RhdGUq
LCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSkKIHsKLSAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiBib29s
IEpTQ2VsbDo6Y3VzdG9tSGFzSW5zdGFuY2UoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBKU1ZhbHVl
KQogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lkIEpTQ2VsbDo6cHV0RGlyZWN0
VmlydHVhbChKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgdW5z
aWduZWQpCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKIH0KIAogYm9vbCBKU0NlbGw6OmRlZmluZU93blByb3BlcnR5KEpTT2Jq
ZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImLCBib29s
KQogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIEpTQ2VsbDo6Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImKQogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4IDlmOTM1NmVmMTk0Y2FjMjhjZTYzZjli
NWFlNGQ5MWEyZjQ3ZjZkOWQuLjI4MDRkMzlkMTMxNTAxZDE5ZDZiNjEzMzU3MmI1OTI5MDBjYzAx
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBAIC0xNDksMTIgKzE0
OSwxMiBAQCBwcm90ZWN0ZWQ6CiAKICAgICAvLyBEdW1teSBpbXBsZW1lbnRhdGlvbnMgb2Ygb3Zl
cnJpZGUtYWJsZSBzdGF0aWMgZnVuY3Rpb25zIGZvciBjbGFzc2VzIHRvIHB1dCBpbiB0aGVpciBN
ZXRob2RUYWJsZQogICAgIHN0YXRpYyBKU1ZhbHVlIGRlZmF1bHRWYWx1ZShjb25zdCBKU09iamVj
dCosIEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5cGUpOwotICAgIHN0YXRpYyBOT19S
RVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqLCBF
eGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSk7Ci0gICAgc3Rh
dGljIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgZ2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5h
bWVzKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlv
bk1vZGUpOwotICAgIHN0YXRpYyBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIGdldFByb3Bl
cnR5TmFtZXMoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1l
cmF0aW9uTW9kZSk7CisgICAgc3RhdGljIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBnZXRP
d25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkm
LCBFbnVtZXJhdGlvbk1vZGUpOworICAgIHN0YXRpYyBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIHZv
aWQgZ2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJv
cGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOworICAgIHN0YXRpYyBOT19SRVRVUk5f
RFVFX1RPX0NSQVNIIHZvaWQgZ2V0UHJvcGVydHlOYW1lcyhKU09iamVjdCosIEV4ZWNTdGF0ZSos
IFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlKTsKICAgICBzdGF0aWMgU3RyaW5n
IGNsYXNzTmFtZShjb25zdCBKU09iamVjdCopOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyBib29sIGN1c3RvbUhhc0luc3RhbmNlKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNWYWx1ZSk7
Ci0gICAgc3RhdGljIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgcHV0RGlyZWN0VmlydHVh
bChKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgdW5zaWduZWQg
YXR0cmlidXRlcyk7CisgICAgc3RhdGljIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBwdXRE
aXJlY3RWaXJ0dWFsKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVl
LCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKICAgICBzdGF0aWMgYm9vbCBkZWZpbmVPd25Qcm9wZXJ0
eShKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9y
JiwgYm9vbCBzaG91bGRUaHJvdyk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNO
YW1lU2NvcGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOYW1lU2NvcGUu
Y3BwCmluZGV4IDBlZTE5MWE1Y2NmMzkwOTBjZmFmZGNiODRiNTM3MGE5Y2M1NzhkNmIuLjUzNDY4
ZDZhOGYyNDg2MWMzYTUxNzQ3MmM4NTRmMTE5NzBhNzQ1OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU05hbWVTY29wZS5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBK
U05hbWVTY29wZTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lLAogICAgIGlmIChzeW1ib2xUYWJsZVB1dCh0aGlzT2JqZWN0LCBleGVj
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90LmlzU3RyaWN0TW9kZSgpKSkKICAgICAgICAgcmV0
dXJuOwogICAgIAotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiB9CiAKIGJvb2wgSlNOYW1lU2NvcGU6OmdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmNwcAppbmRleCBjOTZiYjk4MjY1OTkzZjVhOGEyMWNhNWE5ZjFlNTI3ZDVkZDFhYTc4Li45MjRi
N2U2YzI4Yjk4MWIzNWIwN2E3Y2RkOWFlZWUzNjE4ZGZmYjA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0zMjgsNyArMzI4LDcgQEAgYm9vbCBKU09i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
ZXhlYywgdW5zaWduZWQKICAgICB9CiAgICAgICAgIAogICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgCkBAIC01MzAsNyArNTMwLDcgQEAgdm9pZCBK
U09iamVjdDo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLAogICAgIH0KICAgICAgICAgCiAgICAgZGVmYXVsdDoKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgfQogICAgIAogICAgIHRoaXNPYmplY3QtPnB1dEJ5SW5kZXhCZXlvbmRWZWN0b3JM
ZW5ndGgoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwpAQCAtMTA2OSw3
ICsxMDY5LDcgQEAgQXJyYXlTdG9yYWdlKiBKU09iamVjdDo6ZW5zdXJlQXJyYXlTdG9yYWdlU2xv
dyhKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiAgICAgICAgIHJldHVybiBjb252ZXJ0Q29udGln
dW91c1RvQXJyYXlTdG9yYWdlKGdsb2JhbERhdGEpOwogICAgICAgICAKICAgICBkZWZhdWx0Ogot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogfQpAQCAtMTMxOCw3ICsxMzE4
LDcgQEAgYm9vbCBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpKQogICAgIH0KICAgICAgICAgCiAgICAgZGVmYXVs
dDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiB9CkBAIC0xNTIx
LDcgKzE1MjEsNyBAQCB2b2lkIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0
KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYQogICAgIH0KICAgICAgICAgCiAg
ICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogICAgIAogICAgIG9iamVjdC0+bWV0aG9k
VGFibGUoKS0+Z2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKG9iamVjdCwgZXhlYywgcHJvcGVy
dHlOYW1lcywgbW9kZSk7CkBAIC0yMDM1LDcgKzIwMzUsNyBAQCB2b2lkIEpTT2JqZWN0OjpwdXRC
eUluZGV4QmV5b25kVmVjdG9yTGVuZ3RoKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNW
YWx1ZQogICAgICAgICBicmVhazsKICAgICAgICAgCiAgICAgZGVmYXVsdDoKLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgfQogfQogCkBAIC0yMTk3LDcgKzIxOTcsNyBAQCBib29sIEpTT2JqZWN0OjpwdXREaXJl
Y3RJbmRleEJleW9uZFZlY3Rvckxlbmd0aChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpT
VgogICAgICAgICByZXR1cm4gcHV0RGlyZWN0SW5kZXhCZXlvbmRWZWN0b3JMZW5ndGhXaXRoQXJy
YXlTdG9yYWdlKGV4ZWMsIGksIHZhbHVlLCBhdHRyaWJ1dGVzLCBtb2RlLCBhcnJheVN0b3JhZ2Uo
KSk7CiAgICAgICAgIAogICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogfQpAQCAtMjQyNiw3ICsyNDI2LDcgQEAgYm9vbCBKU09iamVjdDo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywg
UHJvcGUKICAgICB9CiAgICAgICAgIAogICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmgKaW5kZXggNjdhNTAzMjczNTJkYmQ1ZWQ3MWRmZTQ1YjFjNjdlOWZkNDc5OWNmOS4u
ZjVlYzQzNDcyNzNhOGY5YmU0Y2JlOWVhZjg3OWIzNzM5MWU2NmZlZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0yMDksNyArMjA5LDcgQEAgcHVibGljOgog
ICAgICAgICBjYXNlIEFMTF9BUlJBWV9TVE9SQUdFX0lOREVYSU5HX1RZUEVTOgogICAgICAgICAg
ICAgcmV0dXJuIGkgPCBtX2J1dHRlcmZseS0+YXJyYXlTdG9yYWdlKCktPnZlY3Rvckxlbmd0aCgp
ICYmIG1fYnV0dGVyZmx5LT5hcnJheVN0b3JhZ2UoKS0+bV92ZWN0b3JbaV07CiAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIH0KICAgICB9CkBAIC0yMjUsNyArMjI1LDcgQEAgcHVibGljOgogICAgICAgICBjYXNl
IEFMTF9BUlJBWV9TVE9SQUdFX0lOREVYSU5HX1RZUEVTOgogICAgICAgICAgICAgcmV0dXJuIG1f
YnV0dGVyZmx5LT5hcnJheVN0b3JhZ2UoKS0+bV92ZWN0b3JbaV0uZ2V0KCk7CiAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgp
OwogICAgICAgICB9CiAgICAgfQpAQCAtMjU0LDcgKzI1NCw3IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgICAgICByZXR1cm4gbV9idXR0ZXJmbHktPmFycmF5U3RvcmFnZSgpLT5tX3ZlY3RvcltpXS5n
ZXQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIEpT
VmFsdWUoKTsKQEAgLTI5NCw3ICsyOTQsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4g
aSA8IG1fYnV0dGVyZmx5LT5hcnJheVN0b3JhZ2UoKS0+dmVjdG9yTGVuZ3RoKCkKICAgICAgICAg
ICAgICAgICAmJiAhIW1fYnV0dGVyZmx5LT5hcnJheVN0b3JhZ2UoKS0+bV92ZWN0b3JbaV07CiAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIH0KICAgICB9CkBAIC0zMTEsNyArMzExLDcgQEAgcHVibGljOgogICAg
ICAgICBjYXNlIEFMTF9BUlJBWV9TVE9SQUdFX0lOREVYSU5HX1RZUEVTOgogICAgICAgICAgICAg
cmV0dXJuIGkgPCBtX2J1dHRlcmZseS0+dmVjdG9yTGVuZ3RoKCk7CiAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IH0KICAgICB9CkBAIC0zNjMsNyArMzYzLDcgQEAgcHVibGljOgogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgfQogICAgIH0KICAgICAgICAgCkBAIC00MTIsNyArNDEyLDcgQEAgcHVibGljOgogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgfQogICAgIH0KICAgICAgICAgCkBAIC00MjgsNyArNDI4LDcgQEAgcHVi
bGljOgogICAgICAgICBjYXNlIEFMTF9BUlJBWV9TVE9SQUdFX0lOREVYSU5HX1RZUEVTOgogICAg
ICAgICAgICAgcmV0dXJuIG1fYnV0dGVyZmx5LT5hcnJheVN0b3JhZ2UoKS0+bV9zcGFyc2VNYXA7
CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CkBAIC00NDUsNyArNDQ1LDcgQEAgcHVibGljOgog
ICAgICAgICBjYXNlIEFMTF9BUlJBWV9TVE9SQUdFX0lOREVYSU5HX1RZUEVTOgogICAgICAgICAg
ICAgcmV0dXJuIG1fYnV0dGVyZmx5LT5hcnJheVN0b3JhZ2UoKS0+aW5TcGFyc2VNb2RlKCk7CiAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1Njb3BlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U2NvcGUuY3BwCmluZGV4IGI5YzdiMmEyNWJkNTJlZGEzOTRjZWQ2YTM3MDE0M2U0ZjU4YTg1YzUu
LmQ5Y2MyODg3N2IyZGI2NTk2MjA2MDg5YjI2ZDQ0MGY0OWEzMTI3MzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTU2NvcGUuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIGJvb2wgSlNT
Y29wZTo6aXNEeW5hbWljU2NvcGUoYm9vbCYgcmVxdWlyZXNEeW5hbWljQ2hlY2tzKSBjb25zdAog
ICAgIGNhc2UgTmFtZVNjb3BlT2JqZWN0VHlwZToKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PGNvbnN0IEpTTmFtZVNjb3BlKj4odGhpcyktPmlzRHluYW1pY1Njb3BlKHJlcXVpcmVzRHluYW1p
Y0NoZWNrcyk7CiAgICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTeW1ib2xU
YWJsZU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5bWJvbFRh
YmxlT2JqZWN0LmNwcAppbmRleCBiNjQxYzU4YjRjNDNmNjY5NTgxMjM2ODA2ZGRhMjAzNGUzMDUy
Y2I0Li4xNmIyMGQ5ZGIxNzBmOGNhYjJkYzZiYTAzYTVjNzI4NmYyMjBlMTFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5bWJvbFRhYmxlT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5bWJvbFRhYmxlT2JqZWN0LmNw
cApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIEpTU3ltYm9sVGFibGVPYmplY3Q6OmdldE93bk5vbklu
ZGV4UHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdAogCiB2b2lkIEpTU3lt
Ym9sVGFibGVPYmplY3Q6OnB1dERpcmVjdFZpcnR1YWwoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQ
cm9wZXJ0eU5hbWUsIEpTVmFsdWUsIHVuc2lnbmVkKQogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTeW1i
b2xUYWJsZU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTeW1ib2xU
YWJsZU9iamVjdC5oCmluZGV4IDkxMzY3OWY4MGM3MmJjY2QxYzg4NjE3M2NkMTJmODkzM2VhZGQ3
MGIuLjE5MGJlMjYwNGZlZDU4Y2M5NDNiNWJhMWQzMjNiNjAyZGNiMDRlY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5bWJvbFRhYmxlT2JqZWN0LmgKQEAg
LTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIAogICAgIFNoYXJlZFN5bWJvbFRhYmxlKiBzeW1i
b2xUYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3ltYm9sVGFibGUuZ2V0KCk7IH0KICAgICAKLSAg
ICBzdGF0aWMgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBwdXREaXJlY3RWaXJ0dWFsKEpT
T2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRy
aWJ1dGVzKTsKKyAgICBzdGF0aWMgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCB2b2lkIHB1dERpcmVj
dFZpcnR1YWwoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIHVu
c2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBi
b29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSk7CiAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgZ2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5h
bWVzKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlv
bk1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJh
bFBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2Vy
LmNwcAppbmRleCBmYjc2N2FiYzcxOTc4Y2U0N2I0M2I4N2NhZTNjZDJmMjg4ZWM5ZjEzLi4zNDM1
ZmExYTQxMzMxZjNlYjc1MTYxMDgyYWM3NWQzMDdlMDYzMWZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcApAQCAtODE1LDcgKzgxNSw3IEBA
IEpTVmFsdWUgTGl0ZXJhbFBhcnNlcjxDaGFyVHlwZT46OnBhcnNlKFBhcnNlclN0YXRlIGluaXRp
YWxTdGF0ZSkKICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICB9CiAgICAgICAgIGlmIChzdGF0ZVN0YWNrLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJl
dHVybiBsYXN0VmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcApp
bmRleCBkNWQ0ZWFiN2IzNDc3NmQwMzYyZWRmZWIxMzI2YWIxNjBlMjY5M2ZjLi43Njg2OTNhMjU5
ZGU3MTExZDBmMmM0NzZkYzNjMmU0NjJlZDRjYjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cC5jcHAKQEAgLTI2Niw3ICsyNjYsNyBAQCB2b2lkIFJlZ0V4cDo6Y29tcGls
ZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFlhcnI6OllhcnJDaGFyU2l6ZSBjaGFyU2l6ZSkK
IHsKICAgICBZYXJyOjpZYXJyUGF0dGVybiBwYXR0ZXJuKG1fcGF0dGVyblN0cmluZywgaWdub3Jl
Q2FzZSgpLCBtdWx0aWxpbmUoKSwgJm1fY29uc3RydWN0aW9uRXJyb3IpOwogICAgIGlmIChtX2Nv
bnN0cnVjdGlvbkVycm9yKSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBtX3N0YXRlID0gUGFyc2VF
cnJvcjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTM4OCw3ICszODgsNyBAQCB2b2lkIFJl
Z0V4cDo6Y29tcGlsZU1hdGNoT25seShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFlhcnI6Ollh
cnJDaGFyU2l6ZSBjaGFyUwogewogICAgIFlhcnI6OllhcnJQYXR0ZXJuIHBhdHRlcm4obV9wYXR0
ZXJuU3RyaW5nLCBpZ25vcmVDYXNlKCksIG11bHRpbGluZSgpLCAmbV9jb25zdHJ1Y3Rpb25FcnJv
cik7CiAgICAgaWYgKG1fY29uc3RydWN0aW9uRXJyb3IpIHsKLSAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IG1fc3RhdGUgPSBQYXJzZUVycm9yOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlVHJhbnNpdGlvblRhYmxl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVUcmFuc2l0aW9uVGFi
bGUuaAppbmRleCA2NTdhODlkMGFkZjgzOTNjMWFhNWM0YWVkYjIyMDk4NzM3NjgwMjkwLi43MDZm
YzVmNmQ0NzI4OGM2ZjQxMGFhZjgyNWVjNTk2ZTU1MmI4NWY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaApA
QCAtODUsNyArODUsNyBAQCBpbmxpbmUgSW5kZXhpbmdUeXBlIG5ld0luZGV4aW5nVHlwZShJbmRl
eGluZ1R5cGUgb2xkVHlwZSwgTm9uUHJvcGVydHlUcmFuc2l0aW9uCiAgICAgY2FzZSBBZGRJbmRl
eGVkQWNjZXNzb3JzOgogICAgICAgICByZXR1cm4gb2xkVHlwZSB8IE1heUhhdmVJbmRleGVkQWNj
ZXNzb3JzOwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gb2xkVHlw
ZTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29k
ZVByb2ZpbGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxlLmNw
cAppbmRleCBiM2M0ZmY0NDgwY2M0MjI4OWQzMDIwODMwOGRjZTQyMjhhZDg4MmUxLi5kZTg2ZTUy
ZWZiNmVlYjNlYzJkYmYzNTUxZTFmNGM0MjEzNzg5ZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvQ29kZVByb2ZpbGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90b29scy9Db2RlUHJvZmlsZS5jcHAKQEAgLTEzMyw3ICsxMzMsNyBAQCB2b2lkIENvZGVQ
cm9maWxlOjpzYW1wbGUodm9pZCogcGMsIHZvaWQqKiBmcmFtZVBvaW50ZXIpCiAgICAgICAgIGZy
YW1lUG9pbnRlciA9IDA7CiAjZWxzZQogICAgICAgICAvLyBUaGlzIHBsYXRmb3JtIGlzIG5vdCB5
ZXQgc3VwcG9ydGVkIQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICNlbmRpZgogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckNhbm9uaWNhbGl6ZVVDUzIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJDYW5vbmljYWxpemVVQ1MyLmgKaW5kZXggYmUwZWFk
NDNkMmY0YzQ2YjA4ZDYxZTdiMTNkYjVmMmVmYmZkZjIzZi4uOWRjZTc4MjAwY2E2NDhlM2RjZjQ5
MjgwODVkNmFlNzhmNDM3NTM3NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyckNhbm9uaWNhbGl6ZVVDUzIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFy
ci9ZYXJyQ2Fub25pY2FsaXplVUNTMi5oCkBAIC05Myw5ICs5Myw5IEBAIGlubGluZSBVQ2hhciBn
ZXRDYW5vbmljYWxQYWlyKFVDUzJDYW5vbmljYWxpemF0aW9uUmFuZ2UqIGluZm8sIFVDaGFyIGNo
KQogICAgIGNhc2UgQ2Fub25pY2FsaXplQWx0ZXJuYXRpbmdVbmFsaWduZWQ6CiAgICAgICAgIHJl
dHVybiAoKGNoIC0gMSkgXiAxKSArIDE7CiAgICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
fQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTEyOSw3ICsxMjksNyBAQCBpbmxpbmUgYm9v
bCBhcmVDYW5vbmljYWxseUVxdWl2YWxlbnQoVUNoYXIgYSwgVUNoYXIgYikKICAgICAgICAgcmV0
dXJuICgoYSAtIDEpIHwgMSkgPT0gKChiIC0gMSkgfCAxKTsKICAgICB9CiAKLSAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJl
dHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIv
WWFyckludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJJbnRl
cnByZXRlci5jcHAKaW5kZXggMWQ3ZGU1NGJlMTE2NGU2MjcxOTA2NDM2YTliMGUwZmI5MmEzYzNl
ZS4uNTQ3MDIyZjM0MTA0ZmU2NTUxNDBkNTBiOWE1MDhkMTM2YzMwODgzOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckludGVycHJldGVyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySW50ZXJwcmV0ZXIuY3BwCkBAIC00ODAsNyArNDgw
LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAotICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNTYyLDcgKzU2Miw3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKLSAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTc5Niw3ICs3OTYsNyBA
QCBwdWJsaWM6CiAgICAgewogICAgICAgICAvLyAnVGVybWluYWwnIHBhcmVudGhlc2VzIGFyZSBh
dCB0aGUgZW5kIG9mIHRoZSByZWdleCwgYW5kIGFzIHN1Y2ggYSBtYXRjaCBwYXN0IGVuZAogICAg
ICAgICAvLyBzaG91bGQgYWx3YXlzIGJlIHJldHVybmVkIGFzIGEgc3VjY2Vzc2Z1bCBtYXRjaCAt
IHdlIHNob3VsZCBuZXZlciBiYWNrdHJhY2sgdG8gaGVyZS4KLSAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTkyMiw3ICs5MjIsNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICByZXR1cm4gSlNSZWdFeHBNYXRjaDsKICAgICAgICAgfQogCi0gICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm4gSlNSZWdFeHBFcnJvck5vTWF0Y2g7CiAgICAgfQogCkBAIC0xMDYyLDcg
KzEwNjIsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm4gSlNSZWdFeHBFcnJvck5vTWF0Y2g7CiAgICAgfQogCkBAIC0xMjY4LDcg
KzEyNjgsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KIAogICAgICAgICAvLyBXZSBzaG91bGQgbmV2
ZXIgZmFsbC10aHJvdWdoIHRvIGhlcmUuCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogCiAgICAgYmFja3RyYWNrOgog
ICAgICAgICBBU1NFUlQoY29udGV4dC0+dGVybSA8IHN0YXRpY19jYXN0PGludD4oZGlzanVuY3Rp
b24tPnRlcm1zLnNpemUoKSkpOwpAQCAtMTI3Nyw3ICsxMjc3LDcgQEAgcHVibGljOgogICAgICAg
ICBjYXNlIEJ5dGVUZXJtOjpUeXBlU3VicGF0dGVybkJlZ2luOgogICAgICAgICAgICAgcmV0dXJu
IEpTUmVnRXhwTm9NYXRjaDsKICAgICAgICAgY2FzZSBCeXRlVGVybTo6VHlwZVN1YnBhdHRlcm5F
bmQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAKICAgICAgICAgY2FzZSBCeXRlVGVybTo6VHlwZUJv
ZHlBbHRlcm5hdGl2ZUJlZ2luOgogICAgICAgICBjYXNlIEJ5dGVUZXJtOjpUeXBlQm9keUFsdGVy
bmF0aXZlRGlzanVuY3Rpb246IHsKQEAgLTEyOTksNyArMTI5OSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIE1BVENIX05FWFQoKTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEJ5dGVUZXJtOjpU
eXBlQm9keUFsdGVybmF0aXZlRW5kOgotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogCiAgICAgICAgIGNh
c2UgQnl0ZVRlcm06OlR5cGVBbHRlcm5hdGl2ZUJlZ2luOgogICAgICAgICBjYXNlIEJ5dGVUZXJt
OjpUeXBlQWx0ZXJuYXRpdmVEaXNqdW5jdGlvbjogewpAQCAtMTM4OCwxMCArMTM4OCwxMCBAQCBw
dWJsaWM6CiAgICAgICAgICAgICBCQUNLVFJBQ0soKTsKIAogICAgICAgICBjYXNlIEJ5dGVUZXJt
OjpUeXBlRG90U3RhckVuY2xvc3VyZToKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQog
Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gSlNSZWdFeHBFcnJvck5vTWF0Y2g7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCmluZGV4IGExYzBhYThkMDlk
YTgxMWMyZWRlNjNmMWZjYjlkMjJmZDJhMWY1MWIuLmMwMTljOWFhOTIwNGQzYWJlZjA3ZDgwZDZj
YjQ1NDlhMTJkMzA1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCkBA
IC0xMjU1LDcgKzEyNTUsNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHJpdmF0ZSBNYWNyb0Fz
c2VtYmxlciB7CiAKICAgICAgICAgY2FzZSBQYXR0ZXJuVGVybTo6VHlwZVBhcmVudGhlc2VzU3Vi
cGF0dGVybjoKICAgICAgICAgY2FzZSBQYXR0ZXJuVGVybTo6VHlwZVBhcmVudGhldGljYWxBc3Nl
cnRpb246Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGNhc2UgUGF0dGVyblRlcm06OlR5
cGVCYWNrUmVmZXJlbmNlOgogICAgICAgICAgICAgbV9zaG91bGRGYWxsQmFjayA9IHRydWU7CiAg
ICAgICAgICAgICBicmVhazsKQEAgLTEzMjEsNyArMTMyMSw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0
b3IgOiBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKIAogICAgICAgICBjYXNlIFBhdHRlcm5UZXJt
OjpUeXBlUGFyZW50aGVzZXNTdWJwYXR0ZXJuOgogICAgICAgICBjYXNlIFBhdHRlcm5UZXJtOjpU
eXBlUGFyZW50aGV0aWNhbEFzc2VydGlvbjoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIAogICAgICAg
ICBjYXNlIFBhdHRlcm5UZXJtOjpUeXBlRG90U3RhckVuY2xvc3VyZToKICAgICAgICAgICAgIGJh
Y2t0cmFja0RvdFN0YXJFbmNsb3N1cmUob3BJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFy
ci9ZYXJyUGFyc2VyLmgKaW5kZXggNGJhYjFhMDkwM2Q5NTNhMTJhMTExNTE1ODBjNGNhODVmNWMx
OTZmOS4uOGM1ZDcxYjVmZTRlNDcwZGI3MDA2OWQ2N2Y4M2RkYWFmMmJjZDQ2ZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaApAQCAtMjEyLDggKzIxMiw4IEBAIHByaXZh
dGU6CiAKICAgICAgICAgLy8gcGFyc2VFc2NhcGUoKSBzaG91bGQgbmV2ZXIgY2FsbCB0aGVzZSBk
ZWxlZ2F0ZSBtZXRob2RzIHdoZW4KICAgICAgICAgLy8gaW52b2tlZCB3aXRoIGluQ2hhcmFjdGVy
Q2xhc3Mgc2V0LgotICAgICAgICBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIGFzc2VydGlv
bldvcmRCb3VuZGFyeShib29sKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgICAgIE5P
X1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgYXRvbUJhY2tSZWZlcmVuY2UodW5zaWduZWQpIHsg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICAgICAgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQg
dm9pZCBhc3NlcnRpb25Xb3JkQm91bmRhcnkoYm9vbCkgeyBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOyB9CisgICAgICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgYXRvbUJhY2tS
ZWZlcmVuY2UodW5zaWduZWQpIHsgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgRGVsZWdhdGUmIG1fZGVsZWdhdGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGF0dGVybi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJyUGF0dGVybi5jcHAKaW5kZXggYzk1M2EzOGQyZjRmMWFlMmUzMTc1
YWMxNmVmYmQzYzZmZjFkOWRmYy4uZTM1OWU3NjI3MThlMjY3MjZkYjMzMGM2M2ViYmU2OGQwZDll
OTRlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXR0ZXJuLmNwcApAQCAt
MzgzLDcgKzM4Myw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAKICAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogICAgIH0KIAo=
</data>
<flag name="review"
          id="203009"
          type_id="1"
          status="+"
          setter="mhahnenberg"
    />
          </attachment>
      

    </bug>

</bugzilla>