<?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>140063</bug_id>
          
          <creation_ts>2015-01-04 18:42:26 -0800</creation_ts>
          <short_desc>Modernize the HTMLElement factory</short_desc>
          <delta_ts>2015-01-06 14:32:48 -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>DOM</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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1058628</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-01-04 18:42:26 -0800</bug_when>
    <thetext>Modernize the HTMLElement factory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058639</commentid>
    <comment_count>1</comment_count>
      <attachid>243955</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-01-04 19:47:39 -0800</bug_when>
    <thetext>Created attachment 243955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058640</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-04 19:48:25 -0800</bug_when>
    <thetext>Attachment 243955 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:11:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Total errors found: 1 in 144 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058656</commentid>
    <comment_count>3</comment_count>
      <attachid>243955</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-01-04 21:14:13 -0800</bug_when>
    <thetext>Comment on attachment 243955
Patch

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

&gt; Source/WebCore/dom/make_names.pl:384
&gt; +    my $smartPointerType = ($parameters{namespace} eq &quot;HTML&quot;) ? &quot;Ref&quot; : &quot;PassRefPtr&quot;;

I’d rather you listed the legacy namespaces that still need PassRefPtr and made HTML the normal one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058658</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-01-04 21:50:32 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 243955 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=243955&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/make_names.pl:384
&gt; &gt; +    my $smartPointerType = ($parameters{namespace} eq &quot;HTML&quot;) ? &quot;Ref&quot; : &quot;PassRefPtr&quot;;
&gt; 
&gt; I’d rather you listed the legacy namespaces that still need PassRefPtr and
&gt; made HTML the normal one.

Good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058661</commentid>
    <comment_count>5</comment_count>
      <attachid>243964</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-01-04 22:27:11 -0800</bug_when>
    <thetext>Created attachment 243964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058662</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-04 22:29:27 -0800</bug_when>
    <thetext>Attachment 243964 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:11:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Total errors found: 1 in 146 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058663</commentid>
    <comment_count>7</comment_count>
      <attachid>243964</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-01-04 22:30:55 -0800</bug_when>
    <thetext>Comment on attachment 243964
Patch

Seems like later we should make the generator smart, and have it only pass the tagName if the same class is used for more than one tag. Then we can get rid of many extra create functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058664</commentid>
    <comment_count>8</comment_count>
      <attachid>243964</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-01-04 22:31:42 -0800</bug_when>
    <thetext>Comment on attachment 243964
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        * Files elided *

I wouldn’t have done that (by the way), but I guess it’s OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058749</commentid>
    <comment_count>9</comment_count>
      <attachid>243964</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-05 11:40:36 -0800</bug_when>
    <thetext>Comment on attachment 243964
Patch

Rejecting attachment 243964 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 243964, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
/html/HTMLUnknownElement.h
patching file Source/WebCore/html/HTMLVideoElement.cpp
patching file Source/WebCore/html/HTMLVideoElement.h
patching file Source/WebCore/html/HTMLWBRElement.cpp
patching file Source/WebCore/html/HTMLWBRElement.h
patching file Source/WebCore/mathml/MathMLElement.cpp
patching file Source/WebCore/mathml/MathMLElement.h

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Darin Adler&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/6306838249209856</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059166</commentid>
    <comment_count>10</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-01-06 14:32:48 -0800</bug_when>
    <thetext>Committed r177996: &lt;http://trac.webkit.org/changeset/177996&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243955</attachid>
            <date>2015-01-04 19:47:39 -0800</date>
            <delta_ts>2015-01-04 22:27:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140063-20150104194742.patch</filename>
            <type>text/plain</type>
            <size>110696</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3Nzg4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE1LTAxLTA0ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW9kZXJuaXplIHRoZSBIVE1MRWxlbWVu
dCBmYWN0b3J5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDAwNjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYWtlIHRoZSBIVE1MRWxlbWVudCAoYW5kIGRlcml2ZWQgY2xhc3NlcykgY3JlYXRlIGZ1bmN0
aW9ucyAKKyAgICAgICAgYW5kIEhUTUxFbGVtZW50RmFjdG9yeSByZXR1cm4gUmVmcyByYXRoZXIg
dGhhbiBSZWZQdHIvUGFzc1JlZlB0ci4KKworICAgICAgICAqIEZpbGVzIGVsaWRlZCAqCisKIDIw
MTUtMDEtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vZGVy
bml6ZSBhbmQgdGlnaHRlbiB1cCBIVE1MRG9jdW1lbnRQYXJzZXIKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9tYWtlX25hbWVzLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9t
YWtlX25hbWVzLnBsCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vbWFr
ZV9uYW1lcy5wbAkod29ya2luZyBjb3B5KQpAQCAtMzgxLDcgKzM4MSw5IEBAIHN1YiBwcmludENv
bnN0cnVjdG9yU2lnbmF0dXJlCiB7CiAgICAgbXkgKCRGLCAkdGFnTmFtZSwgJGNvbnN0cnVjdG9y
TmFtZSwgJGNvbnN0cnVjdG9yVGFnTmFtZSkgPSBAXzsKIAotICAgIHByaW50IEYgInN0YXRpYyBQ
YXNzUmVmUHRyPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiAke2NvbnN0cnVjdG9yTmFt
ZX1Db25zdHJ1Y3Rvcihjb25zdCBRdWFsaWZpZWROYW1lJiAkY29uc3RydWN0b3JUYWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQiOworICAgIG15ICRzbWFydFBvaW50ZXJUeXBlID0gKCRwYXJhbWV0
ZXJze25hbWVzcGFjZX0gZXEgIkhUTUwiKSA/ICJSZWYiIDogIlBhc3NSZWZQdHIiOworCisgICAg
cHJpbnQgRiAic3RhdGljICRzbWFydFBvaW50ZXJUeXBlPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1F
bGVtZW50PiAke2NvbnN0cnVjdG9yTmFtZX1Db25zdHJ1Y3Rvcihjb25zdCBRdWFsaWZpZWROYW1l
JiAkY29uc3RydWN0b3JUYWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQiOwogICAgIGlmICgkcGFy
YW1ldGVyc3tuYW1lc3BhY2V9IGVxICJIVE1MIikgewogICAgICAgICBwcmludCBGICIsIEhUTUxG
b3JtRWxlbWVudCoiOwogICAgICAgICBwcmludCBGICIgZm9ybUVsZW1lbnQiIGlmICRlbmFibGVk
VGFnc3skdGFnTmFtZX17Y29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50fTsKQEAgLTQwNyw3ICs0
MDksNyBAQCBzdWIgcHJpbnRDb25zdHJ1Y3RvckludGVyaW9yCiAgICAgICAgIHByaW50IEYgPDxF
TkQKICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudC5zZXR0aW5ncygpOwogICAgIGlm
ICghTWVkaWFQbGF5ZXI6OmlzQXZhaWxhYmxlKCkgfHwgKHNldHRpbmdzICYmICFzZXR0aW5ncy0+
bWVkaWFFbmFibGVkKCkpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuICRwYXJh
bWV0ZXJze2ZhbGxiYWNrSW50ZXJmYWNlTmFtZX06OmNyZWF0ZSgkY29uc3RydWN0b3JUYWdOYW1l
LCBkb2N1bWVudCk7CiAgICAgCiBFTkQKIDsKQEAgLTkyMyw2ICs5MjUsOCBAQCBzdWIgcHJpbnRG
YWN0b3J5Q3BwRmlsZQogICAgICRmb3JtRWxlbWVudEFyZ3VtZW50Rm9yRGVjbGFyYXRpb24gPSAi
LCBIVE1MRm9ybUVsZW1lbnQqIiBpZiAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9IGVxICJIVE1MIjsK
ICAgICAkZm9ybUVsZW1lbnRBcmd1bWVudEZvckRlZmluaXRpb24gPSAiLCBIVE1MRm9ybUVsZW1l
bnQqIGZvcm1FbGVtZW50IiBpZiAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9IGVxICJIVE1MIjsKIAor
ICAgIG15ICRzbWFydFBvaW50ZXJUeXBlID0gKCRwYXJhbWV0ZXJze25hbWVzcGFjZX0gZXEgIkhU
TUwiKSA/ICJSZWYiIDogIlBhc3NSZWZQdHIiOworCiAgICAgcHJpbnRMaWNlbnNlSGVhZGVyKCRG
KTsKIAogICAgIHByaW50IEYgPDxFTkQKQEAgLTk1NSw3ICs5NTksNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9TmFtZXM7CiAK
LXR5cGVkZWYgUGFzc1JlZlB0cjwkcGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxlbWVudD4gKCokcGFy
YW1ldGVyc3tuYW1lc3BhY2V9Q29uc3RydWN0b3JGdW5jdGlvbikoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50JiRmb3JtRWxlbWVudEFyZ3VtZW50Rm9yRGVjbGFyYXRpb24sIGJvb2wgY3Jl
YXRlZEJ5UGFyc2VyKTsKK3R5cGVkZWYgJHNtYXJ0UG9pbnRlclR5cGU8JHBhcmFtZXRlcnN7bmFt
ZXNwYWNlfUVsZW1lbnQ+ICgqJHBhcmFtZXRlcnN7bmFtZXNwYWNlfUNvbnN0cnVjdG9yRnVuY3Rp
b24pKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYkZm9ybUVsZW1lbnRBcmd1bWVudEZv
ckRlY2xhcmF0aW9uLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKIEVORAogICAgIDsKQEAgLTk4
NSw3ICs5ODksNyBAQCBFTkQKICAgICAgICAgbWFwLmFkZCh0YWJsZVtpXS5uYW1lLmxvY2FsTmFt
ZSgpLmltcGwoKSwgdGFibGVbaV0uZnVuY3Rpb24pOwogfQogCi1QYXNzUmVmUHRyPCRwYXJhbWV0
ZXJze25hbWVzcGFjZX1FbGVtZW50PiAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxlbWVudEZhY3Rv
cnk6OmNyZWF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50JGZvcm1FbGVtZW50QXJndW1lbnRGb3JEZWZpbml0aW9uLCBib29sIGNyZWF0ZWRCeVBh
cnNlcikKKyRzbWFydFBvaW50ZXJUeXBlPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiAk
cGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxlbWVudEZhY3Rvcnk6OmNyZWF0ZUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50JGZvcm1FbGVtZW50QXJndW1l
bnRGb3JEZWZpbml0aW9uLCBib29sIGNyZWF0ZWRCeVBhcnNlcikKIHsKIEVORAogICAgIDsKQEAg
LTEwMTAsMTUgKzEwMTQsMTQgQEAgRU5ECiAgICAgOwogCiAgICAgaWYgKCRwYXJhbWV0ZXJze25h
bWVzcGFjZX0gZXEgIkhUTUwiKSB7Ci0gICAgICAgIHByaW50IEYgIiAgICAgICAgaWYgKFJlZlB0
cjwkcGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxlbWVudD4gZWxlbWVudCA9IGZ1bmN0aW9uKG5hbWUs
IGRvY3VtZW50LCBmb3JtRWxlbWVudCwgY3JlYXRlZEJ5UGFyc2VyKSlcbiI7Ci0gICAgICAgIHBy
aW50IEYgIiAgICAgICAgICAgIHJldHVybiBlbGVtZW50LnJlbGVhc2UoKTtcbiI7CisgICAgICAg
IHByaW50IEYgIiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG5hbWUsIGRvY3VtZW50LCBmb3JtRWxl
bWVudCwgY3JlYXRlZEJ5UGFyc2VyKTtcbiI7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcHJpbnQg
RiAiICAgICAgICBpZiAoUmVmUHRyPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiBlbGVt
ZW50ID0gZnVuY3Rpb24obmFtZSwgZG9jdW1lbnQsIGNyZWF0ZWRCeVBhcnNlcikpXG4iOwogICAg
ICAgICBwcmludCBGICIgICAgICAgICAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7XG4iOwog
ICAgIH0KIAotICAgIHByaW50IEYgIiAgIH1cbiI7Ci0gICAgcHJpbnQgRiAiICAgcmV0dXJuICRw
YXJhbWV0ZXJze2ZhbGxiYWNrSW50ZXJmYWNlTmFtZX06OmNyZWF0ZShuYW1lLCBkb2N1bWVudCk7
XG4iOworICAgIHByaW50IEYgIiAgICB9XG4iOworICAgIHByaW50IEYgIiAgICByZXR1cm4gJHBh
cmFtZXRlcnN7ZmFsbGJhY2tJbnRlcmZhY2VOYW1lfTo6Y3JlYXRlKG5hbWUsIGRvY3VtZW50KTtc
biI7CiAKICAgICBwcmludCBGIDw8RU5ECiB9CkBAIC0xMDM5LDYgKzEwNDIsOCBAQCBzdWIgcHJp
bnRGYWN0b3J5SGVhZGVyRmlsZQogICAgIG15ICRGOwogICAgIG9wZW4gRiwgIj4kaGVhZGVyUGF0
aCI7CiAKKyAgICBteSAkc21hcnRQb2ludGVyVHlwZSA9ICgkcGFyYW1ldGVyc3tuYW1lc3BhY2V9
IGVxICJIVE1MIikgPyAiUmVmIiA6ICJQYXNzUmVmUHRyIjsKKwogICAgIHByaW50TGljZW5zZUhl
YWRlcigkRik7CiAKICAgICBwcmludCBGPDxFTkQKQEAgLTEwNjAsNyArMTA2NSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIEVORAogOwogCi1wcmludCBGICIgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiBjcmVhdGVFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYiOworcHJpbnQgRiAiICAgICAgICBzdGF0aWMgJHNtYXJ0
UG9pbnRlclR5cGU8JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiI7CiBwcmludCBGICIsIEhUTUxGb3JtRWxl
bWVudCogPSBudWxscHRyIiBpZiAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9IGVxICJIVE1MIjsKIHBy
aW50IEYgIiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIgPSBmYWxzZSk7XG4iOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291
cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5
NSwxMiArODk1LDEyIEBAIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZUxpc3RJdGVtRWwK
ICAgICByZXR1cm4gSFRNTExJRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIH0KIAotUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlSFRNTEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKQorUmVmPEhUTUxFbGVtZW50PiBjcmVhdGVIVE1MRWxl
bWVudChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpCiB7CiAg
ICAgcmV0dXJuIEhUTUxFbGVtZW50RmFjdG9yeTo6Y3JlYXRlRWxlbWVudChuYW1lLCBkb2N1bWVu
dCk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZUhUTUxFbGVtZW50KERvY3Vt
ZW50JiBkb2N1bWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiB0YWdOYW1lKQorUmVmPEhUTUxFbGVt
ZW50PiBjcmVhdGVIVE1MRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEF0b21pY1N0
cmluZyYgdGFnTmFtZSkKIHsKICAgICByZXR1cm4gY3JlYXRlSFRNTEVsZW1lbnQoZG9jdW1lbnQs
IFF1YWxpZmllZE5hbWUobnVsbEF0b20sIHRhZ05hbWUsIHhodG1sTmFtZXNwYWNlVVJJKSk7CiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oCShyZXZpc2lvbiAxNzc4NzUp
CisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJKHdvcmtpbmcgY29weSkK
QEAgLTIwNCw4ICsyMDQsOCBAQCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVCcmVha0Vs
ZW1lCiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVPcmRlcmVkTGlzdEVsZW1lbnQoRG9j
dW1lbnQmKTsKIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZVVub3JkZXJlZExpc3RFbGVt
ZW50KERvY3VtZW50Jik7CiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVMaXN0SXRlbUVs
ZW1lbnQoRG9jdW1lbnQmKTsKLVBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZUhUTUxFbGVt
ZW50KERvY3VtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gY3JlYXRlSFRNTEVsZW1lbnQoRG9jdW1lbnQmLCBjb25zdCBBdG9taWNTdHJpbmcmKTsK
K1JlZjxIVE1MRWxlbWVudD4gY3JlYXRlSFRNTEVsZW1lbnQoRG9jdW1lbnQmLCBjb25zdCBRdWFs
aWZpZWROYW1lJik7CitSZWY8SFRNTEVsZW1lbnQ+IGNyZWF0ZUhUTUxFbGVtZW50KERvY3VtZW50
JiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAKIEhUTUxFbGVtZW50KiBlbmNsb3NpbmdMaXN0KE5v
ZGUqKTsKIEhUTUxFbGVtZW50KiBvdXRlcm1vc3RFbmNsb3NpbmdMaXN0KE5vZGUqLCBOb2RlKiBy
b290TGlzdCA9IDApOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MywxNCArNjMsMTQgQEAgSFRNTEFuY2hv
ckVsZW1lbnQ6OkhUTUxBbmNob3JFbGVtZW50KGNvbgogewogfQogCi1SZWZQdHI8SFRNTEFuY2hv
ckVsZW1lbnQ+IEhUTUxBbmNob3JFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQor
UmVmPEhUTUxBbmNob3JFbGVtZW50PiBIVE1MQW5jaG9yRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxBbmNob3JFbGVtZW50
KGFUYWcsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTEFuY2hvckVs
ZW1lbnQoYVRhZywgZG9jdW1lbnQpKTsKIH0KIAotUmVmUHRyPEhUTUxBbmNob3JFbGVtZW50PiBI
VE1MQW5jaG9yRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MQW5jaG9yRWxlbWVudD4gSFRNTEFuY2hvckVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1l
bnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MQW5jaG9yRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxBbmNob3JFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIEhUTUxBbmNob3JFbGVtZW50Ojp+SFRNTEFuY2hv
ckVsZW1lbnQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAko
cmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw4ICs1Nyw4IEBAIGVudW0gewogCiBjbGFzcyBIVE1M
QW5jaG9yRWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZlB0cjxIVE1MQW5jaG9yRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7Ci0gICAgc3RhdGlj
IFJlZlB0cjxIVE1MQW5jaG9yRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTEFuY2hvckVsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTEFuY2hvckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgfkhUTUxBbmNob3JFbGVt
ZW50KCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3Bw
CShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsOSArNDgsOSBAQCBIVE1MQXBwbGV0RWxlbWVu
dDo6SFRNTEFwcGxldEVsZW1lbnQoY29uCiAgICAgbV9zZXJ2aWNlVHlwZSA9ICJhcHBsaWNhdGlv
bi94LWphdmEtYXBwbGV0IjsKIH0KIAotUmVmUHRyPEhUTUxBcHBsZXRFbGVtZW50PiBIVE1MQXBw
bGV0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCitSZWY8SFRNTEFwcGxldEVsZW1lbnQ+
IEhUTUxBcHBsZXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEhUTUxBcHBsZXRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBjcmVhdGVk
QnlQYXJzZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MQXBwbGV0RWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKSk7CiB9CiAKIHZvaWQgSFRNTEFwcGxl
dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21pY1N0cmluZyYgdmFsdWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBs
ZXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0
RWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
cHBsZXRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBIVE1MQXBwbGV0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxBcHBs
ZXRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBj
cmVhdGVkQnlQYXJzZXIpOworICAgIHN0YXRpYyBSZWY8SFRNTEFwcGxldEVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7
CiAKIHByaXZhdGU6CiAgICAgSFRNTEFwcGxldEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFyZWFFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw5ICs0NSw5
IEBAIGlubGluZSBIVE1MQXJlYUVsZW1lbnQ6OkhUTUxBcmVhRWxlbWVudCgKICAgICBBU1NFUlQo
aGFzVGFnTmFtZShhcmVhVGFnKSk7CiB9CiAKLVJlZlB0cjxIVE1MQXJlYUVsZW1lbnQ+IEhUTUxB
cmVhRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKK1JlZjxIVE1MQXJlYUVsZW1lbnQ+IEhUTUxBcmVhRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxBcmVhRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxBcmVhRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQogCiB2b2lkIEhUTUxBcmVhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUs
NyArMzUsNyBAQCBjbGFzcyBQYXRoOwogCiBjbGFzcyBIVE1MQXJlYUVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgSFRNTEFuY2hvckVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRN
TEFyZWFFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7Cisg
ICAgc3RhdGljIFJlZjxIVE1MQXJlYUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wgaXNEZWZhdWx0KCkgY29uc3QgeyByZXR1cm4gbV9z
aGFwZSA9PSBEZWZhdWx0OyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF1ZGlv
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVkaW9F
bGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXVkaW9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksMTYgKzM5LDE2IEBAIEhUTUxB
dWRpb0VsZW1lbnQ6OkhUTUxBdWRpb0VsZW1lbnQoY29uc3QKICAgICBBU1NFUlQoaGFzVGFnTmFt
ZShhdWRpb1RhZykpOwogfQogCi1SZWZQdHI8SFRNTEF1ZGlvRWxlbWVudD4gSFRNTEF1ZGlvRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCitSZWY8SFRNTEF1ZGlvRWxlbWVudD4gSFRNTEF1
ZGlvRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCiB7Ci0gICAgUmVmUHRyPEhUTUxBdWRp
b0VsZW1lbnQ+IGF1ZGlvRWxlbWVudChhZG9wdFJlZihuZXcgSFRNTEF1ZGlvRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKSkpOworICAgIFJlZjxIVE1MQXVkaW9FbGVt
ZW50PiBhdWRpb0VsZW1lbnQgPSBhZG9wdFJlZigqbmV3IEhUTUxBdWRpb0VsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQsIGNyZWF0ZWRCeVBhcnNlcikpOwogICAgIGF1ZGlvRWxlbWVudC0+c3VzcGVu
ZElmTmVlZGVkKCk7CiAgICAgcmV0dXJuIGF1ZGlvRWxlbWVudDsKIH0KIAotUmVmUHRyPEhUTUxB
dWRpb0VsZW1lbnQ+IEhUTUxBdWRpb0VsZW1lbnQ6OmNyZWF0ZUZvckpTQ29uc3RydWN0b3IoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHNyYykKK1JlZjxIVE1MQXVkaW9FbGVtZW50
PiBIVE1MQXVkaW9FbGVtZW50OjpjcmVhdGVGb3JKU0NvbnN0cnVjdG9yKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgU3RyaW5nJiBzcmMpCiB7Ci0gICAgUmVmUHRyPEhUTUxBdWRpb0VsZW1lbnQ+
IGF1ZGlvID0gYWRvcHRSZWYobmV3IEhUTUxBdWRpb0VsZW1lbnQoYXVkaW9UYWcsIGRvY3VtZW50
LCBmYWxzZSkpOworICAgIFJlZjxIVE1MQXVkaW9FbGVtZW50PiBhdWRpbyA9IGFkb3B0UmVmKCpu
ZXcgSFRNTEF1ZGlvRWxlbWVudChhdWRpb1RhZywgZG9jdW1lbnQsIGZhbHNlKSk7CiAgICAgYXVk
aW8tPnNldFByZWxvYWQoImF1dG8iKTsKICAgICBpZiAoIXNyYy5pc051bGwoKSkgewogICAgICAg
ICBhdWRpby0+c2V0U3JjKHNyYyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRp
b0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0Vs
ZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVk
aW9FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDggKzM2LDggQEAgY2xhc3MgRG9jdW1l
bnQ7CiAKIGNsYXNzIEhUTUxBdWRpb0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTE1lZGlhRWxl
bWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MQXVkaW9FbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCk7Ci0gICAgc3RhdGljIFJl
ZlB0cjxIVE1MQXVkaW9FbGVtZW50PiBjcmVhdGVGb3JKU0NvbnN0cnVjdG9yKERvY3VtZW50Jiwg
Y29uc3QgU3RyaW5nJiBzcmMpOworICAgIHN0YXRpYyBSZWY8SFRNTEF1ZGlvRWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wpOworICAgIHN0YXRpYyBS
ZWY8SFRNTEF1ZGlvRWxlbWVudD4gY3JlYXRlRm9ySlNDb25zdHJ1Y3RvcihEb2N1bWVudCYsIGNv
bnN0IFN0cmluZyYgc3JjKTsKIAogcHJpdmF0ZToKICAgICBIVE1MQXVkaW9FbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQkRJRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJESUVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQkRJRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw5ICsyNyw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTEJESUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRN
TEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTEJESUVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAg
c3RhdGljIFJlZjxIVE1MQkRJRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSFRNTEJESUVsZW1lbnQobmFtZSwgZG9jdW1lbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSFRNTEJESUVsZW1lbnQobmFtZSwgZG9jdW1lbnQpKTsKICAgICB9CiAKIHByaXZh
dGU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3
Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM5LDE0ICszOSwxNCBAQCBIVE1MQlJFbGVtZW50OjpIVE1MQlJFbGVtZW50KGNv
bnN0IFF1YWxpCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoYnJUYWcpKTsKIH0KIAotUmVmUHRyPEhU
TUxCUkVsZW1lbnQ+IEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitS
ZWY8SFRNTEJSRWxlbWVudD4gSFRNTEJSRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxCUkVsZW1lbnQoYnJUYWcsIGRvY3Vt
ZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTEJSRWxlbWVudChiclRhZywgZG9j
dW1lbnQpKTsKIH0KIAotUmVmUHRyPEhUTUxCUkVsZW1lbnQ+IEhUTUxCUkVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8
SFRNTEJSRWxlbWVudD4gSFRNTEJSRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEhUTUxCUkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBIVE1MQlJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wgSFRNTEJS
RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oCShyZXZpc2lvbiAx
Nzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzAsOCArMzAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxC
UkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWZQdHI8SFRNTEJSRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7Ci0gICAgc3RhdGljIFJl
ZlB0cjxIVE1MQlJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CisgICAgc3RhdGljIFJlZjxIVE1MQlJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAg
ICBzdGF0aWMgUmVmPEhUTUxCUkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEJhc2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxCYXNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksOSArMzks
OSBAQCBpbmxpbmUgSFRNTEJhc2VFbGVtZW50OjpIVE1MQmFzZUVsZW1lbnQoCiAgICAgQVNTRVJU
KGhhc1RhZ05hbWUoYmFzZVRhZykpOwogfQogCi1SZWZQdHI8SFRNTEJhc2VFbGVtZW50PiBIVE1M
QmFzZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCitSZWY8SFRNTEJhc2VFbGVtZW50PiBIVE1MQmFzZUVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MQmFzZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MQmFzZUVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpKTsKIH0KIAogdm9pZCBIVE1MQmFzZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MQmFzZUVsZW1lbnQg
ZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8
SFRNTEJhc2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CisgICAgc3RhdGljIFJlZjxIVE1MQmFzZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIFVSTCBocmVmKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRI
cmVmKGNvbnN0IEF0b21pY1N0cmluZyYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QmFzZUZvbnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCYXNlRm9udEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw5ICsz
NSw5IEBAIGlubGluZSBIVE1MQmFzZUZvbnRFbGVtZW50OjpIVE1MQmFzZUZvbnQKICAgICBBU1NF
UlQoaGFzVGFnTmFtZShiYXNlZm9udFRhZykpOwogfQogCi1SZWZQdHI8SFRNTEJhc2VGb250RWxl
bWVudD4gSFRNTEJhc2VGb250RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MQmFzZUZvbnRFbGVtZW50PiBIVE1M
QmFzZUZvbnRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEJhc2VGb250
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhU
TUxCYXNlRm9udEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUZvbnRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUZvbnRFbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VGb250RWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTEJh
c2VGb250RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZlB0cjxIVE1MQmFzZUZvbnRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MQmFzZUZvbnRFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAg
SFRNTEJhc2VGb250RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3
NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDcsMTQgKzQ3LDE0IEBAIEhUTUxCb2R5RWxlbWVudDo6SFRNTEJvZHlFbGVtZW50
KGNvbnN0IFEKICAgICBBU1NFUlQoaGFzVGFnTmFtZShib2R5VGFnKSk7CiB9CiAKLVJlZlB0cjxI
VE1MQm9keUVsZW1lbnQ+IEhUTUxCb2R5RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCkKK1JlZjxIVE1MQm9keUVsZW1lbnQ+IEhUTUxCb2R5RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxCb2R5RWxlbWVudChi
b2R5VGFnLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxCb2R5RWxl
bWVudChib2R5VGFnLCBkb2N1bWVudCkpOwogfQogCi1SZWZQdHI8SFRNTEJvZHlFbGVtZW50PiBI
VE1MQm9keUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTEJvZHlFbGVtZW50PiBIVE1MQm9keUVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MQm9keUVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MQm9keUVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKIH0KIAogSFRNTEJvZHlFbGVtZW50Ojp+SFRNTEJvZHlFbGVtZW50KCkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMzIsOCArMzIsOCBAQCBjbGFzcyBEb2N1bWVudDsKIAogY2xhc3MgSFRNTEJvZHlFbGVtZW50
IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRy
PEhUTUxCb2R5RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7Ci0gICAgc3RhdGljIFJlZlB0cjxI
VE1MQm9keUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
KyAgICBzdGF0aWMgUmVmPEhUTUxCb2R5RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAg
c3RhdGljIFJlZjxIVE1MQm9keUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKICAgICB2aXJ0dWFsIH5IVE1MQm9keUVsZW1lbnQoKTsKIAogICAgIC8vIERl
Y2xhcmVkIHZpcnR1YWwgaW4gRWxlbWVudApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QnV0dG9uRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QnV0dG9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw5ICs0Nyw5IEBA
IGlubGluZSBIVE1MQnV0dG9uRWxlbWVudDo6SFRNTEJ1dHRvbkVsZW0KICAgICBBU1NFUlQoaGFz
VGFnTmFtZShidXR0b25UYWcpKTsKIH0KIAotUmVmUHRyPEhUTUxCdXR0b25FbGVtZW50PiBIVE1M
QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQorUmVmPEhUTUxCdXR0b25FbGVt
ZW50PiBIVE1MQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSFRNTEJ1dHRvbkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZv
cm0pKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MQnV0dG9uRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCwgZm9ybSkpOwogfQogCiB2b2lkIEhUTUxCdXR0b25FbGVtZW50OjpzZXRUeXBl
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJ1dHRvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
dXR0b25FbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJ1dHRvbkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxCdXR0b25FbGVtZW50IGZpbmFsIDogcHVibGlj
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRN
TEJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBI
VE1MRm9ybUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxCdXR0b25FbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50Kik7CiAK
ICAgICB2b2lkIHNldFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg2LDE0ICs4NiwxNCBAQCBIVE1MQ2FudmFzRWxlbWVudDo6SFRNTENhbnZhc0VsZW1l
bnQoY29uCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoY2FudmFzVGFnKSk7CiB9CiAKLVJlZlB0cjxI
VE1MQ2FudmFzRWxlbWVudD4gSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQpCitSZWY8SFRNTENhbnZhc0VsZW1lbnQ+IEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTENhbnZh
c0VsZW1lbnQoY2FudmFzVGFnLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEhUTUxDYW52YXNFbGVtZW50KGNhbnZhc1RhZywgZG9jdW1lbnQpKTsKIH0KIAotUmVmUHRyPEhU
TUxDYW52YXNFbGVtZW50PiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MQ2FudmFzRWxlbWVu
dD4gSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MQ2Fu
dmFzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEhUTUxDYW52YXNFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIEhUTUxDYW52YXNF
bGVtZW50Ojp+SFRNTENhbnZhc0VsZW1lbnQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw4ICs2Myw4IEBAIHB1
YmxpYzoKIAogY2xhc3MgSFRNTENhbnZhc0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IGNyZWF0
ZShEb2N1bWVudCYpOwotICAgIHN0YXRpYyBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxD
YW52YXNFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxDYW52
YXNFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAg
dmlydHVhbCB+SFRNTENhbnZhc0VsZW1lbnQoKTsKIAogICAgIHZvaWQgYWRkT2JzZXJ2ZXIoQ2Fu
dmFzT2JzZXJ2ZXImKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERMaXN0RWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRExpc3RFbGVtZW50
LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRExpc3RF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsOSArMzUsOSBAQCBpbmxpbmUgSFRNTERM
aXN0RWxlbWVudDo6SFRNTERMaXN0RWxlbWVuCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoZGxUYWcp
KTsKIH0KIAotUmVmUHRyPEhUTUxETGlzdEVsZW1lbnQ+IEhUTUxETGlzdEVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8
SFRNTERMaXN0RWxlbWVudD4gSFRNTERMaXN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEhUTUxETGlzdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBIVE1MRExpc3RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERMaXN0RWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERMaXN0RWxlbWVudC5oCShyZXZpc2lvbiAx
Nzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxETGlzdEVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhU
TUxETGlzdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgotICAg
IHN0YXRpYyBSZWZQdHI8SFRNTERMaXN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTERMaXN0RWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIEhUTUxE
TGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY1LDcgKzY1LDcgQEAgUmVmUHRyPERldGFpbHNDb250ZW50RWxlbWVudD4gRGV0
YWlsc0NvbgogCiBjbGFzcyBEZXRhaWxzU3VtbWFyeUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSW5z
ZXJ0aW9uUG9pbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8RGV0YWlsc1N1bW1hcnlF
bGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPERldGFpbHNTdW1tYXJ5
RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKICAgICBFbGVtZW50KiBmYWxsYmFja1N1bW1h
cnkoKQogICAgIHsKQEAgLTg3LDE5ICs4NywxOSBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKLVJl
ZlB0cjxEZXRhaWxzU3VtbWFyeUVsZW1lbnQ+IERldGFpbHNTdW1tYXJ5RWxlbWVudDo6Y3JlYXRl
KERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxEZXRhaWxzU3VtbWFyeUVsZW1lbnQ+IERldGFpbHNT
dW1tYXJ5RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8
SFRNTFN1bW1hcnlFbGVtZW50PiBzdW1tYXJ5ID0gSFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGUo
c3VtbWFyeVRhZywgZG9jdW1lbnQpOwogICAgIHN1bW1hcnktPmFwcGVuZENoaWxkKFRleHQ6OmNy
ZWF0ZShkb2N1bWVudCwgZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpKSwgQVNTRVJUX05PX0VY
Q0VQVElPTik7CiAKLSAgICBSZWZQdHI8RGV0YWlsc1N1bW1hcnlFbGVtZW50PiBkZXRhaWxzU3Vt
bWFyeSA9IGFkb3B0UmVmKG5ldyBEZXRhaWxzU3VtbWFyeUVsZW1lbnQoZG9jdW1lbnQpKTsKKyAg
ICBSZWY8RGV0YWlsc1N1bW1hcnlFbGVtZW50PiBkZXRhaWxzU3VtbWFyeSA9IGFkb3B0UmVmKCpu
ZXcgRGV0YWlsc1N1bW1hcnlFbGVtZW50KGRvY3VtZW50KSk7CiAgICAgZGV0YWlsc1N1bW1hcnkt
PmFwcGVuZENoaWxkKHN1bW1hcnkpOwogICAgIHJldHVybiBkZXRhaWxzU3VtbWFyeTsKIH0KIAot
UmVmUHRyPEhUTUxEZXRhaWxzRWxlbWVudD4gSFRNTERldGFpbHNFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxE
ZXRhaWxzRWxlbWVudD4gSFRNTERldGFpbHNFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIFJlZlB0cjxIVE1MRGV0
YWlsc0VsZW1lbnQ+IGRldGFpbHMgPSBhZG9wdFJlZihuZXcgSFRNTERldGFpbHNFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KSk7CisgICAgUmVmPEhUTUxEZXRhaWxzRWxlbWVudD4gZGV0YWlscyA9
IGFkb3B0UmVmKCpuZXcgSFRNTERldGFpbHNFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiAg
ICAgZGV0YWlscy0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwogICAgIHJldHVybiBkZXRh
aWxzOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCShy
ZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgSFRNTERldGFpbHNFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxEZXRhaWxzRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxI
VE1MRGV0YWlsc0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYpOwogICAgIHZvaWQgdG9nZ2xlT3BlbigpOwogCiAgICAgY29uc3QgRWxlbWVudCog
ZmluZE1haW5TdW1tYXJ5KCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
aXJlY3RvcnlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxEaXJlY3RvcnlFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDkg
KzM1LDkgQEAgaW5saW5lIEhUTUxEaXJlY3RvcnlFbGVtZW50OjpIVE1MRGlyZWN0bwogICAgIEFT
U0VSVChoYXNUYWdOYW1lKGRpclRhZykpOwogfQogCi1SZWZQdHI8SFRNTERpcmVjdG9yeUVsZW1l
bnQ+IEhUTUxEaXJlY3RvcnlFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxEaXJlY3RvcnlFbGVtZW50PiBIVE1M
RGlyZWN0b3J5RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxEaXJlY3Rv
cnlFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SFRNTERpcmVjdG9yeUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQuaAkocmV2aXNpb24gMTc3
ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
SFRNTERpcmVjdG9yeUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTERpcmVjdG9yeUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTERp
cmVjdG9yeUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYpOwogCiBwcml2YXRlOgogICAgIEhUTUxEaXJlY3RvcnlFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxl
bWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERp
dkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxNCArMzgsMTQgQEAgSFRNTERpdkVs
ZW1lbnQ6OkhUTUxEaXZFbGVtZW50KGNvbnN0IFF1YQogICAgIEFTU0VSVChoYXNUYWdOYW1lKGRp
dlRhZykpOwogfQogCi1SZWZQdHI8SFRNTERpdkVsZW1lbnQ+IEhUTUxEaXZFbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxEaXZFbGVtZW50PiBIVE1MRGl2RWxlbWVu
dDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KSk7CiB9CiAKLVJlZlB0cjxIVE1M
RGl2RWxlbWVudD4gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTERpdkVsZW1lbnQ+IEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTERpdkVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MRGl2RWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBib29sIEhUTUxEaXZFbGVtZW50Ojppc1ByZXNlbnRh
dGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdApJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw4ICsy
OSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTERpdkVsZW1lbnQgOiBwdWJs
aWMgSFRNTEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTERpdkVsZW1l
bnQ+IGNyZWF0ZShEb2N1bWVudCYpOwotICAgIHN0YXRpYyBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVm
PEhUTUxEaXZFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxE
aXZFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHBy
b3RlY3RlZDoKICAgICBIVE1MRGl2RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4
NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjcsOSArNjcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIAotUmVmUHRyPEhUTUxFbGVtZW50PiBI
VE1MRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKK1JlZjxIVE1MRWxlbWVudD4gSFRNTEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIFN0
cmluZyBIVE1MRWxlbWVudDo6bm9kZU5hbWUoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIGVudW0gVHJhbnNsYXRl
QXR0cmlidXRlTW9kZSB7CiAKIGNsYXNzIEhUTUxFbGVtZW50IDogcHVibGljIFN0eWxlZEVsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRN
TEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYp
OwogCiAgICAgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBjaGlsZHJlbigpOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUwLDkgKzUwLDkgQEAgaW5saW5lIEhUTUxFbWJlZEVsZW1lbnQ6OkhUTUxFbWJlZEVsZW1l
bgogICAgIEFTU0VSVChoYXNUYWdOYW1lKGVtYmVkVGFnKSk7CiB9CiAKLVJlZlB0cjxIVE1MRW1i
ZWRFbGVtZW50PiBIVE1MRW1iZWRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKK1JlZjxI
VE1MRW1iZWRFbGVtZW50PiBIVE1MRW1iZWRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxFbWJlZEVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQsIGNyZWF0ZWRCeVBhcnNlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxF
bWJlZEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGNyZWF0ZWRCeVBhcnNlcikpOwogfQogCiBz
dGF0aWMgaW5saW5lIFJlbmRlcldpZGdldCogZmluZFdpZGdldFJlbmRlcmVyKGNvbnN0IE5vZGUq
IG5vZGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAkocmV2aXNp
b24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBIVE1MRW1iZWRFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTEVtYmVkRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKKyAg
ICBzdGF0aWMgUmVmPEhUTUxFbWJlZEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKIHByaXZhdGU6CiAgICAgSFRN
TEVtYmVkRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIGNyZWF0
ZWRCeVBhcnNlcik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxl
bWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZp
ZWxkU2V0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDkgKzUwLDkgQEAgSFRNTEZp
ZWxkU2V0RWxlbWVudDo6fkhUTUxGaWVsZFNldEVsZW1lbgogICAgICAgICBkb2N1bWVudCgpLnJl
bW92ZURpc2FibGVkRmllbGRzZXRFbGVtZW50KCk7CiB9CiAKLVJlZlB0cjxIVE1MRmllbGRTZXRF
bGVtZW50PiBIVE1MRmllbGRTZXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCitSZWY8
SFRNTEZpZWxkU2V0RWxlbWVudD4gSFRNTEZpZWxkU2V0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50
KiBmb3JtKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEZpZWxkU2V0RWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxG
aWVsZFNldEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0pKTsKIH0KIAogc3RhdGljIHZv
aWQgdXBkYXRlRnJvbUNvbnRyb2xFbGVtZW50c0FuY2VzdG9yRGlzYWJsZWRTdGF0ZVVuZGVyKEhU
TUxFbGVtZW50JiBzdGFydE5vZGUsIGJvb2wgaXNEaXNhYmxlZCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzQsNyArMzQsNyBAQCBjbGFzcyBIVE1MQ29sbGVjdGlvbjsKIAogY2xhc3MgSFRNTEZpZWxkU2V0
RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmUHRyPEhUTUxGaWVsZFNldEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUmVm
PEhUTUxGaWVsZFNldEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAogICAgIEhUTUxMZWdlbmRFbGVtZW50KiBsZWdlbmQo
KSBjb25zdDsKICAgICBSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGVsZW1lbnRzKCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ2LDkgKzQ2LDkgQEAgSFRNTEZvbnRFbGVtZW50OjpIVE1MRm9udEVsZW1lbnQoY29uc3Qg
UQogICAgIEFTU0VSVChoYXNUYWdOYW1lKGZvbnRUYWcpKTsKIH0KIAotUmVmUHRyPEhUTUxGb250
RWxlbWVudD4gSFRNTEZvbnRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxGb250RWxlbWVudD4gSFRNTEZvbnRF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEZvbnRFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTEZvbnRFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVj
cy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3JlbmRlcmluZy5odG1sI2ZvbnRzLWFu
ZC1jb2xvcnMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaAkocmV2aXNp
b24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEhUTUxGb250RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZlB0cjxIVE1MRm9udEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxGb250RWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIAogICAgIHN0YXRpYyBib29s
IGNzc1ZhbHVlRnJvbUZvbnRTaXplTnVtYmVyKGNvbnN0IFN0cmluZyYsIENTU1ZhbHVlSUQmKTsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAkocmV2aXNpb24g
MTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03MSwxNCArNzEsMTQgQEAgSFRNTEZvcm1FbGVtZW50OjpIVE1MRm9ybUVs
ZW1lbnQoY29uc3QgUQogICAgIEFTU0VSVChoYXNUYWdOYW1lKGZvcm1UYWcpKTsKIH0KIAotUmVm
UHRyPEhUTUxGb3JtRWxlbWVudD4gSFRNTEZvcm1FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50KQorUmVmPEhUTUxGb3JtRWxlbWVudD4gSFRNTEZvcm1FbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEZvcm1FbGVt
ZW50KGZvcm1UYWcsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTEZv
cm1FbGVtZW50KGZvcm1UYWcsIGRvY3VtZW50KSk7CiB9CiAKLVJlZlB0cjxIVE1MRm9ybUVsZW1l
bnQ+IEhUTUxGb3JtRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MRm9ybUVsZW1lbnQ+IEhUTUxGb3JtRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxGb3JtRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxGb3JtRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkpOwogfQogCiBIVE1MRm9ybUVsZW1lbnQ6On5IVE1MRm9ybUVsZW1lbnQo
KQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCShyZXZpc2lvbiAxNzc4
NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Niw4ICs0Niw4IEBAIGNsYXNzIFRleHRFbmNvZGluZzsKIAogY2xhc3MgSFRNTEZv
cm1FbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7Ci0gICAgc3RhdGlj
IFJlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxGb3JtRWxlbWVudD4gY3JlYXRlKERvY3VtZW50
Jik7CisgICAgc3RhdGljIFJlZjxIVE1MRm9ybUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICB2aXJ0dWFsIH5IVE1MRm9ybUVsZW1lbnQoKTsKIAog
ICAgIFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4gZWxlbWVudHMoKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMs
OSArNDMsOSBAQCBpbmxpbmUgSFRNTEZyYW1lRWxlbWVudDo6SFRNTEZyYW1lRWxlbWVuCiAgICAg
c2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAKLVJlZlB0cjxIVE1MRnJh
bWVFbGVtZW50PiBIVE1MRnJhbWVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxGcmFtZUVsZW1lbnQ+IEhUTUxG
cmFtZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MRnJhbWVFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTEZyYW1l
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBib29sIEhUTUxGcmFtZUVsZW1lbnQ6
OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRnJhbWVFbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTEZyYW1lRWxlbWVudCBmaW5hbCA6
IHB1YmxpYyBIVE1MRnJhbWVFbGVtZW50QmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0
cjxIVE1MRnJhbWVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CisgICAgc3RhdGljIFJlZjxIVE1MRnJhbWVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBib29sIGhhc0ZyYW1lQm9yZGVyKCkgY29uc3Qg
eyByZXR1cm4gbV9mcmFtZUJvcmRlcjsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGcmFtZVNldEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lU2V0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDkg
KzU4LDkgQEAgSFRNTEZyYW1lU2V0RWxlbWVudDo6SFRNTEZyYW1lU2V0RWxlbWVudAogICAgIHNl
dEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpOwogfQogCi1SZWZQdHI8SFRNTEZyYW1l
U2V0RWxlbWVudD4gSFRNTEZyYW1lU2V0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MRnJhbWVTZXRFbGVtZW50
PiBIVE1MRnJhbWVTZXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEZy
YW1lU2V0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEhUTUxGcmFtZVNldEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBI
VE1MRnJhbWVTZXRFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVT
ZXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVT
ZXRFbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZyYW1lU2V0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTEZyYW1lU2V0RWxlbWVudCBmaW5hbCA6IHB1Ymxp
YyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MRnJhbWVTZXRF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3Rh
dGljIFJlZjxIVE1MRnJhbWVTZXRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CiAKICAgICBib29sIGhhc0ZyYW1lQm9yZGVyKCkgY29uc3QgeyByZXR1cm4g
bV9mcmFtZWJvcmRlcjsgfQogICAgIGJvb2wgbm9SZXNpemUoKSBjb25zdCB7IHJldHVybiBtX25v
cmVzaXplOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIUkVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5jcHAJKHJldmlz
aW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQwLDE0ICs0MCwxNCBAQCBIVE1MSFJFbGVtZW50OjpIVE1MSFJFbGVt
ZW50KGNvbnN0IFF1YWxpCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoaHJUYWcpKTsKIH0KIAotUmVm
UHRyPEhUTUxIUkVsZW1lbnQ+IEhUTUxIUkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCitSZWY8SFRNTEhSRWxlbWVudD4gSFRNTEhSRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxIUkVsZW1lbnQoaHJUYWcs
IGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTEhSRWxlbWVudChoclRh
ZywgZG9jdW1lbnQpKTsKIH0KIAotUmVmUHRyPEhUTUxIUkVsZW1lbnQ+IEhUTUxIUkVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CitSZWY8SFRNTEhSRWxlbWVudD4gSFRNTEhSRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEhUTUxIUkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBIVE1MSFJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wg
SFRNTEhSRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5oCShyZXZp
c2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIUkVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEhUTUxIUkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgotICAg
IHN0YXRpYyBSZWZQdHI8SFRNTEhSRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7Ci0gICAgc3Rh
dGljIFJlZlB0cjxIVE1MSFJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MSFJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQm
KTsKKyAgICBzdGF0aWMgUmVmPEhUTUxIUkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBIVE1MSFJFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SGVhZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhl
YWRFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSGVhZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxNCArMzcsMTQgQEAgSFRN
TEhlYWRFbGVtZW50OjpIVE1MSGVhZEVsZW1lbnQoY29uc3QgUQogICAgIEFTU0VSVChoYXNUYWdO
YW1lKGhlYWRUYWcpKTsKIH0KIAotUmVmUHRyPEhUTUxIZWFkRWxlbWVudD4gSFRNTEhlYWRFbGVt
ZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxIZWFkRWxlbWVudD4gSFRN
TEhlYWRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSFRNTEhlYWRFbGVtZW50KGhlYWRUYWcsIGRvY3VtZW50KSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSFRNTEhlYWRFbGVtZW50KGhlYWRUYWcsIGRvY3VtZW50KSk7CiB9
CiAKLVJlZlB0cjxIVE1MSGVhZEVsZW1lbnQ+IEhUTUxIZWFkRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MSGVh
ZEVsZW1lbnQ+IEhUTUxIZWFkRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhU
TUxIZWFkRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEhUTUxIZWFkRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIZWFkRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEhlYWRFbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhlYWRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDggKzMwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MSGVhZEVsZW1lbnQg
ZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8
SFRNTEhlYWRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKLSAgICBzdGF0aWMgUmVmUHRyPEhU
TUxIZWFkRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwor
ICAgIHN0YXRpYyBSZWY8SFRNTEhlYWRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBz
dGF0aWMgUmVmPEhUTUxIZWFkRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIEhUTUxIZWFkRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhlYWRp
bmdFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIZWFk
aW5nRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEhlYWRpbmdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsOSArMzAsOSBAQCBp
bmxpbmUgSFRNTEhlYWRpbmdFbGVtZW50OjpIVE1MSGVhZGluZ0VsCiB7CiB9CiAKLVJlZlB0cjxI
VE1MSGVhZGluZ0VsZW1lbnQ+IEhUTUxIZWFkaW5nRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MSGVhZGluZ0Vs
ZW1lbnQ+IEhUTUxIZWFkaW5nRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhU
TUxIZWFkaW5nRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEhUTUxIZWFkaW5nRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIZWFkaW5nRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhlYWRpbmdFbGVtZW50LmgJKHJldmlzaW9uIDE3
Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhlYWRpbmdFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBI
VE1MSGVhZGluZ0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWZQdHI8SFRNTEhlYWRpbmdFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MSGVhZGluZ0VsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAg
ICBIVE1MSGVhZGluZ0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4
NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQyLDE0ICs0MiwxNCBAQCBIVE1MSHRtbEVsZW1lbnQ6OkhUTUxIdG1sRWxlbWVu
dChjb25zdCBRCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoaHRtbFRhZykpOwogfQogCi1SZWZQdHI8
SFRNTEh0bWxFbGVtZW50PiBIVE1MSHRtbEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCitSZWY8SFRNTEh0bWxFbGVtZW50PiBIVE1MSHRtbEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MSHRtbEVsZW1lbnQo
aHRtbFRhZywgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MSHRtbEVs
ZW1lbnQoaHRtbFRhZywgZG9jdW1lbnQpKTsKIH0KIAotUmVmUHRyPEhUTUxIdG1sRWxlbWVudD4g
SFRNTEh0bWxFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxIdG1sRWxlbWVudD4gSFRNTEh0bWxFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEh0bWxFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTEh0bWxFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7CiB9CiAKIGJvb2wgSFRNTEh0bWxFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShj
b25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEh0bWxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSHRtbEVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSHRtbEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsOCArMzAsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxIdG1sRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBI
VE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MSHRtbEVsZW1lbnQ+
IGNyZWF0ZShEb2N1bWVudCYpOwotICAgIHN0YXRpYyBSZWZQdHI8SFRNTEh0bWxFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxI
VE1MSHRtbEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTEh0
bWxFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAg
ICB2b2lkIGluc2VydGVkQnlQYXJzZXIoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSUZyYW1lRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSUZyYW1lRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw5ICs0Myw5
IEBAIGlubGluZSBIVE1MSUZyYW1lRWxlbWVudDo6SFRNTElGcmFtZUVsZW0KICAgICBBU1NFUlQo
aGFzVGFnTmFtZShpZnJhbWVUYWcpKTsKIH0KIAotUmVmUHRyPEhUTUxJRnJhbWVFbGVtZW50PiBI
VE1MSUZyYW1lRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MSUZyYW1lRWxlbWVudD4gSFRNTElGcmFtZUVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1l
bnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MSUZyYW1lRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxJRnJhbWVFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wgSFRNTElGcmFtZUVsZW1lbnQ6OmlzUHJl
c2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MSUZy
YW1lRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRnJhbWVFbGVtZW50QmFzZSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MSUZyYW1lRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTElGcmFtZUVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAg
ICBIVE1MSUZyYW1lRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3
ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjUsMTQgKzY1LDE0IEBAIEhUTUxJbWFnZUVsZW1lbnQ6OkhUTUxJbWFnZUVs
ZW1lbnQoY29uc3QKICAgICAgICAgZm9ybS0+cmVnaXN0ZXJJbWdFbGVtZW50KHRoaXMpOwogfQog
Ci1SZWZQdHI8SFRNTEltYWdlRWxlbWVudD4gSFRNTEltYWdlRWxlbWVudDo6Y3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MSW1hZ2VFbGVtZW50PiBIVE1MSW1hZ2VFbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRN
TEltYWdlRWxlbWVudChpbWdUYWcsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSFRNTEltYWdlRWxlbWVudChpbWdUYWcsIGRvY3VtZW50KSk7CiB9CiAKLVJlZlB0cjxIVE1M
SW1hZ2VFbGVtZW50PiBIVE1MSW1hZ2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCitS
ZWY8SFRNTEltYWdlRWxlbWVudD4gSFRNTEltYWdlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBm
b3JtKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEltYWdlRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCwgZm9ybSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxJbWFnZUVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0pKTsKIH0KIAogSFRNTEltYWdlRWxlbWVudDo6
fkhUTUxJbWFnZUVsZW1lbnQoKQpAQCAtODEsMTQgKzgxLDE0IEBAIEhUTUxJbWFnZUVsZW1lbnQ6
On5IVE1MSW1hZ2VFbGVtZW50KCkKICAgICAgICAgbV9mb3JtLT5yZW1vdmVJbWdFbGVtZW50KHRo
aXMpOwogfQogCi1SZWZQdHI8SFRNTEltYWdlRWxlbWVudD4gSFRNTEltYWdlRWxlbWVudDo6Y3Jl
YXRlRm9ySlNDb25zdHJ1Y3RvcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IGludCogb3B0aW9u
YWxXaWR0aCwgY29uc3QgaW50KiBvcHRpb25hbEhlaWdodCkKK1JlZjxIVE1MSW1hZ2VFbGVtZW50
PiBIVE1MSW1hZ2VFbGVtZW50OjpjcmVhdGVGb3JKU0NvbnN0cnVjdG9yKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgaW50KiBvcHRpb25hbFdpZHRoLCBjb25zdCBpbnQqIG9wdGlvbmFsSGVpZ2h0
KQogewotICAgIFJlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiBpbWFnZSA9IGFkb3B0UmVmKG5ldyBI
VE1MSW1hZ2VFbGVtZW50KGltZ1RhZywgZG9jdW1lbnQpKTsKKyAgICBSZWY8SFRNTEltYWdlRWxl
bWVudD4gaW1hZ2UgPSBhZG9wdFJlZigqbmV3IEhUTUxJbWFnZUVsZW1lbnQoaW1nVGFnLCBkb2N1
bWVudCkpOwogICAgIGlmIChvcHRpb25hbFdpZHRoKQogICAgICAgICBpbWFnZS0+c2V0V2lkdGgo
Km9wdGlvbmFsV2lkdGgpOwogICAgIGlmIChvcHRpb25hbEhlaWdodCkKICAgICAgICAgaW1hZ2Ut
PnNldEhlaWdodCgqb3B0aW9uYWxIZWlnaHQpOwotICAgIHJldHVybiBpbWFnZS5yZWxlYXNlKCk7
CisgICAgcmV0dXJuIGltYWdlOwogfQogCiBib29sIEhUTUxJbWFnZUVsZW1lbnQ6OmlzUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDkgKzM3LDkgQEAgc3RydWN0IEltYWdlQ2FuZGlkYXRlOwogY2xhc3MgSFRNTEltYWdlRWxl
bWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCwgcHVibGljIEZvcm1OYW1lZEl0ZW0gewogICAgIGZy
aWVuZCBjbGFzcyBIVE1MRm9ybUVsZW1lbnQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxI
VE1MSW1hZ2VFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKLSAgICBzdGF0aWMgUmVmUHRyPEhU
TUxJbWFnZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBI
VE1MRm9ybUVsZW1lbnQqKTsKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+IGNy
ZWF0ZUZvckpTQ29uc3RydWN0b3IoRG9jdW1lbnQmLCBjb25zdCBpbnQqIG9wdGlvbmFsV2lkdGgs
IGNvbnN0IGludCogb3B0aW9uYWxIZWlnaHQpOworICAgIHN0YXRpYyBSZWY8SFRNTEltYWdlRWxl
bWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MSW1hZ2VFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50
Kik7CisgICAgc3RhdGljIFJlZjxIVE1MSW1hZ2VFbGVtZW50PiBjcmVhdGVGb3JKU0NvbnN0cnVj
dG9yKERvY3VtZW50JiwgY29uc3QgaW50KiBvcHRpb25hbFdpZHRoLCBjb25zdCBpbnQqIG9wdGlv
bmFsSGVpZ2h0KTsKIAogICAgIHZpcnR1YWwgfkhUTUxJbWFnZUVsZW1lbnQoKTsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMjksMTAgKzEyOSwxMCBAQCBIVE1MSW5wdXRFbGVtZW50OjpIVE1MSW5wdXRFbGVt
ZW50KGNvbnN0CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAK
LVJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1l
bnQqIGZvcm0sIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQorUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IEhU
TUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSwgYm9vbCBjcmVhdGVkQnlQYXJz
ZXIpCiB7CiAgICAgYm9vbCBzaG91bGRDcmVhdGVTaGFkb3dSb290TGF6aWx5ID0gY3JlYXRlZEJ5
UGFyc2VyOwotICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dEVsZW1lbnQgPSBhZG9w
dFJlZihuZXcgSFRNTElucHV0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSwgY3JlYXRl
ZEJ5UGFyc2VyKSk7CisgICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0RWxlbWVudCA9IGFk
b3B0UmVmKCpuZXcgSFRNTElucHV0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSwgY3Jl
YXRlZEJ5UGFyc2VyKSk7CiAgICAgaWYgKCFzaG91bGRDcmVhdGVTaGFkb3dSb290TGF6aWx5KQog
ICAgICAgICBpbnB1dEVsZW1lbnQtPmVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKICAgICBy
ZXR1cm4gaW5wdXRFbGVtZW50OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw3ICs2Myw3IEBAIHN0cnVjdCBJbnB1dEVs
ZW1lbnRDbGlja1N0YXRlIHsKIAogY2xhc3MgSFRNTElucHV0RWxlbWVudCA6IHB1YmxpYyBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1M
SW5wdXRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgSFRN
TEZvcm1FbGVtZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOworICAgIHN0YXRpYyBSZWY8SFRN
TElucHV0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhU
TUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKICAgICB2aXJ0dWFsIH5IVE1M
SW5wdXRFbGVtZW50KCk7CiAKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHdl
YmtpdHNwZWVjaGNoYW5nZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5F
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5F
bGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
S2V5Z2VuRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDkgKzgzLDkgQEAgaW5saW5l
IEhUTUxLZXlnZW5FbGVtZW50OjpIVE1MS2V5Z2VuRWxlbQogICAgIGVuc3VyZVVzZXJBZ2VudFNo
YWRvd1Jvb3QoKS5hcHBlbmRDaGlsZChzZWxlY3QsIElHTk9SRV9FWENFUFRJT04pOwogfQogCi1S
ZWZQdHI8SFRNTEtleWdlbkVsZW1lbnQ+IEhUTUxLZXlnZW5FbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1l
bnQqIGZvcm0pCitSZWY8SFRNTEtleWdlbkVsZW1lbnQ+IEhUTUxLZXlnZW5FbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1M
Rm9ybUVsZW1lbnQqIGZvcm0pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MS2V5Z2Vu
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEhUTUxLZXlnZW5FbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtKSk7CiB9CiAKIHZv
aWQgSFRNTEtleWdlbkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxLZXlnZW5FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MS2V5Z2VuRWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcg
QEAgY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQ7CiAKIGNsYXNzIEhUTUxLZXlnZW5FbGVtZW50IGZp
bmFsIDogcHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWZQdHI8SFRNTEtleWdlbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUmVmPEhU
TUxLZXlnZW5FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jiwg
SFRNTEZvcm1FbGVtZW50Kik7CiAKIHByaXZhdGU6CiAgICAgSFRNTEtleWdlbkVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50Kik7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQx
LDE0ICs0MSwxNCBAQCBIVE1MTElFbGVtZW50OjpIVE1MTElFbGVtZW50KGNvbnN0IFF1YWxpCiAg
ICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAKLVJlZlB0cjxIVE1M
TElFbGVtZW50PiBIVE1MTElFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVm
PEhUTUxMSUVsZW1lbnQ+IEhUTUxMSUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MTElFbGVtZW50KGxpVGFnLCBkb2N1bWVu
dCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxMSUVsZW1lbnQobGlUYWcsIGRvY3Vt
ZW50KSk7CiB9CiAKLVJlZlB0cjxIVE1MTElFbGVtZW50PiBIVE1MTElFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhU
TUxMSUVsZW1lbnQ+IEhUTUxMSUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBI
VE1MTElFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSFRNTExJRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBib29sIEhUTUxMSUVs
ZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUp
IGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuaAkocmV2aXNpb24gMTc3
ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDggKzI5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MTElF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmUHRyPEhUTUxMSUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwotICAgIHN0YXRpYyBSZWZQ
dHI8SFRNTExJRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OworICAgIHN0YXRpYyBSZWY8SFRNTExJRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAg
c3RhdGljIFJlZjxIVE1MTElFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgSFRNTExJRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVt
ZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFi
ZWxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsOSArNTAsOSBAQCBpbmxpbmUgSFRN
TExhYmVsRWxlbWVudDo6SFRNTExhYmVsRWxlbWVuCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUobGFi
ZWxUYWcpKTsKIH0KIAotUmVmUHRyPEhUTUxMYWJlbEVsZW1lbnQ+IEhUTUxMYWJlbEVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CitSZWY8SFRNTExhYmVsRWxlbWVudD4gSFRNTExhYmVsRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEhUTUxMYWJlbEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MTGFiZWxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CiB9CiAKIGJvb2wgSFRNTExhYmVsRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdApJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTExhYmVsRWxl
bWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZlB0cjxIVE1MTGFiZWxFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MTGFiZWxFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBMYWJlbGFibGVFbGVtZW50KiBjb250cm9s
KCk7CiAgICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQwLDkgKzQwLDkgQEAgaW5saW5lIEhUTUxMZWdlbmRFbGVtZW50OjpIVE1MTGVnZW5kRWxlbQog
ICAgIEFTU0VSVChoYXNUYWdOYW1lKGxlZ2VuZFRhZykpOwogfQogCi1SZWZQdHI8SFRNTExlZ2Vu
ZEVsZW1lbnQ+IEhUTUxMZWdlbmRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxMZWdlbmRFbGVtZW50PiBIVE1M
TGVnZW5kRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxMZWdlbmRFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTExl
Z2VuZEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogSFRNTEZvcm1Db250cm9sRWxl
bWVudCogSFRNTExlZ2VuZEVsZW1lbnQ6OmFzc29jaWF0ZWRDb250cm9sKCkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzIsNyArMzIsNyBAQCBjbGFzcyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OwogCiBjbGFzcyBIVE1M
TGVnZW5kRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZlB0cjxIVE1MTGVnZW5kRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTExlZ2VuZEVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBIVE1M
TGVnZW5kRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODEsOSArODEsOSBAQCBpbmxpbmUgSFRNTExpbmtFbGVtZW50OjpIVE1MTGlua0VsZW1lbnQo
CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUobGlua1RhZykpOwogfQogCi1SZWZQdHI8SFRNTExpbmtF
bGVtZW50PiBIVE1MTGlua0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQorUmVmPEhUTUxM
aW5rRWxlbWVudD4gSFRNTExpbmtFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxMaW5rRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwg
Y3JlYXRlZEJ5UGFyc2VyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTExpbmtFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50LCBjcmVhdGVkQnlQYXJzZXIpKTsKIH0KIAogSFRNTExpbmtF
bGVtZW50Ojp+SFRNTExpbmtFbGVtZW50KCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExpbmtFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TGlua0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCB0eXBlZGVmIEV2
ZW50U2VuZGVyPEhUTUxMaW5rRWxlbWVudD4gTGluCiAKIGNsYXNzIEhUTUxMaW5rRWxlbWVudCBm
aW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCwgcHVibGljIENhY2hlZFN0eWxlU2hlZXRDbGllbnQs
IHB1YmxpYyBMaW5rTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhU
TUxMaW5rRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJv
b2wgY3JlYXRlZEJ5UGFyc2VyKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxMaW5rRWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2Vy
KTsKICAgICB2aXJ0dWFsIH5IVE1MTGlua0VsZW1lbnQoKTsKIAogICAgIFVSTCBocmVmKCkgY29u
c3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmNwcAkocmV2aXNpb24g
MTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQxLDE0ICs0MSwxNCBAQCBIVE1MTWFwRWxlbWVudDo6SFRNTE1hcEVsZW1l
bnQoY29uc3QgUXVhCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUobWFwVGFnKSk7CiB9CiAKLVJlZlB0
cjxIVE1MTWFwRWxlbWVudD4gSFRNTE1hcEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCitSZWY8SFRNTE1hcEVsZW1lbnQ+IEhUTUxNYXBFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTE1hcEVsZW1lbnQobWFw
VGFnLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxNYXBFbGVtZW50
KG1hcFRhZywgZG9jdW1lbnQpKTsKIH0KIAotUmVmUHRyPEhUTUxNYXBFbGVtZW50PiBIVE1MTWFw
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCkKK1JlZjxIVE1MTWFwRWxlbWVudD4gSFRNTE1hcEVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBIVE1MTWFwRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxNYXBFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CiB9CiAKIEhUTUxNYXBFbGVtZW50Ojp+SFRNTE1hcEVsZW1lbnQoKQpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1hcEVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw4ICszMiw4IEBA
IGNsYXNzIEhUTUxJbWFnZUVsZW1lbnQ7CiAgICAgCiBjbGFzcyBIVE1MTWFwRWxlbWVudCBmaW5h
bCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1M
TWFwRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MTWFw
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0
YXRpYyBSZWY8SFRNTE1hcEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBS
ZWY8SFRNTE1hcEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKICAgICB2aXJ0dWFsIH5IVE1MTWFwRWxlbWVudCgpOwogCiAgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBnZXROYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQyLDExICs0MiwxMSBAQCBpbmxpbmUgSFRNTE1hcnF1ZWVFbGVtZW50OjpIVE1MTWFycXVl
ZUVsCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUobWFycXVlZVRhZykpOwogfQogCi1SZWZQdHI8SFRN
TE1hcnF1ZWVFbGVtZW50PiBIVE1MTWFycXVlZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTE1hcnF1ZWVFbGVt
ZW50PiBIVE1MTWFycXVlZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPEhUTUxNYXJxdWVlRWxlbWVu
dD4gbWFycXVlZUVsZW1lbnQoYWRvcHRSZWYobmV3IEhUTUxNYXJxdWVlRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpKTsKKyAgICBSZWY8SFRNTE1hcnF1ZWVFbGVtZW50PiBtYXJxdWVlRWxlbWVu
dCA9IGFkb3B0UmVmKCpuZXcgSFRNTE1hcnF1ZWVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CiAgICAgbWFycXVlZUVsZW1lbnQtPnN1c3BlbmRJZk5lZWRlZCgpOwotICAgIHJldHVybiBtYXJx
dWVlRWxlbWVudC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIG1hcnF1ZWVFbGVtZW50OwogfQogCiBp
bnQgSFRNTE1hcnF1ZWVFbGVtZW50OjptaW5pbXVtRGVsYXkoKSBjb25zdApJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw3ICszMiw3IEBAIGNsYXNzIFJlbmRlck1hcnF1ZWU7CiAKIGNsYXNzIEhUTUxNYXJxdWVl
RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCwgcHJpdmF0ZSBBY3RpdmVET01PYmpl
Y3QgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTE1hcnF1ZWVFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1M
TWFycXVlZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
IAogICAgIGludCBtaW5pbXVtRGVsYXkoKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVudUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lbnVFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw5ICszNSw5
IEBAIGlubGluZSBIVE1MTWVudUVsZW1lbnQ6OkhUTUxNZW51RWxlbWVudCgKICAgICBBU1NFUlQo
aGFzVGFnTmFtZShtZW51VGFnKSk7CiB9CiAKLVJlZlB0cjxIVE1MTWVudUVsZW1lbnQ+IEhUTUxN
ZW51RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKK1JlZjxIVE1MTWVudUVsZW1lbnQ+IEhUTUxNZW51RWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxNZW51RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxNZW51RWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZW51RWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lbnVFbGVtZW50LmgJ
KHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lbnVFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBIVE1MTWVudUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTE1lbnVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MTWVudUVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICAKIHByaXZhdGU6
CiAgICAgSFRNTE1lbnVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3
ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNyw5ICszNyw5IEBAIGlubGluZSBIVE1MTWV0YUVsZW1lbnQ6OkhUTUxNZXRh
RWxlbWVudCgKICAgICBBU1NFUlQoaGFzVGFnTmFtZShtZXRhVGFnKSk7CiB9CiAKLVJlZlB0cjxI
VE1MTWV0YUVsZW1lbnQ+IEhUTUxNZXRhRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MTWV0YUVsZW1lbnQ+IEhU
TUxNZXRhRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxNZXRhRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxNZXRh
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiB2b2lkIEhUTUxNZXRhRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3Ry
aW5nJiB2YWx1ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaAkocmV2
aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEhUTUxNZXRhRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MTWV0YUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxNZXRhRWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgY29uc3QgQXRvbWlj
U3RyaW5nJiBjb250ZW50KCkgY29uc3Q7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBodHRwRXF1
aXYoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNw
cAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsOSArNTAsOSBAQCBIVE1MTWV0ZXJFbGVtZW50
Ojp+SFRNTE1ldGVyRWxlbWVudCgpCiB7CiB9CiAKLVJlZlB0cjxIVE1MTWV0ZXJFbGVtZW50PiBI
VE1MTWV0ZXJFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxNZXRlckVsZW1lbnQ+IEhUTUxNZXRlckVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiB7Ci0gICAgUmVmUHRyPEhUTUxNZXRlckVsZW1lbnQ+IG1ldGVyID0gYWRvcHRSZWYobmV3IEhU
TUxNZXRlckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICBSZWY8SFRNTE1ldGVyRWxl
bWVudD4gbWV0ZXIgPSBhZG9wdFJlZigqbmV3IEhUTUxNZXRlckVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpKTsKICAgICBtZXRlci0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwogICAgIHJl
dHVybiBtZXRlcjsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5o
CShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQCBjbGFzcyBSZW5kZXJNZXRlcjsK
IAogY2xhc3MgSFRNTE1ldGVyRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBMYWJlbGFibGVFbGVtZW50
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxNZXRlckVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxNZXRl
ckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAg
IGVudW0gR2F1Z2VSZWdpb24gewogICAgICAgICBHYXVnZVJlZ2lvbk9wdGltdW0sCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNb2RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNb2RFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDkgKzM0LDkgQEAgaW5saW5lIEhUTUxNb2RFbGVtZW50OjpIVE1MTW9kRWxlbWVudChjbwog
ewogfQogCi1SZWZQdHI8SFRNTE1vZEVsZW1lbnQ+IEhUTUxNb2RFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxN
b2RFbGVtZW50PiBIVE1MTW9kRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhU
TUxNb2RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSFRNTE1vZEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBIVE1MTW9k
RWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUpIGNvbnN0
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNb2RFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNb2RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MTW9kRWxl
bWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZlB0cjxIVE1MTW9kRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOworICAgIHN0YXRpYyBSZWY8SFRNTE1vZEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBIVE1MTW9kRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9MaXN0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT0xpc3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT0xpc3RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTQgKzQ0LDE0
IEBAIEhUTUxPTGlzdEVsZW1lbnQ6OkhUTUxPTGlzdEVsZW1lbnQoY29uc3QKICAgICBBU1NFUlQo
aGFzVGFnTmFtZShvbFRhZykpOwogfQogCi1SZWZQdHI8SFRNTE9MaXN0RWxlbWVudD4gSFRNTE9M
aXN0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MT0xpc3RFbGVt
ZW50PiBIVE1MT0xpc3RFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgSFRNTE9MaXN0RWxlbWVudChvbFRhZywgZG9jdW1lbnQpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MT0xpc3RFbGVtZW50KG9sVGFnLCBkb2N1bWVu
dCkpOwogfQogCi1SZWZQdHI8SFRNTE9MaXN0RWxlbWVudD4gSFRNTE9MaXN0RWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1Jl
ZjxIVE1MT0xpc3RFbGVtZW50PiBIVE1MT0xpc3RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgSFRNTE9MaXN0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEhUTUxPTGlzdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0K
IAogYm9vbCBIVE1MT0xpc3RFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T0xpc3RFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xp
c3RFbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9MaXN0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw4ICsyOSw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTE9MaXN0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1M
RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MT0xpc3RFbGVtZW50PiBj
cmVhdGUoRG9jdW1lbnQmKTsKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxPTGlzdEVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhU
TUxPTGlzdEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTE9M
aXN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAg
ICAgaW50IHN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9oYXNFeHBsaWNpdFN0YXJ0ID8gbV9zdGFy
dCA6IChtX2lzUmV2ZXJzZWQgPyBpdGVtQ291bnQoKSA6IDEpOyB9CiAgICAgdm9pZCBzZXRTdGFy
dChpbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAJ
KHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Niw5ICs3Niw5IEBAIGlubGluZSBIVE1MT2JqZWN0
RWxlbWVudDo6fkhUTUxPYmplY3RFbGUKIHsKIH0KIAotUmVmUHRyPEhUTUxPYmplY3RFbGVtZW50
PiBIVE1MT2JqZWN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtLCBib29sIGNyZWF0ZWRC
eVBhcnNlcikKK1JlZjxIVE1MT2JqZWN0RWxlbWVudD4gSFRNTE9iamVjdEVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxG
b3JtRWxlbWVudCogZm9ybSwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBIVE1MT2JqZWN0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSwgY3Jl
YXRlZEJ5UGFyc2VyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTE9iamVjdEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0sIGNyZWF0ZWRCeVBhcnNlcikpOwogfQogCiBSZW5k
ZXJXaWRnZXQqIEhUTUxPYmplY3RFbGVtZW50OjpyZW5kZXJXaWRnZXRMb2FkaW5nUGx1Z2luKCkg
Y29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgJKHJldmlz
aW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBIVE1MRm9ybUVsZW1lbnQ7CiAK
IGNsYXNzIEhUTUxPYmplY3RFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQsIHB1YmxpYyBGb3JtQXNzb2NpYXRlZEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWZQdHI8SFRNTE9iamVjdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CisgICAg
c3RhdGljIFJlZjxIVE1MT2JqZWN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKICAg
ICB2aXJ0dWFsIH5IVE1MT2JqZWN0RWxlbWVudCgpOwogCiAgICAgYm9vbCBpc0RvY05hbWVkSXRl
bSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jTmFtZWRJdGVtOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQzLDkgKzQzLDkgQEAgaW5saW5lIEhUTUxPcHRHcm91cEVsZW1lbnQ6OkhUTUxPcHRHcm91
cAogICAgIEFTU0VSVChoYXNUYWdOYW1lKG9wdGdyb3VwVGFnKSk7CiB9CiAKLVJlZlB0cjxIVE1M
T3B0R3JvdXBFbGVtZW50PiBIVE1MT3B0R3JvdXBFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxPcHRHcm91cEVs
ZW1lbnQ+IEhUTUxPcHRHcm91cEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBI
VE1MT3B0R3JvdXBFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSFRNTE9wdEdyb3VwRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBi
b29sIEhUTUxPcHRHcm91cEVsZW1lbnQ6OmlzRGlzYWJsZWRGb3JtQ29udHJvbCgpIGNvbnN0Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAkocmV2aXNpb24g
MTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQ7CiAK
IGNsYXNzIEhUTUxPcHRHcm91cEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTE9wdEdyb3VwRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTE9wdEdy
b3VwRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAg
ICAgdmlydHVhbCBib29sIGlzRGlzYWJsZWRGb3JtQ29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIEhUTUxTZWxlY3RFbGVtZW50KiBvd25lclNlbGVjdEVsZW1lbnQoKSBjb25zdDsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4
NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTcsMTQgKzU3LDE0IEBAIEhUTUxPcHRpb25FbGVtZW50OjpIVE1MT3B0aW9u
RWxlbWVudChjb24KICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKIH0K
IAotUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MT3B0aW9uRWxlbWVudD4gSFRNTE9wdGlvbkVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBIVE1MT3B0aW9uRWxlbWVudChvcHRpb25UYWcsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSFRNTE9wdGlvbkVsZW1lbnQob3B0aW9uVGFnLCBkb2N1bWVudCkpOwogfQog
Ci1SZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+IEhUTUxPcHRpb25FbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxP
cHRpb25FbGVtZW50PiBIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEhUTUxPcHRpb25FbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSFRNTE9wdGlvbkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAog
UmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlRm9ySlND
b25zdHJ1Y3RvcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50
LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsOCArMzQsOCBAQCBjbGFzcyBIVE1MU2VsZWN0
RWxlbWVudDsKIAogY2xhc3MgSFRNTE9wdGlvbkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVs
ZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCYpOwotICAgIHN0YXRpYyBSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhU
TUxPcHRpb25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxP
cHRpb25FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAg
ICAgc3RhdGljIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gY3JlYXRlRm9ySlNDb25zdHJ1Y3Rv
cihEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwKICAg
ICAgICBib29sIGRlZmF1bHRTZWxlY3RlZCwgYm9vbCBzZWxlY3RlZCwgRXhjZXB0aW9uQ29kZSYp
OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcAkocmV2
aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDkgKzQ2LDkgQEAgaW5saW5lIEhUTUxPdXRwdXRFbGVt
ZW50OjpIVE1MT3V0cHV0RWxlbQogewogfQogCi1SZWZQdHI8SFRNTE91dHB1dEVsZW1lbnQ+IEhU
TUxPdXRwdXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCitSZWY8SFRNTE91dHB1dEVs
ZW1lbnQ+IEhUTUxPdXRwdXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MT3V0cHV0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwg
Zm9ybSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxPdXRwdXRFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50LCBmb3JtKSk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTE91dHB1
dEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPdXRwdXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3V0cHV0RWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MT3V0cHV0RWxlbWVudCBmaW5hbCA6
IHB1YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
UHRyPEhUTUxPdXRwdXRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50JiwgSFRNTEZvcm1FbGVtZW50Kik7CisgICAgc3RhdGljIFJlZjxIVE1MT3V0cHV0RWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVu
dCopOwogCiAgICAgU3RyaW5nIHZhbHVlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRWYWx1ZShjb25z
dCBTdHJpbmcmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
YXJhZ3JhcGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksMTQgKzM5LDE0IEBAIGlu
bGluZSBIVE1MUGFyYWdyYXBoRWxlbWVudDo6SFRNTFBhcmFncmEKICAgICBBU1NFUlQoaGFzVGFn
TmFtZShwVGFnKSk7CiB9CiAKLVJlZlB0cjxIVE1MUGFyYWdyYXBoRWxlbWVudD4gSFRNTFBhcmFn
cmFwaEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTFBhcmFncmFw
aEVsZW1lbnQ+IEhUTUxQYXJhZ3JhcGhFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFBhcmFncmFwaEVsZW1lbnQocFRhZywg
ZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MUGFyYWdyYXBoRWxlbWVu
dChwVGFnLCBkb2N1bWVudCkpOwogfQogCi1SZWZQdHI8SFRNTFBhcmFncmFwaEVsZW1lbnQ+IEhU
TUxQYXJhZ3JhcGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxQYXJhZ3JhcGhFbGVtZW50PiBIVE1MUGFyYWdy
YXBoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxQYXJhZ3JhcGhFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTFBh
cmFncmFwaEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBIVE1MUGFyYWdy
YXBoRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhZ3JhcGhFbGVt
ZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFn
cmFwaEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxQYXJhZ3JhcGhFbGVtZW50IGZpbmFsIDogcHVibGljIEhU
TUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxQYXJhZ3JhcGhFbGVt
ZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxQYXJhZ3JhcGhF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3Rh
dGljIFJlZjxIVE1MUGFyYWdyYXBoRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3Rh
dGljIFJlZjxIVE1MUGFyYWdyYXBoRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIEhUTUxQYXJhZ3JhcGhFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGFyYW1FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQYXJhbUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQYXJhbUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw5ICszNyw5IEBA
IGlubGluZSBIVE1MUGFyYW1FbGVtZW50OjpIVE1MUGFyYW1FbGVtZW4KICAgICBBU1NFUlQoaGFz
VGFnTmFtZShwYXJhbVRhZykpOwogfQogCi1SZWZQdHI8SFRNTFBhcmFtRWxlbWVudD4gSFRNTFBh
cmFtRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKK1JlZjxIVE1MUGFyYW1FbGVtZW50PiBIVE1MUGFyYW1FbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFBhcmFtRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxQYXJhbUVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKIH0KIAogU3RyaW5nIEhUTUxQYXJhbUVsZW1lbnQ6Om5hbWUoKSBjb25zdApJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3
NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTFBh
cmFtRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZlB0cjxIVE1MUGFyYW1FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MUGFyYW1FbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBTdHJpbmcgbmFtZSgpIGNvbnN0
OwogICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUHJlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UHJlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFByZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw5ICszOCw5IEBAIGlubGlu
ZSBIVE1MUHJlRWxlbWVudDo6SFRNTFByZUVsZW1lbnQoY28KIHsKIH0KIAotUmVmUHRyPEhUTUxQ
cmVFbGVtZW50PiBIVE1MUHJlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MUHJlRWxlbWVudD4gSFRNTFByZUVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MUHJlRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxQcmVFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wgSFRNTFByZUVsZW1lbnQ6OmlzUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUHJlRWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MUHJlRWxlbWVudCBmaW5hbCA6
IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MUHJl
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0
YXRpYyBSZWY8SFRNTFByZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBIVE1MUHJlRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNz
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jl
c3NFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsOSArNTAsOSBAQCBI
VE1MUHJvZ3Jlc3NFbGVtZW50Ojp+SFRNTFByb2dyZXNzRWxlbWVuCiB7CiB9CiAKLVJlZlB0cjxI
VE1MUHJvZ3Jlc3NFbGVtZW50PiBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxQcm9ncmVz
c0VsZW1lbnQ+IEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPEhUTUxQcm9ncmVz
c0VsZW1lbnQ+IHByb2dyZXNzID0gYWRvcHRSZWYobmV3IEhUTUxQcm9ncmVzc0VsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpKTsKKyAgICBSZWY8SFRNTFByb2dyZXNzRWxlbWVudD4gcHJvZ3Jlc3Mg
PSBhZG9wdFJlZigqbmV3IEhUTUxQcm9ncmVzc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
ICAgICBwcm9ncmVzcy0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwogICAgIHJldHVybiBw
cm9ncmVzczsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVu
dC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIGNvbnN0IGRvdWJsZSBJbmRldGVybWluYXRlUG9zaXRpb247CiAgICAgc3RhdGljIGNv
bnN0IGRvdWJsZSBJbnZhbGlkUG9zaXRpb247CiAKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxQcm9n
cmVzc0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAg
ICBzdGF0aWMgUmVmPEhUTUxQcm9ncmVzc0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGRvdWJsZSB2YWx1ZSgpIGNvbnN0OwogICAgIHZvaWQg
c2V0VmFsdWUoZG91YmxlLCBFeGNlcHRpb25Db2RlJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxRdW90ZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDkgKzM3
LDkgQEAgaW5saW5lIEhUTUxRdW90ZUVsZW1lbnQ6OkhUTUxRdW90ZUVsZW1lbgogICAgIEFTU0VS
VChoYXNUYWdOYW1lKHFUYWcpIHx8IGhhc1RhZ05hbWUoYmxvY2txdW90ZVRhZykpOwogfQogCi1Q
YXNzUmVmUHRyPEhUTUxRdW90ZUVsZW1lbnQ+IEhUTUxRdW90ZUVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTFF1
b3RlRWxlbWVudD4gSFRNTFF1b3RlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEhUTUxRdW90ZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBIVE1MUXVvdGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wg
SFRNTFF1b3RlRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1
dGUpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuaAkocmV2
aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUXVvdGVFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBIVE1MUXVvdGVFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MUXVvdGVFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MUXVvdGVFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6
CiAgICAgSFRNTFF1b3RlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDIsOSArNDIsOSBAQCBpbmxpbmUgSFRNTFNjcmlwdEVsZW1lbnQ6
OkhUTUxTY3JpcHRFbGVtCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoc2NyaXB0VGFnKSk7CiB9CiAK
LVJlZlB0cjxIVE1MU2NyaXB0RWxlbWVudD4gSFRNTFNjcmlwdEVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgd2FzSW5z
ZXJ0ZWRCeVBhcnNlciwgYm9vbCBhbHJlYWR5U3RhcnRlZCkKK1JlZjxIVE1MU2NyaXB0RWxlbWVu
dD4gSFRNTFNjcmlwdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCBhbHJl
YWR5U3RhcnRlZCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxTY3JpcHRFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50LCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBhbHJlYWR5U3RhcnRlZCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxTY3JpcHRFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50LCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBhbHJlYWR5U3RhcnRlZCkpOwogfQogCiBib29s
IEhUTUxTY3JpcHRFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJp
YnV0ZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgJ
KHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEhUTUxTY3JpcHRFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50LCBw
dWJsaWMgU2NyaXB0RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MU2Ny
aXB0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wg
d2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCBhbHJlYWR5U3RhcnRlZCA9IGZhbHNlKTsKKyAgICBz
dGF0aWMgUmVmPEhUTUxTY3JpcHRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIGFscmVhZHlTdGFydGVk
ID0gZmFsc2UpOwogCiAgICAgU3RyaW5nIHRleHQoKSBjb25zdCB7IHJldHVybiBzY3JpcHRDb250
ZW50KCk7IH0KICAgICB2b2lkIHNldFRleHQoY29uc3QgU3RyaW5nJik7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTgwLDEwICs4MCwxMCBAQCBIVE1MU2VsZWN0RWxlbWVudDo6SFRNTFNlbGVjdEVsZW1lbnQo
Y29uCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoc2VsZWN0VGFnKSk7CiB9CiAKLVJlZlB0cjxIVE1M
U2VsZWN0RWxlbWVudD4gSFRNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkK
K1JlZjxIVE1MU2VsZWN0RWxlbWVudD4gSFRNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVu
dCogZm9ybSkKIHsKICAgICBBU1NFUlQodGFnTmFtZS5tYXRjaGVzKHNlbGVjdFRhZykpOwotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFNlbGVjdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQs
IGZvcm0pKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MU2VsZWN0RWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCwgZm9ybSkpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpkaWRS
ZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlIHN0eWxlQ2hhbmdlKQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICsz
OCw3IEBAIGNsYXNzIEhUTUxPcHRpb25zQ29sbGVjdGlvbjsKIAogY2xhc3MgSFRNTFNlbGVjdEVs
ZW1lbnQgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSwgcHVibGljIFR5
cGVBaGVhZERhdGFTb3VyY2UgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTFNlbGVj
dEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9y
bUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxTZWxlY3RFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCBpbnQgc2VsZWN0ZWRJbmRleCgpIGNvbnN0OwogICAgIHZvaWQgc2V0U2Vs
ZWN0ZWRJbmRleChpbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxl
bWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNv
dXJjZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw5ICs0Niw5IEBAIGlubGluZSBI
VE1MU291cmNlRWxlbWVudDo6SFRNTFNvdXJjZUVsZW0KICAgICBBU1NFUlQoaGFzVGFnTmFtZShz
b3VyY2VUYWcpKTsKIH0KIAotUmVmUHRyPEhUTUxTb3VyY2VFbGVtZW50PiBIVE1MU291cmNlRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKK1JlZjxIVE1MU291cmNlRWxlbWVudD4gSFRNTFNvdXJjZUVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MU291cmNlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxTb3VyY2VFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CiB9CiAKIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgSFRNTFNv
dXJjZUVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgJKHJldmlzaW9uIDE3
Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhU
TUxTb3VyY2VFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmUHRyPEhUTUxTb3VyY2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MU291cmNlRWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgU3RyaW5nIG1lZGlh
KCkgY29uc3Q7CiAgICAgU3RyaW5nIHR5cGUoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNwYW5FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTcGFuRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNwYW5FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsOSArMzgs
OSBAQCBIVE1MU3BhbkVsZW1lbnQ6OkhUTUxTcGFuRWxlbWVudChjb25zdCBRCiAgICAgQVNTRVJU
KGhhc1RhZ05hbWUoc3BhblRhZykpOwogfQogCi1SZWZQdHI8SFRNTFNwYW5FbGVtZW50PiBIVE1M
U3BhbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCitSZWY8SFRNTFNwYW5FbGVtZW50PiBIVE1MU3BhbkVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MU3BhbkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MU3BhbkVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpKTsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3BhbkVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTcGFuRWxlbWVudC5o
CShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTcGFuRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgSFRNTFNwYW5FbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxTcGFuRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTFNwYW5FbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAg
ICAgSFRNTFNwYW5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4
NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02Myw5ICs2Myw5IEBAIEhUTUxTdHlsZUVsZW1lbnQ6On5IVE1MU3R5bGVFbGVt
ZW50KCkKICAgICBzdHlsZUxvYWRFdmVudFNlbmRlcigpLmNhbmNlbEV2ZW50KCp0aGlzKTsKIH0K
IAotUmVmUHRyPEhUTUxTdHlsZUVsZW1lbnQ+IEhUTUxTdHlsZUVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgY3JlYXRl
ZEJ5UGFyc2VyKQorUmVmPEhUTUxTdHlsZUVsZW1lbnQ+IEhUTUxTdHlsZUVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wg
Y3JlYXRlZEJ5UGFyc2VyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFN0eWxlRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSFRNTFN0eWxlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgY3JlYXRlZEJ5
UGFyc2VyKSk7CiB9CiAKIHZvaWQgSFRNTFN0eWxlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMzYsNyArMzYsNyBAQCB0eXBlZGVmIEV2ZW50U2VuZGVyPEhUTUxTdHlsZUVsZW1lbnQ+IFN0
CiAKIGNsYXNzIEhUTUxTdHlsZUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTFN0eWxlRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKKyAgICBz
dGF0aWMgUmVmPEhUTUxTdHlsZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAgICAgdmlydHVhbCB+SFRNTFN0eWxl
RWxlbWVudCgpOwogCiAgICAgQ1NTU3R5bGVTaGVldCogc2hlZXQoKSBjb25zdCB7IHJldHVybiBt
X3N0eWxlU2hlZXRPd25lci5zaGVldCgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTdW1tYXJ5RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU3VtbWFyeUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDkgKzUy
LDkgQEAgUmVmUHRyPFN1bW1hcnlDb250ZW50RWxlbWVudD4gU3VtbWFyeUNvbgogICAgIHJldHVy
biBhZG9wdFJlZihuZXcgU3VtbWFyeUNvbnRlbnRFbGVtZW50KGRvY3VtZW50KSk7CiB9CiAKLVJl
ZlB0cjxIVE1MU3VtbWFyeUVsZW1lbnQ+IEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MU3Vt
bWFyeUVsZW1lbnQ+IEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBSZWZQdHI8SFRNTFN1bW1h
cnlFbGVtZW50PiBzdW1tYXJ5ID0gYWRvcHRSZWYobmV3IEhUTUxTdW1tYXJ5RWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkpOworICAgIFJlZjxIVE1MU3VtbWFyeUVsZW1lbnQ+IHN1bW1hcnkgPSBh
ZG9wdFJlZigqbmV3IEhUTUxTdW1tYXJ5RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogICAg
IHN1bW1hcnktPmVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKICAgICByZXR1cm4gc3VtbWFy
eTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaAkocmV2
aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksOCBAQCBjbGFzcyBIVE1MRGV0YWlsc0VsZW1l
bnQ7CiAKIGNsYXNzIEhUTUxTdW1tYXJ5RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MU3VtbWFyeUVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxT
dW1tYXJ5RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwor
CiAgICAgYm9vbCBpc01haW5TdW1tYXJ5KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHdpbGxS
ZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgb3ZlcnJpZGU7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4
NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzksOSArMzksOSBAQCBpbmxpbmUgSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQ6OkhUTUxUYWJsCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoY2FwdGlvblRhZykpOwogfQog
Ci1SZWZQdHI8SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ+IEhUTUxUYWJsZUNhcHRpb25FbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQorUmVmPEhUTUxUYWJsZUNhcHRpb25FbGVtZW50PiBIVE1MVGFibGVDYXB0aW9uRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxUYWJsZUNhcHRpb25FbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTFRhYmxlQ2FwdGlv
bkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBIVE1MVGFibGVDYXB0aW9u
RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25F
bGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxUYWJsZUNhcHRpb25FbGVtZW50IGZpbmFsIDog
cHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CisgICAgc3RhdGljIFJlZjxIVE1MVGFibGVDYXB0aW9uRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIEhUTUxUYWJsZUNhcHRp
b25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3
NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NCw5ICs0NCw5IEBAIGlubGluZSBIVE1MVGFibGVDZWxsRWxlbWVudDo6
SFRNTFRhYmxlQ2UKIHsKIH0KIAotUmVmUHRyPEhUTUxUYWJsZUNlbGxFbGVtZW50PiBIVE1MVGFi
bGVDZWxsRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MVGFibGVDZWxsRWxlbWVudD4gSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MVGFibGVDZWxsRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxUYWJsZUNl
bGxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGludCBIVE1MVGFibGVDZWxsRWxl
bWVudDo6Y29sU3BhbigpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUNlbGxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVDZWxsRWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUNlbGxFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MVGFibGVDZWxsRWxlbWVudCBmaW5hbCA6
IHB1YmxpYyBIVE1MVGFibGVQYXJ0RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0
cjxIVE1MVGFibGVDZWxsRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGludCBjZWxsSW5kZXgoKSBjb25z
dDsKICAgICBpbnQgY29sU3BhbigpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVDb2xFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw5
ICs0Miw5IEBAIGlubGluZSBIVE1MVGFibGVDb2xFbGVtZW50OjpIVE1MVGFibGVDb2wKIHsKIH0K
IAotUmVmUHRyPEhUTUxUYWJsZUNvbEVsZW1lbnQ+IEhUTUxUYWJsZUNvbEVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8
SFRNTFRhYmxlQ29sRWxlbWVudD4gSFRNTFRhYmxlQ29sRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEhUTUxUYWJsZUNvbEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MVGFibGVDb2xFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KSk7CiB9CiAKIGJvb2wgSFRNTFRhYmxlQ29sRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxUYWJsZUNvbEVs
ZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTFRhYmxlUGFydEVsZW1lbnQgewogcHVibGljOgotICAg
IHN0YXRpYyBSZWZQdHI8SFRNTFRhYmxlQ29sRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MVGFibGVDb2xF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsK
IAogICAgIGludCBzcGFuKCkgY29uc3QgeyByZXR1cm4gbV9zcGFuOyB9CiAgICAgdm9pZCBzZXRT
cGFuKGludCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3LDE0ICs1NywxNCBAQCBIVE1MVGFibGVFbGVtZW50
OjpIVE1MVGFibGVFbGVtZW50KGNvbnN0CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUodGFibGVUYWcp
KTsKIH0KIAotUmVmUHRyPEhUTUxUYWJsZUVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTFRhYmxlRWxlbWVudD4gSFRNTFRhYmxlRWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEhUTUxUYWJsZUVsZW1lbnQodGFibGVUYWcsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSFRNTFRhYmxlRWxlbWVudCh0YWJsZVRhZywgZG9jdW1lbnQpKTsKIH0KIAot
UmVmUHRyPEhUTUxUYWJsZUVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTFRhYmxl
RWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhU
TUxUYWJsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBIVE1MVGFibGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIEhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50KiBIVE1MVGFibGVFbGVtZW50OjpjYXB0aW9uKCkgY29uc3QKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMzcsOCArMzcsOCBAQCBjbGFzcyBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDsKIAogY2xhc3Mg
SFRNTFRhYmxlRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZlB0cjxIVE1MVGFibGVFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKLSAg
ICBzdGF0aWMgUmVmUHRyPEhUTUxUYWJsZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxUYWJsZUVsZW1lbnQ+IGNyZWF0
ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTFRhYmxlRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQqIGNhcHRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldENhcHRpb24oUGFzc1JlZlB0cjxI
VE1MVGFibGVDYXB0aW9uRWxlbWVudD4sIEV4Y2VwdGlvbkNvZGUmKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDQsMTQgKzQ0LDE0IEBAIEhUTUxUYWJsZVJvd0VsZW1lbnQ6OkhUTUxUYWJsZVJv
d0VsZW1lbnQKICAgICBBU1NFUlQoaGFzVGFnTmFtZSh0clRhZykpOwogfQogCi1SZWZQdHI8SFRN
TFRhYmxlUm93RWxlbWVudD4gSFRNTFRhYmxlUm93RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCkKK1JlZjxIVE1MVGFibGVSb3dFbGVtZW50PiBIVE1MVGFibGVSb3dFbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRN
TFRhYmxlUm93RWxlbWVudCh0clRhZywgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBIVE1MVGFibGVSb3dFbGVtZW50KHRyVGFnLCBkb2N1bWVudCkpOwogfQogCi1SZWZQdHI8
SFRNTFRhYmxlUm93RWxlbWVudD4gSFRNTFRhYmxlUm93RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MVGFibGVS
b3dFbGVtZW50PiBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSFRNTFRhYmxlUm93RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEhUTUxUYWJsZVJvd0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0K
IAogaW50IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OnJvd0luZGV4KCkgY29uc3QKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzIsOCArMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxUYWJs
ZVJvd0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTFRhYmxlUGFydEVsZW1lbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTFRhYmxlUm93RWxlbWVudD4gY3JlYXRlKERvY3VtZW50
Jik7Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MVGFibGVSb3dFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MVGFibGVSb3dF
bGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxUYWJsZVJvd0Vs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGlu
dCByb3dJbmRleCgpIGNvbnN0OwogICAgIHZvaWQgc2V0Um93SW5kZXgoaW50KTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwCShyZXZp
c2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsOSArNDIsOSBAQCBpbmxpbmUgSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQ6OkhUTUxUYWJsCiB7CiB9CiAKLVJlZlB0cjxIVE1MVGFibGVTZWN0aW9u
RWxlbWVudD4gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQ+IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkpOwogfQogCiBjb25zdCBTdHlsZVByb3BlcnRpZXMqIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
OjphZGRpdGlvbmFsUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKQpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTFRhYmxlUGFydEVsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVm
PEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGluc2VydFJvdyhFeGNlcHRpb25D
b2RlJiBlYykgeyByZXR1cm4gaW5zZXJ0Um93KC0xLCBlYyk7IH0KICAgICBSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGluc2VydFJvdyhpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTUsOSArNTUsOSBAQCBIVE1MVGVtcGxhdGVFbGVtZW50Ojp+SFRNTFRlbXBs
YXRlRWxlbWVuCiAgICAgICAgIG1fY29udGVudC0+Y2xlYXJIb3N0KCk7CiB9CiAKLVJlZlB0cjxI
VE1MVGVtcGxhdGVFbGVtZW50PiBIVE1MVGVtcGxhdGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxUZW1wbGF0
ZUVsZW1lbnQ+IEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBIVE1MVGVtcGxhdGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSFRNTFRlbXBsYXRlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQog
CiBEb2N1bWVudEZyYWdtZW50KiBIVE1MVGVtcGxhdGVFbGVtZW50Ojpjb250ZW50KCkgY29uc3QK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCShyZXZpc2lv
biAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBUZW1wbGF0ZUNvbnRlbnREb2N1
bWVudEZyYWdtZW50OwogCiBjbGFzcyBIVE1MVGVtcGxhdGVFbGVtZW50IGZpbmFsIDogcHVibGlj
IEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxUZW1wbGF0ZUVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0
aWMgUmVmPEhUTUxUZW1wbGF0ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKICAgICB2aXJ0dWFsIH5IVE1MVGVtcGxhdGVFbGVtZW50KCk7CiAKICAgICBE
b2N1bWVudEZyYWdtZW50KiBjb250ZW50KCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEwMSw5ICsxMDEsOSBAQCBIVE1MVGV4dEFyZWFFbGVtZW50OjpIVE1MVGV4dEFyZWFFbGVtZW50
CiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKIH0KIAotUmVm
UHRyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxl
bWVudCogZm9ybSkKK1JlZjxIVE1MVGV4dEFyZWFFbGVtZW50PiBIVE1MVGV4dEFyZWFFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCiB7Ci0gICAgUmVmUHRyPEhUTUxUZXh0QXJlYUVsZW1l
bnQ+IHRleHRBcmVhID0gYWRvcHRSZWYobmV3IEhUTUxUZXh0QXJlYUVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQsIGZvcm0pKTsKKyAgICBSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4gdGV4dEFyZWEg
PSBhZG9wdFJlZigqbmV3IEhUTUxUZXh0QXJlYUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZv
cm0pKTsKICAgICB0ZXh0QXJlYS0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwogICAgIHJl
dHVybiB0ZXh0QXJlYTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBW
aXNpYmxlU2VsZWN0aW9uOwogCiBjbGFzcyBIVE1MVGV4dEFyZWFFbGVtZW50IGZpbmFsIDogcHVi
bGljIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
UHRyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxUZXh0QXJlYUVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVs
ZW1lbnQqKTsKIAogICAgIGludCBjb2xzKCkgY29uc3QgeyByZXR1cm4gbV9jb2xzOyB9CiAgICAg
aW50IHJvd3MoKSBjb25zdCB7IHJldHVybiBtX3Jvd3M7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRpdGxlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGl0bGVFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsOSAr
NDQsOSBAQCBpbmxpbmUgSFRNTFRpdGxlRWxlbWVudDo6SFRNTFRpdGxlRWxlbWVuCiAgICAgQVNT
RVJUKGhhc1RhZ05hbWUodGl0bGVUYWcpKTsKIH0KIAotUmVmUHRyPEhUTUxUaXRsZUVsZW1lbnQ+
IEhUTUxUaXRsZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTFRpdGxlRWxlbWVudD4gSFRNTFRpdGxlRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxUaXRsZUVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MVGl0bGVFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVl
c3QgSFRNTFRpdGxlRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmIGluc2VydGlv
blBvaW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmgJKHJldmlz
aW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgSFRNTFRpdGxlRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MVGl0bGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MVGl0bGVFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBTdHJpbmcgdGV4
dCgpIGNvbnN0OwogICAgIHZvaWQgc2V0VGV4dChjb25zdCBTdHJpbmcmKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjQsOSArNjQsOSBAQCBIVE1MVHJhY2tFbGVtZW50Ojp+SFRNTFRyYWNrRWxlbWVudCgpCiAg
ICAgICAgIG1fdHJhY2stPmNsZWFyQ2xpZW50KCk7CiB9CiAKLVJlZlB0cjxIVE1MVHJhY2tFbGVt
ZW50PiBIVE1MVHJhY2tFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxUcmFja0VsZW1lbnQ+IEhUTUxUcmFja0Vs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MVHJhY2tFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTFRyYWNrRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25S
ZXF1ZXN0IEhUTUxUcmFja0VsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2RlJiBpbnNl
cnRpb25Qb2ludCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCShy
ZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBIVE1MTWVkaWFFbGVtZW50
OwogCiBjbGFzcyBIVE1MVHJhY2tFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50LCBw
dWJsaWMgVGV4dFRyYWNrQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxU
cmFja0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAg
ICBzdGF0aWMgUmVmPEhUTUxUcmFja0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIAogICAgIFN0cmluZyBraW5kKCk7CiAgICAgdm9pZCBzZXRLaW5kKGNv
bnN0IFN0cmluZyYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVTGlzdEVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxNCArMzcsMTQgQEAgSFRNTFVMaXN0RWxl
bWVudDo6SFRNTFVMaXN0RWxlbWVudChjb25zdAogICAgIEFTU0VSVChoYXNUYWdOYW1lKHVsVGFn
KSk7CiB9CiAKLVJlZlB0cjxIVE1MVUxpc3RFbGVtZW50PiBIVE1MVUxpc3RFbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxVTGlzdEVsZW1lbnQ+IEhUTUxVTGlzdEVs
ZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBIVE1MVUxpc3RFbGVtZW50KHVsVGFnLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEhUTUxVTGlzdEVsZW1lbnQodWxUYWcsIGRvY3VtZW50KSk7CiB9CiAKLVJlZlB0
cjxIVE1MVUxpc3RFbGVtZW50PiBIVE1MVUxpc3RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxVTGlzdEVsZW1l
bnQ+IEhUTUxVTGlzdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MVUxp
c3RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SFRNTFVMaXN0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBib29sIEhUTUxVTGlz
dEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQuaAkocmV2
aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBIVE1MVUxpc3RFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxVTGlzdEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYp
OwotICAgIHN0YXRpYyBSZWZQdHI8SFRNTFVMaXN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTFVMaXN0RWxlbWVudD4g
Y3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MVUxpc3RFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgSFRN
TFVMaXN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFVua25vd25FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVW5rbm93bkVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVW5rbm93bkVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxVbmtu
b3duRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZlB0cjxIVE1MVW5rbm93bkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgc3RhdGljIFJlZjxIVE1MVW5rbm93
bkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxVbmtub3du
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBIVE1MVW5rbm93bkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKICAgICB9CiAKIHByaXZh
dGU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAJKHJldmlz
aW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU3LDkgKzU3LDkgQEAgaW5saW5lIEhUTUxWaWRlb0VsZW1lbnQ6
OkhUTUxWaWRlb0VsZW1lbgogICAgICAgICBtX2RlZmF1bHRQb3N0ZXJVUkwgPSBkb2N1bWVudC5z
ZXR0aW5ncygpLT5kZWZhdWx0VmlkZW9Qb3N0ZXJVUkwoKTsKIH0KIAotUmVmUHRyPEhUTUxWaWRl
b0VsZW1lbnQ+IEhUTUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQorUmVmPEhU
TUxWaWRlb0VsZW1lbnQ+IEhUTUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQog
ewotICAgIFJlZlB0cjxIVE1MVmlkZW9FbGVtZW50PiB2aWRlb0VsZW1lbnQoYWRvcHRSZWYobmV3
IEhUTUxWaWRlb0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGNyZWF0ZWRCeVBhcnNlcikpKTsK
KyAgICBSZWY8SFRNTFZpZGVvRWxlbWVudD4gdmlkZW9FbGVtZW50ID0gYWRvcHRSZWYoKm5ldyBI
VE1MVmlkZW9FbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBjcmVhdGVkQnlQYXJzZXIpKTsKICAg
ICB2aWRlb0VsZW1lbnQtPnN1c3BlbmRJZk5lZWRlZCgpOwogICAgIHJldHVybiB2aWRlb0VsZW1l
bnQ7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAkocmV2aXNp
b24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgSFRNTEltYWdlTG9hZGVyOwogCiBj
bGFzcyBIVE1MVmlkZW9FbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxNZWRpYUVsZW1lbnQgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wpOworICAgIHN0YXRpYyBSZWY8SFRNTFZp
ZGVvRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wp
OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgdmlkZW9XaWR0aCgpIGNvbnN0OwogICAg
IFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIHZpZGVvSGVpZ2h0KCkgY29uc3Q7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxXQlJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxXQlJFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MV0JSRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDkgKzMzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOwogCi1SZWZQdHI8SFRNTFdCUkVsZW1lbnQ+IEhUTUxXQlJFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxX
QlJFbGVtZW50PiBIVE1MV0JSRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhU
TUxXQlJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSFRNTFdCUkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogSFRNTFdCUkVsZW1l
bnQ6OkhUTUxXQlJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFdCUkVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxXQlJFbGVtZW50LmgJKHJldmlz
aW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFdCUkVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEhUTUxXQlJFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmUHRyPEhUTUxXQlJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MV0JSRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIEhUTUxXQlJF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNl
L1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCw5
ICs1MCw5IEBAIE1hdGhNTEVsZW1lbnQ6Ok1hdGhNTEVsZW1lbnQoY29uc3QgUXVhbGkKIHsKIH0K
ICAgICAKLVJlZlB0cjxNYXRoTUxFbGVtZW50PiBNYXRoTUxFbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPE1hdGhNTEVs
ZW1lbnQ+IE1hdGhNTEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNYXRoTUxF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWF0
aE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBib29sIE1hdGhNTEVsZW1lbnQ6
OmlzUHJlc2VudGF0aW9uTWF0aE1MKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL21hdGht
bC9NYXRoTUxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTEVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1hdGhNTEVsZW1lbnQgOiBwdWJsaWMgU3R5bGVkRWxlbWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxNYXRoTUxFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPE1h
dGhNTEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYpOwogCiAgICAgaW50IGNvbFNwYW4oKSBjb25zdDsKICAgICBpbnQgcm93U3BhbigpIGNvbnN0
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243964</attachid>
            <date>2015-01-04 22:27:11 -0800</date>
            <delta_ts>2015-01-05 11:40:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140063-20150104222715.patch</filename>
            <type>text/plain</type>
            <size>112078</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3Nzg4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE1LTAxLTA0ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW9kZXJuaXplIHRoZSBIVE1MRWxlbWVu
dCBmYWN0b3J5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDAwNjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYWtlIHRoZSBIVE1MRWxlbWVudCAoYW5kIGRlcml2ZWQgY2xhc3NlcykgY3JlYXRlIGZ1bmN0
aW9ucyAKKyAgICAgICAgYW5kIEhUTUxFbGVtZW50RmFjdG9yeSByZXR1cm4gUmVmcyByYXRoZXIg
dGhhbiBSZWZQdHIvUGFzc1JlZlB0ci4KKworICAgICAgICAqIEZpbGVzIGVsaWRlZCAqCisKIDIw
MTUtMDEtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vZGVy
bml6ZSBhbmQgdGlnaHRlbiB1cCBIVE1MRG9jdW1lbnRQYXJzZXIKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9tYWtlX25hbWVzLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9t
YWtlX25hbWVzLnBsCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vbWFr
ZV9uYW1lcy5wbAkod29ya2luZyBjb3B5KQpAQCAtMzgxLDcgKzM4MSw5IEBAIHN1YiBwcmludENv
bnN0cnVjdG9yU2lnbmF0dXJlCiB7CiAgICAgbXkgKCRGLCAkdGFnTmFtZSwgJGNvbnN0cnVjdG9y
TmFtZSwgJGNvbnN0cnVjdG9yVGFnTmFtZSkgPSBAXzsKIAotICAgIHByaW50IEYgInN0YXRpYyBQ
YXNzUmVmUHRyPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiAke2NvbnN0cnVjdG9yTmFt
ZX1Db25zdHJ1Y3Rvcihjb25zdCBRdWFsaWZpZWROYW1lJiAkY29uc3RydWN0b3JUYWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQiOworICAgIG15ICRzbWFydFBvaW50ZXJUeXBlID0gKCRwYXJhbWV0
ZXJze25hbWVzcGFjZX0gZXEgIk1hdGhNTCIgfHwgJHBhcmFtZXRlcnN7bmFtZXNwYWNlfSBlcSAi
U1ZHIikgPyAiUGFzc1JlZlB0ciIgOiAiUmVmIjsKKworICAgIHByaW50IEYgInN0YXRpYyAkc21h
cnRQb2ludGVyVHlwZTwkcGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxlbWVudD4gJHtjb25zdHJ1Y3Rv
ck5hbWV9Q29uc3RydWN0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgJGNvbnN0cnVjdG9yVGFnTmFt
ZSwgRG9jdW1lbnQmIGRvY3VtZW50IjsKICAgICBpZiAoJHBhcmFtZXRlcnN7bmFtZXNwYWNlfSBl
cSAiSFRNTCIpIHsKICAgICAgICAgcHJpbnQgRiAiLCBIVE1MRm9ybUVsZW1lbnQqIjsKICAgICAg
ICAgcHJpbnQgRiAiIGZvcm1FbGVtZW50IiBpZiAkZW5hYmxlZFRhZ3N7JHRhZ05hbWV9e2NvbnN0
cnVjdG9yTmVlZHNGb3JtRWxlbWVudH07CkBAIC00MDcsNyArNDA5LDcgQEAgc3ViIHByaW50Q29u
c3RydWN0b3JJbnRlcmlvcgogICAgICAgICBwcmludCBGIDw8RU5ECiAgICAgU2V0dGluZ3MqIHNl
dHRpbmdzID0gZG9jdW1lbnQuc2V0dGluZ3MoKTsKICAgICBpZiAoIU1lZGlhUGxheWVyOjppc0F2
YWlsYWJsZSgpIHx8IChzZXR0aW5ncyAmJiAhc2V0dGluZ3MtPm1lZGlhRW5hYmxlZCgpKSkKLSAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiAkcGFyYW1ldGVyc3tmYWxsYmFja0ludGVy
ZmFjZU5hbWV9OjpjcmVhdGUoJGNvbnN0cnVjdG9yVGFnTmFtZSwgZG9jdW1lbnQpOwogICAgIAog
RU5ECiA7CkBAIC05MjMsNiArOTI1LDggQEAgc3ViIHByaW50RmFjdG9yeUNwcEZpbGUKICAgICAk
Zm9ybUVsZW1lbnRBcmd1bWVudEZvckRlY2xhcmF0aW9uID0gIiwgSFRNTEZvcm1FbGVtZW50KiIg
aWYgJHBhcmFtZXRlcnN7bmFtZXNwYWNlfSBlcSAiSFRNTCI7CiAgICAgJGZvcm1FbGVtZW50QXJn
dW1lbnRGb3JEZWZpbml0aW9uID0gIiwgSFRNTEZvcm1FbGVtZW50KiBmb3JtRWxlbWVudCIgaWYg
JHBhcmFtZXRlcnN7bmFtZXNwYWNlfSBlcSAiSFRNTCI7CiAKKyAgICBteSAkc21hcnRQb2ludGVy
VHlwZSA9ICgkcGFyYW1ldGVyc3tuYW1lc3BhY2V9IGVxICJNYXRoTUwiIHx8ICRwYXJhbWV0ZXJz
e25hbWVzcGFjZX0gZXEgIlNWRyIpID8gIlBhc3NSZWZQdHIiIDogIlJlZiI7CisKICAgICBwcmlu
dExpY2Vuc2VIZWFkZXIoJEYpOwogCiAgICAgcHJpbnQgRiA8PEVORApAQCAtOTU1LDcgKzk1OSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlICRwYXJhbWV0ZXJze25h
bWVzcGFjZX1OYW1lczsKIAotdHlwZWRlZiBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJze25hbWVzcGFj
ZX1FbGVtZW50PiAoKiRwYXJhbWV0ZXJze25hbWVzcGFjZX1Db25zdHJ1Y3RvckZ1bmN0aW9uKShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmJGZvcm1FbGVtZW50QXJndW1lbnRGb3JEZWNs
YXJhdGlvbiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwordHlwZWRlZiAkc21hcnRQb2ludGVyVHlw
ZTwkcGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxlbWVudD4gKCokcGFyYW1ldGVyc3tuYW1lc3BhY2V9
Q29uc3RydWN0b3JGdW5jdGlvbikoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiRmb3Jt
RWxlbWVudEFyZ3VtZW50Rm9yRGVjbGFyYXRpb24sIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKIAog
RU5ECiAgICAgOwpAQCAtOTg1LDcgKzk4OSw3IEBAIEVORAogICAgICAgICBtYXAuYWRkKHRhYmxl
W2ldLm5hbWUubG9jYWxOYW1lKCkuaW1wbCgpLCB0YWJsZVtpXS5mdW5jdGlvbik7CiB9CiAKLVBh
c3NSZWZQdHI8JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVsZW1lbnQ+ICRwYXJhbWV0ZXJze25hbWVz
cGFjZX1FbGVtZW50RmFjdG9yeTo6Y3JlYXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBEb2N1bWVudCYgZG9jdW1lbnQkZm9ybUVsZW1lbnRBcmd1bWVudEZvckRlZmluaXRpb24s
IGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQorJHNtYXJ0UG9pbnRlclR5cGU8JHBhcmFtZXRlcnN7bmFt
ZXNwYWNlfUVsZW1lbnQ+ICRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50RmFjdG9yeTo6Y3Jl
YXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQk
Zm9ybUVsZW1lbnRBcmd1bWVudEZvckRlZmluaXRpb24sIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQog
ewogRU5ECiAgICAgOwpAQCAtMTAxMCwxNSArMTAxNCwxNCBAQCBFTkQKICAgICA7CiAKICAgICBp
ZiAoJHBhcmFtZXRlcnN7bmFtZXNwYWNlfSBlcSAiSFRNTCIpIHsKLSAgICAgICAgcHJpbnQgRiAi
ICAgICAgICBpZiAoUmVmUHRyPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiBlbGVtZW50
ID0gZnVuY3Rpb24obmFtZSwgZG9jdW1lbnQsIGZvcm1FbGVtZW50LCBjcmVhdGVkQnlQYXJzZXIp
KVxuIjsKLSAgICAgICAgcHJpbnQgRiAiICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQucmVsZWFz
ZSgpO1xuIjsKKyAgICAgICAgcHJpbnQgRiAiICAgICAgICByZXR1cm4gZnVuY3Rpb24obmFtZSwg
ZG9jdW1lbnQsIGZvcm1FbGVtZW50LCBjcmVhdGVkQnlQYXJzZXIpO1xuIjsKICAgICB9IGVsc2Ug
ewogICAgICAgICBwcmludCBGICIgICAgICAgIGlmIChSZWZQdHI8JHBhcmFtZXRlcnN7bmFtZXNw
YWNlfUVsZW1lbnQ+IGVsZW1lbnQgPSBmdW5jdGlvbihuYW1lLCBkb2N1bWVudCwgY3JlYXRlZEJ5
UGFyc2VyKSlcbiI7CiAgICAgICAgIHByaW50IEYgIiAgICAgICAgICAgIHJldHVybiBlbGVtZW50
LnJlbGVhc2UoKTtcbiI7CiAgICAgfQogCi0gICAgcHJpbnQgRiAiICAgfVxuIjsKLSAgICBwcmlu
dCBGICIgICByZXR1cm4gJHBhcmFtZXRlcnN7ZmFsbGJhY2tJbnRlcmZhY2VOYW1lfTo6Y3JlYXRl
KG5hbWUsIGRvY3VtZW50KTtcbiI7CisgICAgcHJpbnQgRiAiICAgIH1cbiI7CisgICAgcHJpbnQg
RiAiICAgIHJldHVybiAkcGFyYW1ldGVyc3tmYWxsYmFja0ludGVyZmFjZU5hbWV9OjpjcmVhdGUo
bmFtZSwgZG9jdW1lbnQpO1xuIjsKIAogICAgIHByaW50IEYgPDxFTkQKIH0KQEAgLTEwMzksNiAr
MTA0Miw4IEBAIHN1YiBwcmludEZhY3RvcnlIZWFkZXJGaWxlCiAgICAgbXkgJEY7CiAgICAgb3Bl
biBGLCAiPiRoZWFkZXJQYXRoIjsKIAorICAgIG15ICRzbWFydFBvaW50ZXJUeXBlID0gKCRwYXJh
bWV0ZXJze25hbWVzcGFjZX0gZXEgIk1hdGhNTCIgfHwgJHBhcmFtZXRlcnN7bmFtZXNwYWNlfSBl
cSAiU1ZHIikgPyAiUGFzc1JlZlB0ciIgOiAiUmVmIjsKKwogICAgIHByaW50TGljZW5zZUhlYWRl
cigkRik7CiAKICAgICBwcmludCBGPDxFTkQKQEAgLTEwNjAsNyArMTA2NSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIEVORAogOwogCi1wcmludCBGICIgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiBjcmVhdGVFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYiOworcHJpbnQgRiAiICAgICAgICBzdGF0aWMgJHNtYXJ0UG9p
bnRlclR5cGU8JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiI7CiBwcmludCBGICIsIEhUTUxGb3JtRWxlbWVu
dCogPSBudWxscHRyIiBpZiAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9IGVxICJIVE1MIjsKIHByaW50
IEYgIiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIgPSBmYWxzZSk7XG4iOwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNl
L1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5NSwx
MiArODk1LDEyIEBAIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZUxpc3RJdGVtRWwKICAg
ICByZXR1cm4gSFRNTExJRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIH0KIAotUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gY3JlYXRlSFRNTEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lKQorUmVmPEhUTUxFbGVtZW50PiBjcmVhdGVIVE1MRWxlbWVu
dChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpCiB7CiAgICAg
cmV0dXJuIEhUTUxFbGVtZW50RmFjdG9yeTo6Y3JlYXRlRWxlbWVudChuYW1lLCBkb2N1bWVudCk7
CiB9CiAKLVBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZUhUTUxFbGVtZW50KERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiB0YWdOYW1lKQorUmVmPEhUTUxFbGVtZW50
PiBjcmVhdGVIVE1MRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdGFnTmFtZSkKIHsKICAgICByZXR1cm4gY3JlYXRlSFRNTEVsZW1lbnQoZG9jdW1lbnQsIFF1
YWxpZmllZE5hbWUobnVsbEF0b20sIHRhZ05hbWUsIHhodG1sTmFtZXNwYWNlVVJJKSk7CiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oCShyZXZpc2lvbiAxNzc4NzUpCisr
KyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIwNCw4ICsyMDQsOCBAQCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVCcmVha0VsZW1l
CiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVPcmRlcmVkTGlzdEVsZW1lbnQoRG9jdW1l
bnQmKTsKIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZVVub3JkZXJlZExpc3RFbGVtZW50
KERvY3VtZW50Jik7CiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVMaXN0SXRlbUVsZW1l
bnQoRG9jdW1lbnQmKTsKLVBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZUhUTUxFbGVtZW50
KERvY3VtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gY3JlYXRlSFRNTEVsZW1lbnQoRG9jdW1lbnQmLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKK1Jl
ZjxIVE1MRWxlbWVudD4gY3JlYXRlSFRNTEVsZW1lbnQoRG9jdW1lbnQmLCBjb25zdCBRdWFsaWZp
ZWROYW1lJik7CitSZWY8SFRNTEVsZW1lbnQ+IGNyZWF0ZUhUTUxFbGVtZW50KERvY3VtZW50Jiwg
Y29uc3QgQXRvbWljU3RyaW5nJik7CiAKIEhUTUxFbGVtZW50KiBlbmNsb3NpbmdMaXN0KE5vZGUq
KTsKIEhUTUxFbGVtZW50KiBvdXRlcm1vc3RFbmNsb3NpbmdMaXN0KE5vZGUqLCBOb2RlKiByb290
TGlzdCA9IDApOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5j
cHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MywxNCArNjMsMTQgQEAgSFRNTEFuY2hvckVs
ZW1lbnQ6OkhUTUxBbmNob3JFbGVtZW50KGNvbgogewogfQogCi1SZWZQdHI8SFRNTEFuY2hvckVs
ZW1lbnQ+IEhUTUxBbmNob3JFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVm
PEhUTUxBbmNob3JFbGVtZW50PiBIVE1MQW5jaG9yRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxBbmNob3JFbGVtZW50KGFU
YWcsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTEFuY2hvckVsZW1l
bnQoYVRhZywgZG9jdW1lbnQpKTsKIH0KIAotUmVmUHRyPEhUTUxBbmNob3JFbGVtZW50PiBIVE1M
QW5jaG9yRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MQW5jaG9yRWxlbWVudD4gSFRNTEFuY2hvckVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MQW5jaG9yRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxBbmNob3JFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIEhUTUxBbmNob3JFbGVtZW50Ojp+SFRNTEFuY2hvckVs
ZW1lbnQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAkocmV2
aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Nyw4ICs1Nyw4IEBAIGVudW0gewogCiBjbGFzcyBIVE1MQW5j
aG9yRWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZlB0cjxIVE1MQW5jaG9yRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7Ci0gICAgc3RhdGljIFJl
ZlB0cjxIVE1MQW5jaG9yRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTEFuY2hvckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVu
dCYpOworICAgIHN0YXRpYyBSZWY8SFRNTEFuY2hvckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgfkhUTUxBbmNob3JFbGVtZW50
KCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsOSArNDgsOSBAQCBIVE1MQXBwbGV0RWxlbWVudDo6
SFRNTEFwcGxldEVsZW1lbnQoY29uCiAgICAgbV9zZXJ2aWNlVHlwZSA9ICJhcHBsaWNhdGlvbi94
LWphdmEtYXBwbGV0IjsKIH0KIAotUmVmUHRyPEhUTUxBcHBsZXRFbGVtZW50PiBIVE1MQXBwbGV0
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCitSZWY8SFRNTEFwcGxldEVsZW1lbnQ+IEhU
TUxBcHBsZXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEhUTUxBcHBsZXRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBjcmVhdGVkQnlQ
YXJzZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MQXBwbGV0RWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKSk7CiB9CiAKIHZvaWQgSFRNTEFwcGxldEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxl
bWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBs
ZXRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBIVE1MQXBwbGV0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxBcHBsZXRF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVh
dGVkQnlQYXJzZXIpOworICAgIHN0YXRpYyBSZWY8SFRNTEFwcGxldEVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAK
IHByaXZhdGU6CiAgICAgSFRNTEFwcGxldEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXJlYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFyZWFFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw5ICs0NSw5IEBA
IGlubGluZSBIVE1MQXJlYUVsZW1lbnQ6OkhUTUxBcmVhRWxlbWVudCgKICAgICBBU1NFUlQoaGFz
VGFnTmFtZShhcmVhVGFnKSk7CiB9CiAKLVJlZlB0cjxIVE1MQXJlYUVsZW1lbnQ+IEhUTUxBcmVh
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCkKK1JlZjxIVE1MQXJlYUVsZW1lbnQ+IEhUTUxBcmVhRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxBcmVhRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxBcmVhRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkpOwogfQogCiB2b2lkIEhUTUxBcmVhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyAr
MzUsNyBAQCBjbGFzcyBQYXRoOwogCiBjbGFzcyBIVE1MQXJlYUVsZW1lbnQgZmluYWwgOiBwdWJs
aWMgSFRNTEFuY2hvckVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTEFy
ZWFFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAg
c3RhdGljIFJlZjxIVE1MQXJlYUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKIAogICAgIGJvb2wgaXNEZWZhdWx0KCkgY29uc3QgeyByZXR1cm4gbV9zaGFw
ZSA9PSBEZWZhdWx0OyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF1ZGlvRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVt
ZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVk
aW9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksMTYgKzM5LDE2IEBAIEhUTUxBdWRp
b0VsZW1lbnQ6OkhUTUxBdWRpb0VsZW1lbnQoY29uc3QKICAgICBBU1NFUlQoaGFzVGFnTmFtZShh
dWRpb1RhZykpOwogfQogCi1SZWZQdHI8SFRNTEF1ZGlvRWxlbWVudD4gSFRNTEF1ZGlvRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCitSZWY8SFRNTEF1ZGlvRWxlbWVudD4gSFRNTEF1ZGlv
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCiB7Ci0gICAgUmVmUHRyPEhUTUxBdWRpb0Vs
ZW1lbnQ+IGF1ZGlvRWxlbWVudChhZG9wdFJlZihuZXcgSFRNTEF1ZGlvRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKSkpOworICAgIFJlZjxIVE1MQXVkaW9FbGVtZW50
PiBhdWRpb0VsZW1lbnQgPSBhZG9wdFJlZigqbmV3IEhUTUxBdWRpb0VsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQsIGNyZWF0ZWRCeVBhcnNlcikpOwogICAgIGF1ZGlvRWxlbWVudC0+c3VzcGVuZElm
TmVlZGVkKCk7CiAgICAgcmV0dXJuIGF1ZGlvRWxlbWVudDsKIH0KIAotUmVmUHRyPEhUTUxBdWRp
b0VsZW1lbnQ+IEhUTUxBdWRpb0VsZW1lbnQ6OmNyZWF0ZUZvckpTQ29uc3RydWN0b3IoRG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHNyYykKK1JlZjxIVE1MQXVkaW9FbGVtZW50PiBI
VE1MQXVkaW9FbGVtZW50OjpjcmVhdGVGb3JKU0NvbnN0cnVjdG9yKERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgU3RyaW5nJiBzcmMpCiB7Ci0gICAgUmVmUHRyPEhUTUxBdWRpb0VsZW1lbnQ+IGF1
ZGlvID0gYWRvcHRSZWYobmV3IEhUTUxBdWRpb0VsZW1lbnQoYXVkaW9UYWcsIGRvY3VtZW50LCBm
YWxzZSkpOworICAgIFJlZjxIVE1MQXVkaW9FbGVtZW50PiBhdWRpbyA9IGFkb3B0UmVmKCpuZXcg
SFRNTEF1ZGlvRWxlbWVudChhdWRpb1RhZywgZG9jdW1lbnQsIGZhbHNlKSk7CiAgICAgYXVkaW8t
PnNldFByZWxvYWQoImF1dG8iKTsKICAgICBpZiAoIXNyYy5pc051bGwoKSkgewogICAgICAgICBh
dWRpby0+c2V0U3JjKHNyYyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0Vs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1l
bnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVkaW9F
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDggKzM2LDggQEAgY2xhc3MgRG9jdW1lbnQ7
CiAKIGNsYXNzIEhUTUxBdWRpb0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTE1lZGlhRWxlbWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MQXVkaW9FbGVtZW50PiBjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCk7Ci0gICAgc3RhdGljIFJlZlB0
cjxIVE1MQXVkaW9FbGVtZW50PiBjcmVhdGVGb3JKU0NvbnN0cnVjdG9yKERvY3VtZW50JiwgY29u
c3QgU3RyaW5nJiBzcmMpOworICAgIHN0YXRpYyBSZWY8SFRNTEF1ZGlvRWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wpOworICAgIHN0YXRpYyBSZWY8
SFRNTEF1ZGlvRWxlbWVudD4gY3JlYXRlRm9ySlNDb25zdHJ1Y3RvcihEb2N1bWVudCYsIGNvbnN0
IFN0cmluZyYgc3JjKTsKIAogcHJpdmF0ZToKICAgICBIVE1MQXVkaW9FbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQkRJRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJESUVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQkRJRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw5ICsyNyw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTEJESUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVs
ZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTEJESUVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgc3Rh
dGljIFJlZjxIVE1MQkRJRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
SFRNTEJESUVsZW1lbnQobmFtZSwgZG9jdW1lbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSFRNTEJESUVsZW1lbnQobmFtZSwgZG9jdW1lbnQpKTsKICAgICB9CiAKIHByaXZhdGU6
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3
NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM5LDE0ICszOSwxNCBAQCBIVE1MQlJFbGVtZW50OjpIVE1MQlJFbGVtZW50KGNvbnN0
IFF1YWxpCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoYnJUYWcpKTsKIH0KIAotUmVmUHRyPEhUTUxC
UkVsZW1lbnQ+IEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8
SFRNTEJSRWxlbWVudD4gSFRNTEJSRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxCUkVsZW1lbnQoYnJUYWcsIGRvY3VtZW50
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTEJSRWxlbWVudChiclRhZywgZG9jdW1l
bnQpKTsKIH0KIAotUmVmUHRyPEhUTUxCUkVsZW1lbnQ+IEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRN
TEJSRWxlbWVudD4gSFRNTEJSRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhU
TUxCUkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBIVE1MQlJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wgSFRNTEJSRWxl
bWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkg
Y29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oCShyZXZpc2lvbiAxNzc4
NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzAsOCArMzAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxCUkVs
ZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWZQdHI8SFRNTEJSRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7Ci0gICAgc3RhdGljIFJlZlB0
cjxIVE1MQlJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CisgICAgc3RhdGljIFJlZjxIVE1MQlJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBz
dGF0aWMgUmVmPEhUTUxCUkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEJhc2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxCYXNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEJhc2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksOSArMzksOSBA
QCBpbmxpbmUgSFRNTEJhc2VFbGVtZW50OjpIVE1MQmFzZUVsZW1lbnQoCiAgICAgQVNTRVJUKGhh
c1RhZ05hbWUoYmFzZVRhZykpOwogfQogCi1SZWZQdHI8SFRNTEJhc2VFbGVtZW50PiBIVE1MQmFz
ZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQpCitSZWY8SFRNTEJhc2VFbGVtZW50PiBIVE1MQmFzZUVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MQmFzZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MQmFzZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KIAogdm9pZCBIVE1MQmFzZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcg
KzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MQmFzZUVsZW1lbnQgZmlu
YWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRN
TEJhc2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7Cisg
ICAgc3RhdGljIFJlZjxIVE1MQmFzZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIAogICAgIFVSTCBocmVmKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRIcmVm
KGNvbnN0IEF0b21pY1N0cmluZyYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFz
ZUZvbnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
YXNlRm9udEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw5ICszNSw5
IEBAIGlubGluZSBIVE1MQmFzZUZvbnRFbGVtZW50OjpIVE1MQmFzZUZvbnQKICAgICBBU1NFUlQo
aGFzVGFnTmFtZShiYXNlZm9udFRhZykpOwogfQogCi1SZWZQdHI8SFRNTEJhc2VGb250RWxlbWVu
dD4gSFRNTEJhc2VGb250RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MQmFzZUZvbnRFbGVtZW50PiBIVE1MQmFz
ZUZvbnRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEJhc2VGb250RWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxC
YXNlRm9udEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQmFzZUZvbnRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQmFzZUZvbnRFbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VGb250RWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTEJhc2VG
b250RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZlB0cjxIVE1MQmFzZUZvbnRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MQmFzZUZvbnRFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgSFRN
TEJhc2VGb250RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDcsMTQgKzQ3LDE0IEBAIEhUTUxCb2R5RWxlbWVudDo6SFRNTEJvZHlFbGVtZW50KGNv
bnN0IFEKICAgICBBU1NFUlQoaGFzVGFnTmFtZShib2R5VGFnKSk7CiB9CiAKLVJlZlB0cjxIVE1M
Qm9keUVsZW1lbnQ+IEhUTUxCb2R5RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkK
K1JlZjxIVE1MQm9keUVsZW1lbnQ+IEhUTUxCb2R5RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxCb2R5RWxlbWVudChib2R5
VGFnLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxCb2R5RWxlbWVu
dChib2R5VGFnLCBkb2N1bWVudCkpOwogfQogCi1SZWZQdHI8SFRNTEJvZHlFbGVtZW50PiBIVE1M
Qm9keUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCitSZWY8SFRNTEJvZHlFbGVtZW50PiBIVE1MQm9keUVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MQm9keUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MQm9keUVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpKTsKIH0KIAogSFRNTEJvZHlFbGVtZW50Ojp+SFRNTEJvZHlFbGVtZW50KCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzIsOCArMzIsOCBAQCBjbGFzcyBEb2N1bWVudDsKIAogY2xhc3MgSFRNTEJvZHlFbGVtZW50IGZp
bmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhU
TUxCb2R5RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1M
Qm9keUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAg
ICBzdGF0aWMgUmVmPEhUTUxCb2R5RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3Rh
dGljIFJlZjxIVE1MQm9keUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKICAgICB2aXJ0dWFsIH5IVE1MQm9keUVsZW1lbnQoKTsKIAogICAgIC8vIERlY2xh
cmVkIHZpcnR1YWwgaW4gRWxlbWVudApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0
dG9uRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0
dG9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJ1dHRvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw5ICs0Nyw5IEBAIGlu
bGluZSBIVE1MQnV0dG9uRWxlbWVudDo6SFRNTEJ1dHRvbkVsZW0KICAgICBBU1NFUlQoaGFzVGFn
TmFtZShidXR0b25UYWcpKTsKIH0KIAotUmVmUHRyPEhUTUxCdXR0b25FbGVtZW50PiBIVE1MQnV0
dG9uRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQorUmVmPEhUTUxCdXR0b25FbGVtZW50
PiBIVE1MQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQogewotICAgIHJldHVy
biBhZG9wdFJlZihuZXcgSFRNTEJ1dHRvbkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0p
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MQnV0dG9uRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCwgZm9ybSkpOwogfQogCiB2b2lkIEhUTUxCdXR0b25FbGVtZW50OjpzZXRUeXBlKGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1
dHRvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0
b25FbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJ1dHRvbkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxCdXR0b25FbGVtZW50IGZpbmFsIDogcHVibGljIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTEJ1
dHRvbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1M
Rm9ybUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxCdXR0b25FbGVtZW50PiBjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKICAg
ICB2b2lkIHNldFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTg2LDE0ICs4NiwxNCBAQCBIVE1MQ2FudmFzRWxlbWVudDo6SFRNTENhbnZhc0VsZW1lbnQo
Y29uCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoY2FudmFzVGFnKSk7CiB9CiAKLVJlZlB0cjxIVE1M
Q2FudmFzRWxlbWVudD4gSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCitSZWY8SFRNTENhbnZhc0VsZW1lbnQ+IEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTENhbnZhc0Vs
ZW1lbnQoY2FudmFzVGFnLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhU
TUxDYW52YXNFbGVtZW50KGNhbnZhc1RhZywgZG9jdW1lbnQpKTsKIH0KIAotUmVmUHRyPEhUTUxD
YW52YXNFbGVtZW50PiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MQ2FudmFzRWxlbWVudD4g
SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MQ2FudmFz
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhU
TUxDYW52YXNFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIEhUTUxDYW52YXNFbGVt
ZW50Ojp+SFRNTENhbnZhc0VsZW1lbnQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw4ICs2Myw4IEBAIHB1Ymxp
YzoKIAogY2xhc3MgSFRNTENhbnZhc0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCYpOwotICAgIHN0YXRpYyBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxDYW52
YXNFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxDYW52YXNF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgdmly
dHVhbCB+SFRNTENhbnZhc0VsZW1lbnQoKTsKIAogICAgIHZvaWQgYWRkT2JzZXJ2ZXIoQ2FudmFz
T2JzZXJ2ZXImKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERMaXN0RWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRExpc3RFbGVtZW50LmNw
cAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRExpc3RFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsOSArMzUsOSBAQCBpbmxpbmUgSFRNTERMaXN0
RWxlbWVudDo6SFRNTERMaXN0RWxlbWVuCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoZGxUYWcpKTsK
IH0KIAotUmVmUHRyPEhUTUxETGlzdEVsZW1lbnQ+IEhUTUxETGlzdEVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRN
TERMaXN0RWxlbWVudD4gSFRNTERMaXN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEhUTUxETGlzdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBIVE1MRExpc3RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERMaXN0RWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERMaXN0RWxlbWVudC5oCShyZXZpc2lvbiAxNzc4
NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxETGlzdEVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxE
TGlzdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgotICAgIHN0
YXRpYyBSZWZQdHI8SFRNTERMaXN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTERMaXN0RWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIEhUTUxETGlz
dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQzLDkgKzQzLDkgQEAgaW5saW5lIEhUTUxEYXRhTGlzdEVsZW1lbnQ6OkhUTUxE
YXRhTGlzdAogewogfQogCi1SZWZQdHI8SFRNTERhdGFMaXN0RWxlbWVudD4gSFRNTERhdGFMaXN0
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCkKK1JlZjxIVE1MRGF0YUxpc3RFbGVtZW50PiBIVE1MRGF0YUxpc3RFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTERhdGFMaXN0RWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxEYXRhTGlzdEVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBIVE1MRGF0
YUxpc3RFbGVtZW50OjpvcHRpb25zKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERh
dGFMaXN0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERh
dGFMaXN0RWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEYXRhTGlzdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxEYXRhTGlzdEVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTERhdGFM
aXN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAg
IHN0YXRpYyBSZWY8SFRNTERhdGFMaXN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCYpOwogCiAgICAgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBvcHRpb25zKCk7
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNyBAQCBSZWZQdHI8RGV0YWlsc0NvbnRl
bnRFbGVtZW50PiBEZXRhaWxzQ29uCiAKIGNsYXNzIERldGFpbHNTdW1tYXJ5RWxlbWVudCBmaW5h
bCA6IHB1YmxpYyBJbnNlcnRpb25Qb2ludCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxE
ZXRhaWxzU3VtbWFyeUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8
RGV0YWlsc1N1bW1hcnlFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogICAgIEVsZW1lbnQq
IGZhbGxiYWNrU3VtbWFyeSgpCiAgICAgewpAQCAtODcsMTkgKzg3LDE5IEBAIHByaXZhdGU6CiAg
ICAgfQogfTsKIAotUmVmUHRyPERldGFpbHNTdW1tYXJ5RWxlbWVudD4gRGV0YWlsc1N1bW1hcnlF
bGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPERldGFpbHNTdW1tYXJ5RWxl
bWVudD4gRGV0YWlsc1N1bW1hcnlFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQog
ewogICAgIFJlZlB0cjxIVE1MU3VtbWFyeUVsZW1lbnQ+IHN1bW1hcnkgPSBIVE1MU3VtbWFyeUVs
ZW1lbnQ6OmNyZWF0ZShzdW1tYXJ5VGFnLCBkb2N1bWVudCk7CiAgICAgc3VtbWFyeS0+YXBwZW5k
Q2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIFJlZlB0cjxEZXRhaWxzU3VtbWFyeUVsZW1l
bnQ+IGRldGFpbHNTdW1tYXJ5ID0gYWRvcHRSZWYobmV3IERldGFpbHNTdW1tYXJ5RWxlbWVudChk
b2N1bWVudCkpOworICAgIFJlZjxEZXRhaWxzU3VtbWFyeUVsZW1lbnQ+IGRldGFpbHNTdW1tYXJ5
ID0gYWRvcHRSZWYoKm5ldyBEZXRhaWxzU3VtbWFyeUVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICBk
ZXRhaWxzU3VtbWFyeS0+YXBwZW5kQ2hpbGQoc3VtbWFyeSk7CiAgICAgcmV0dXJuIGRldGFpbHNT
dW1tYXJ5OwogfQogCi1SZWZQdHI8SFRNTERldGFpbHNFbGVtZW50PiBIVE1MRGV0YWlsc0VsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1l
bnQpCitSZWY8SFRNTERldGFpbHNFbGVtZW50PiBIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAg
UmVmUHRyPEhUTUxEZXRhaWxzRWxlbWVudD4gZGV0YWlscyA9IGFkb3B0UmVmKG5ldyBIVE1MRGV0
YWlsc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICBSZWY8SFRNTERldGFpbHNFbGVt
ZW50PiBkZXRhaWxzID0gYWRvcHRSZWYoKm5ldyBIVE1MRGV0YWlsc0VsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKICAgICBkZXRhaWxzLT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CiAg
ICAgcmV0dXJuIGRldGFpbHM7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRh
aWxzRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFp
bHNFbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERldGFpbHNFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MRGV0YWlsc0VsZW1lbnQgZmluYWwgOiBwdWJsaWMg
SFRNTEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTERldGFpbHNFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKKyAg
ICBzdGF0aWMgUmVmPEhUTUxEZXRhaWxzRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAgICAgdm9pZCB0b2dnbGVPcGVuKCk7CiAKICAgICBj
b25zdCBFbGVtZW50KiBmaW5kTWFpblN1bW1hcnkoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXJlY3RvcnlFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzUsOSArMzUsOSBAQCBpbmxpbmUgSFRNTERpcmVjdG9yeUVsZW1lbnQ6OkhUTUxE
aXJlY3RvCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoZGlyVGFnKSk7CiB9CiAKLVJlZlB0cjxIVE1M
RGlyZWN0b3J5RWxlbWVudD4gSFRNTERpcmVjdG9yeUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTERpcmVjdG9y
eUVsZW1lbnQ+IEhUTUxEaXJlY3RvcnlFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSFRNTERpcmVjdG9yeUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBIVE1MRGlyZWN0b3J5RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXJlY3RvcnlFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5o
CShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXJlY3RvcnlF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBIVE1MRGlyZWN0b3J5RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxl
bWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MRGlyZWN0b3J5RWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CisgICAgc3Rh
dGljIFJlZjxIVE1MRGlyZWN0b3J5RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgSFRNTERpcmVjdG9yeUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxEaXZFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxEaXZFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRGl2RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDE0ICszOCwx
NCBAQCBIVE1MRGl2RWxlbWVudDo6SFRNTERpdkVsZW1lbnQoY29uc3QgUXVhCiAgICAgQVNTRVJU
KGhhc1RhZ05hbWUoZGl2VGFnKSk7CiB9CiAKLVJlZlB0cjxIVE1MRGl2RWxlbWVudD4gSFRNTERp
dkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTERpdkVsZW1lbnQ+
IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVy
biBhZG9wdFJlZihuZXcgSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgZG9jdW1lbnQpKTsKIH0K
IAotUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MRGl2RWxl
bWVudD4gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MRGl2
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhU
TUxEaXZFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wgSFRNTERpdkVsZW1l
bnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNv
bnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oCShyZXZpc2lvbiAxNzc4
NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDggKzI5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MRGl2
RWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0
cjxIVE1MRGl2RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7Ci0gICAgc3RhdGljIFJlZlB0cjxI
VE1MRGl2RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwor
ICAgIHN0YXRpYyBSZWY8SFRNTERpdkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0
YXRpYyBSZWY8SFRNTERpdkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIAogcHJvdGVjdGVkOgogICAgIEhUTUxEaXZFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02Nyw5ICs2Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiB1c2luZyBuYW1lc3BhY2UgV1RGOwogCi1SZWZQdHI8
SFRNTEVsZW1lbnQ+IEhUTUxFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxFbGVtZW50PiBIVE1MRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KIAogU3RyaW5nIEhUTUxFbGVtZW50Ojpub2RlTmFtZSgpIGNvbnN0CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAg
ZW51bSBUcmFuc2xhdGVBdHRyaWJ1dGVNb2RlIHsKIAogY2xhc3MgSFRNTEVsZW1lbnQgOiBwdWJs
aWMgU3R5bGVkRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CisgICAg
c3RhdGljIFJlZjxIVE1MRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50Jik7CiAKICAgICBSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGNoaWxkcmVuKCk7
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAkocmV2aXNp
b24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTAsOSArNTAsOSBAQCBpbmxpbmUgSFRNTEVtYmVkRWxlbWVudDo6
SFRNTEVtYmVkRWxlbWVuCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoZW1iZWRUYWcpKTsKIH0KIAot
UmVmUHRyPEhUTUxFbWJlZEVsZW1lbnQ+IEhUTUxFbWJlZEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5
UGFyc2VyKQorUmVmPEhUTUxFbWJlZEVsZW1lbnQ+IEhUTUxFbWJlZEVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgY3Jl
YXRlZEJ5UGFyc2VyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEVtYmVkRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSFRNTEVtYmVkRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgY3JlYXRlZEJ5UGFy
c2VyKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgUmVuZGVyV2lkZ2V0KiBmaW5kV2lkZ2V0UmVuZGVy
ZXIoY29uc3QgTm9kZSogbm9kZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVk
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxl
bWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJl
ZEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEhUTUxFbWJlZEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTFBsdWdJ
bkltYWdlRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MRW1iZWRFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVk
QnlQYXJzZXIpOworICAgIHN0YXRpYyBSZWY8SFRNTEVtYmVkRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKIAogcHJp
dmF0ZToKICAgICBIVE1MRW1iZWRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZpZWxkU2V0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRmllbGRTZXRFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsOSAr
NTAsOSBAQCBIVE1MRmllbGRTZXRFbGVtZW50Ojp+SFRNTEZpZWxkU2V0RWxlbWVuCiAgICAgICAg
IGRvY3VtZW50KCkucmVtb3ZlRGlzYWJsZWRGaWVsZHNldEVsZW1lbnQoKTsKIH0KIAotUmVmUHRy
PEhUTUxGaWVsZFNldEVsZW1lbnQ+IEhUTUxGaWVsZFNldEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVu
dCogZm9ybSkKK1JlZjxIVE1MRmllbGRTZXRFbGVtZW50PiBIVE1MRmllbGRTZXRFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBI
VE1MRm9ybUVsZW1lbnQqIGZvcm0pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MRmll
bGRTZXRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSFRNTEZpZWxkU2V0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkpOwog
fQogCiBzdGF0aWMgdm9pZCB1cGRhdGVGcm9tQ29udHJvbEVsZW1lbnRzQW5jZXN0b3JEaXNhYmxl
ZFN0YXRlVW5kZXIoSFRNTEVsZW1lbnQmIHN0YXJ0Tm9kZSwgYm9vbCBpc0Rpc2FibGVkKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgJKHJldmlzaW9uIDE3
Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIEhUTUxDb2xsZWN0aW9uOwogCiBjbGFz
cyBIVE1MRmllbGRTZXRFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTEZpZWxkU2V0RWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCopOwor
ICAgIHN0YXRpYyBSZWY8SFRNTEZpZWxkU2V0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCopOwogCiAgICAgSFRNTExlZ2VuZEVs
ZW1lbnQqIGxlZ2VuZCgpIGNvbnN0OwogICAgIFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4gZWxlbWVu
dHMoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAJKHJldmlz
aW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDYsOSArNDYsOSBAQCBIVE1MRm9udEVsZW1lbnQ6OkhUTUxGb250
RWxlbWVudChjb25zdCBRCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoZm9udFRhZykpOwogfQogCi1S
ZWZQdHI8SFRNTEZvbnRFbGVtZW50PiBIVE1MRm9udEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTEZvbnRFbGVt
ZW50PiBIVE1MRm9udEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MRm9u
dEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBI
VE1MRm9udEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogLy8gaHR0cDovL3d3dy53
aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvcmVuZGVyaW5n
Lmh0bWwjZm9udHMtYW5kLWNvbG9ycwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9u
dEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxl
bWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgSFRNTEZvbnRFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxGb250RWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTEZvbnRF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgCiAg
ICAgc3RhdGljIGJvb2wgY3NzVmFsdWVGcm9tRm9udFNpemVOdW1iZXIoY29uc3QgU3RyaW5nJiwg
Q1NTVmFsdWVJRCYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDE0ICs3MSwxNCBAQCBIVE1MRm9ybUVsZW1l
bnQ6OkhUTUxGb3JtRWxlbWVudChjb25zdCBRCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoZm9ybVRh
ZykpOwogfQogCi1SZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBIVE1MRm9ybUVsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTEZvcm1FbGVtZW50PiBIVE1MRm9ybUVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBIVE1MRm9ybUVsZW1lbnQoZm9ybVRhZywgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBIVE1MRm9ybUVsZW1lbnQoZm9ybVRhZywgZG9jdW1lbnQpKTsKIH0KIAotUmVmUHRy
PEhUTUxGb3JtRWxlbWVudD4gSFRNTEZvcm1FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxGb3JtRWxlbWVudD4g
SFRNTEZvcm1FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEZvcm1FbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTEZv
cm1FbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIEhUTUxGb3JtRWxlbWVudDo6fkhU
TUxGb3JtRWxlbWVudCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgJ
KHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDggKzQ2LDggQEAgY2xhc3MgVGV4dEVuY29kaW5nOwog
CiBjbGFzcyBIVE1MRm9ybUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQm
KTsKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTEZvcm1FbGVtZW50PiBj
cmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxGb3JtRWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgfkhUTUxGb3Jt
RWxlbWVudCgpOwogCiAgICAgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBlbGVtZW50cygpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4
NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00Myw5ICs0Myw5IEBAIGlubGluZSBIVE1MRnJhbWVFbGVtZW50OjpIVE1MRnJh
bWVFbGVtZW4KICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKIH0KIAot
UmVmUHRyPEhUTUxGcmFtZUVsZW1lbnQ+IEhUTUxGcmFtZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTEZyYW1l
RWxlbWVudD4gSFRNTEZyYW1lRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhU
TUxGcmFtZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBIVE1MRnJhbWVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wgSFRN
TEZyYW1lRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MRnJhbWVF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxGcmFtZUVsZW1lbnRCYXNlIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmUHRyPEhUTUxGcmFtZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxGcmFtZUVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wgaGFzRnJhbWVC
b3JkZXIoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lQm9yZGVyOyB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTgsOSArNTgsOSBAQCBIVE1MRnJhbWVTZXRFbGVtZW50OjpIVE1MRnJhbWVTZXRF
bGVtZW50CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAKLVJl
ZlB0cjxIVE1MRnJhbWVTZXRFbGVtZW50PiBIVE1MRnJhbWVTZXRFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxG
cmFtZVNldEVsZW1lbnQ+IEhUTUxGcmFtZVNldEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBIVE1MRnJhbWVTZXRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSFRNTEZyYW1lU2V0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkp
OwogfQogCiBib29sIEhUTUxGcmFtZVNldEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcg
KzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MRnJhbWVTZXRFbGVtZW50
IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRy
PEhUTUxGcmFtZVNldEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxGcmFtZVNldEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wgaGFzRnJhbWVCb3JkZXIoKSBj
b25zdCB7IHJldHVybiBtX2ZyYW1lYm9yZGVyOyB9CiAgICAgYm9vbCBub1Jlc2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbm9yZXNpemU7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhS
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSFJFbGVt
ZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSFJF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTQgKzQwLDE0IEBAIEhUTUxIUkVsZW1l
bnQ6OkhUTUxIUkVsZW1lbnQoY29uc3QgUXVhbGkKICAgICBBU1NFUlQoaGFzVGFnTmFtZShoclRh
ZykpOwogfQogCi1SZWZQdHI8SFRNTEhSRWxlbWVudD4gSFRNTEhSRWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MSFJFbGVtZW50PiBIVE1MSFJFbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEhS
RWxlbWVudChoclRhZywgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1M
SFJFbGVtZW50KGhyVGFnLCBkb2N1bWVudCkpOwogfQogCi1SZWZQdHI8SFRNTEhSRWxlbWVudD4g
SFRNTEhSRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MSFJFbGVtZW50PiBIVE1MSFJFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEhSRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxIUkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
KTsKIH0KIAogYm9vbCBIVE1MSFJFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSFJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSFJF
bGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhS
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw4ICsyOSw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgSFRNTEhSRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MSFJFbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQmKTsKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxIUkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxIUkVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTEhSRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIEhUTUxIUkVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxIZWFkRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSGVhZEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxIZWFkRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDE0
ICszNywxNCBAQCBIVE1MSGVhZEVsZW1lbnQ6OkhUTUxIZWFkRWxlbWVudChjb25zdCBRCiAgICAg
QVNTRVJUKGhhc1RhZ05hbWUoaGVhZFRhZykpOwogfQogCi1SZWZQdHI8SFRNTEhlYWRFbGVtZW50
PiBIVE1MSGVhZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTEhl
YWRFbGVtZW50PiBIVE1MSGVhZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MSGVhZEVsZW1lbnQoaGVhZFRhZywgZG9jdW1l
bnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MSGVhZEVsZW1lbnQoaGVhZFRhZywg
ZG9jdW1lbnQpKTsKIH0KIAotUmVmUHRyPEhUTUxIZWFkRWxlbWVudD4gSFRNTEhlYWRFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQorUmVmPEhUTUxIZWFkRWxlbWVudD4gSFRNTEhlYWRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSFRNTEhlYWRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSFRNTEhlYWRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9
CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhlYWRFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSGVhZEVsZW1lbnQuaAkocmV2aXNpb24g
MTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSGVhZEVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsOCArMzAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhU
TUxIZWFkRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZlB0cjxIVE1MSGVhZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwotICAgIHN0
YXRpYyBSZWZQdHI8SFRNTEhlYWRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MSGVhZEVsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTEhlYWRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgSFRNTEhlYWRFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSGVhZGluZ0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEhlYWRpbmdFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSGVhZGluZ0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw5ICszMCw5IEBAIGlubGluZSBIVE1MSGVhZGluZ0VsZW1lbnQ6OkhUTUxIZWFkaW5nRWwKIHsK
IH0KIAotUmVmUHRyPEhUTUxIZWFkaW5nRWxlbWVudD4gSFRNTEhlYWRpbmdFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVm
PEhUTUxIZWFkaW5nRWxlbWVudD4gSFRNTEhlYWRpbmdFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSFRNTEhlYWRpbmdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTEhlYWRpbmdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhlYWRpbmdFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSGVhZGluZ0VsZW1lbnQu
aAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSGVhZGluZ0Vs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEhUTUxIZWFkaW5nRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MSGVhZGluZ0VsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxI
ZWFkaW5nRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
CiBwcml2YXRlOgogICAgIEhUTUxIZWFkaW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsMTQgKzQyLDE0IEBAIEhUTUxIdG1sRWxlbWVudDo6
SFRNTEh0bWxFbGVtZW50KGNvbnN0IFEKICAgICBBU1NFUlQoaGFzVGFnTmFtZShodG1sVGFnKSk7
CiB9CiAKLVJlZlB0cjxIVE1MSHRtbEVsZW1lbnQ+IEhUTUxIdG1sRWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MSHRtbEVsZW1lbnQ+IEhUTUxIdG1sRWxlbWVudDo6
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhU
TUxIdG1sRWxlbWVudChodG1sVGFnLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEhUTUxIdG1sRWxlbWVudChodG1sVGFnLCBkb2N1bWVudCkpOwogfQogCi1SZWZQdHI8SFRN
TEh0bWxFbGVtZW50PiBIVE1MSHRtbEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTEh0bWxFbGVtZW50PiBIVE1M
SHRtbEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MSHRtbEVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MSHRtbEVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBIVE1MSHRtbEVsZW1lbnQ6Omlz
VVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKSBjb25zdApJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw4
ICszMCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTEh0bWxFbGVtZW50IGZp
bmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhU
TUxIdG1sRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1M
SHRtbEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAg
ICBzdGF0aWMgUmVmPEhUTUxIdG1sRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3Rh
dGljIFJlZjxIVE1MSHRtbEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIAogICAgIHZvaWQgaW5zZXJ0ZWRCeVBhcnNlcigpOwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQzLDkgKzQzLDkgQEAgaW5saW5lIEhUTUxJRnJhbWVFbGVtZW50OjpIVE1MSUZyYW1lRWxl
bQogICAgIEFTU0VSVChoYXNUYWdOYW1lKGlmcmFtZVRhZykpOwogfQogCi1SZWZQdHI8SFRNTElG
cmFtZUVsZW1lbnQ+IEhUTUxJRnJhbWVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxJRnJhbWVFbGVtZW50PiBI
VE1MSUZyYW1lRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxJRnJhbWVF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRN
TElGcmFtZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBIVE1MSUZyYW1l
RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgJKHJl
dmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEhUTUxJRnJhbWVFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxGcmFtZUVsZW1lbnRC
YXNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxJRnJhbWVFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1M
SUZyYW1lRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
CiBwcml2YXRlOgogICAgIEhUTUxJRnJhbWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3Bw
CShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSwxNCArNjUsMTQgQEAgSFRNTEltYWdlRWxlbWVu
dDo6SFRNTEltYWdlRWxlbWVudChjb25zdAogICAgICAgICBmb3JtLT5yZWdpc3RlckltZ0VsZW1l
bnQodGhpcyk7CiB9CiAKLVJlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiBIVE1MSW1hZ2VFbGVtZW50
OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxJbWFnZUVsZW1lbnQ+IEhUTUxJ
bWFnZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBIVE1MSW1hZ2VFbGVtZW50KGltZ1RhZywgZG9jdW1lbnQpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBIVE1MSW1hZ2VFbGVtZW50KGltZ1RhZywgZG9jdW1lbnQpKTsKIH0K
IAotUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxl
bWVudCogZm9ybSkKK1JlZjxIVE1MSW1hZ2VFbGVtZW50PiBIVE1MSW1hZ2VFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1M
Rm9ybUVsZW1lbnQqIGZvcm0pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MSW1hZ2VF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSFRNTEltYWdlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkpOwogfQogCiBIVE1M
SW1hZ2VFbGVtZW50Ojp+SFRNTEltYWdlRWxlbWVudCgpCkBAIC04MSwxNCArODEsMTQgQEAgSFRN
TEltYWdlRWxlbWVudDo6fkhUTUxJbWFnZUVsZW1lbnQoKQogICAgICAgICBtX2Zvcm0tPnJlbW92
ZUltZ0VsZW1lbnQodGhpcyk7CiB9CiAKLVJlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiBIVE1MSW1h
Z2VFbGVtZW50OjpjcmVhdGVGb3JKU0NvbnN0cnVjdG9yKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgaW50KiBvcHRpb25hbFdpZHRoLCBjb25zdCBpbnQqIG9wdGlvbmFsSGVpZ2h0KQorUmVmPEhU
TUxJbWFnZUVsZW1lbnQ+IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZUZvckpTQ29uc3RydWN0b3Io
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBpbnQqIG9wdGlvbmFsV2lkdGgsIGNvbnN0IGludCog
b3B0aW9uYWxIZWlnaHQpCiB7Ci0gICAgUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+IGltYWdlID0g
YWRvcHRSZWYobmV3IEhUTUxJbWFnZUVsZW1lbnQoaW1nVGFnLCBkb2N1bWVudCkpOworICAgIFJl
ZjxIVE1MSW1hZ2VFbGVtZW50PiBpbWFnZSA9IGFkb3B0UmVmKCpuZXcgSFRNTEltYWdlRWxlbWVu
dChpbWdUYWcsIGRvY3VtZW50KSk7CiAgICAgaWYgKG9wdGlvbmFsV2lkdGgpCiAgICAgICAgIGlt
YWdlLT5zZXRXaWR0aCgqb3B0aW9uYWxXaWR0aCk7CiAgICAgaWYgKG9wdGlvbmFsSGVpZ2h0KQog
ICAgICAgICBpbWFnZS0+c2V0SGVpZ2h0KCpvcHRpb25hbEhlaWdodCk7Ci0gICAgcmV0dXJuIGlt
YWdlLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gaW1hZ2U7CiB9CiAKIGJvb2wgSFRNTEltYWdlRWxl
bWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkg
Y29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCShyZXZpc2lv
biAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzcsOSArMzcsOSBAQCBzdHJ1Y3QgSW1hZ2VDYW5kaWRhdGU7CiBjbGFz
cyBIVE1MSW1hZ2VFbGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50LCBwdWJsaWMgRm9ybU5hbWVk
SXRlbSB7CiAgICAgZnJpZW5kIGNsYXNzIEhUTUxGb3JtRWxlbWVudDsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwotICAgIHN0
YXRpYyBSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCopOwotICAgIHN0YXRpYyBSZWZQdHI8SFRNTElt
YWdlRWxlbWVudD4gY3JlYXRlRm9ySlNDb25zdHJ1Y3RvcihEb2N1bWVudCYsIGNvbnN0IGludCog
b3B0aW9uYWxXaWR0aCwgY29uc3QgaW50KiBvcHRpb25hbEhlaWdodCk7CisgICAgc3RhdGljIFJl
ZjxIVE1MSW1hZ2VFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhU
TUxJbWFnZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBI
VE1MRm9ybUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxJbWFnZUVsZW1lbnQ+IGNyZWF0
ZUZvckpTQ29uc3RydWN0b3IoRG9jdW1lbnQmLCBjb25zdCBpbnQqIG9wdGlvbmFsV2lkdGgsIGNv
bnN0IGludCogb3B0aW9uYWxIZWlnaHQpOwogCiAgICAgdmlydHVhbCB+SFRNTEltYWdlRWxlbWVu
dCgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOSwxMCArMTI5LDEwIEBAIEhUTUxJbnB1dEVsZW1lbnQ6
OkhUTUxJbnB1dEVsZW1lbnQoY29uc3QKICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxs
YmFja3MoKTsKIH0KIAotUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQs
IEhUTUxGb3JtRWxlbWVudCogZm9ybSwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCitSZWY8SFRNTElu
cHV0RWxlbWVudD4gSFRNTElucHV0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtLCBib29s
IGNyZWF0ZWRCeVBhcnNlcikKIHsKICAgICBib29sIHNob3VsZENyZWF0ZVNoYWRvd1Jvb3RMYXpp
bHkgPSBjcmVhdGVkQnlQYXJzZXI7Ci0gICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0
RWxlbWVudCA9IGFkb3B0UmVmKG5ldyBIVE1MSW5wdXRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
LCBmb3JtLCBjcmVhdGVkQnlQYXJzZXIpKTsKKyAgICBSZWY8SFRNTElucHV0RWxlbWVudD4gaW5w
dXRFbGVtZW50ID0gYWRvcHRSZWYoKm5ldyBIVE1MSW5wdXRFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50LCBmb3JtLCBjcmVhdGVkQnlQYXJzZXIpKTsKICAgICBpZiAoIXNob3VsZENyZWF0ZVNoYWRv
d1Jvb3RMYXppbHkpCiAgICAgICAgIGlucHV0RWxlbWVudC0+ZW5zdXJlVXNlckFnZW50U2hhZG93
Um9vdCgpOwogICAgIHJldHVybiBpbnB1dEVsZW1lbnQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAg
c3RydWN0IElucHV0RWxlbWVudENsaWNrU3RhdGUgewogCiBjbGFzcyBIVE1MSW5wdXRFbGVtZW50
IDogcHVibGljIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CisgICAg
c3RhdGljIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogICAg
IHZpcnR1YWwgfkhUTUxJbnB1dEVsZW1lbnQoKTsKIAogICAgIERFRklORV9BVFRSSUJVVEVfRVZF
TlRfTElTVEVORVIod2Via2l0c3BlZWNoY2hhbmdlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMsOSAr
ODMsOSBAQCBpbmxpbmUgSFRNTEtleWdlbkVsZW1lbnQ6OkhUTUxLZXlnZW5FbGVtCiAgICAgZW5z
dXJlVXNlckFnZW50U2hhZG93Um9vdCgpLmFwcGVuZENoaWxkKHNlbGVjdCwgSUdOT1JFX0VYQ0VQ
VElPTik7CiB9CiAKLVJlZlB0cjxIVE1MS2V5Z2VuRWxlbWVudD4gSFRNTEtleWdlbkVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQs
IEhUTUxGb3JtRWxlbWVudCogZm9ybSkKK1JlZjxIVE1MS2V5Z2VuRWxlbWVudD4gSFRNTEtleWdl
bkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEhUTUxLZXlnZW5FbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSFRNTEtleWdlbkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZv
cm0pKTsKIH0KIAogdm9pZCBIVE1MS2V5Z2VuRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMzIsNyArMzIsNyBAQCBjbGFzcyBIVE1MU2VsZWN0RWxlbWVudDsKIAogY2xhc3MgSFRNTEtl
eWdlbkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0
ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MS2V5Z2VuRWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCopOworICAg
IHN0YXRpYyBSZWY8SFRNTEtleWdlbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAogcHJpdmF0ZToKICAgICBIVE1MS2V5
Z2VuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1l
bnQqKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmNwcAkocmV2aXNpb24g
MTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDEsMTQgKzQxLDE0IEBAIEhUTUxMSUVsZW1lbnQ6OkhUTUxMSUVsZW1lbnQo
Y29uc3QgUXVhbGkKICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKIH0K
IAotUmVmUHRyPEhUTUxMSUVsZW1lbnQ+IEhUTUxMSUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpCitSZWY8SFRNTExJRWxlbWVudD4gSFRNTExJRWxlbWVudDo6Y3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxMSUVsZW1lbnQo
bGlUYWcsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTExJRWxlbWVu
dChsaVRhZywgZG9jdW1lbnQpKTsKIH0KIAotUmVmUHRyPEhUTUxMSUVsZW1lbnQ+IEhUTUxMSUVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCitSZWY8SFRNTExJRWxlbWVudD4gSFRNTExJRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEhUTUxMSUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBIVE1MTElFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAK
IGJvb2wgSFRNTExJRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5o
CShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEhUTUxMSUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTExJRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7Ci0g
ICAgc3RhdGljIFJlZlB0cjxIVE1MTElFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MTElFbGVtZW50PiBjcmVhdGUoRG9j
dW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxMSUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBIVE1MTElFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGFiZWxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMYWJlbEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCw5ICs1MCw5
IEBAIGlubGluZSBIVE1MTGFiZWxFbGVtZW50OjpIVE1MTGFiZWxFbGVtZW4KICAgICBBU1NFUlQo
aGFzVGFnTmFtZShsYWJlbFRhZykpOwogfQogCi1SZWZQdHI8SFRNTExhYmVsRWxlbWVudD4gSFRN
TExhYmVsRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MTGFiZWxFbGVtZW50PiBIVE1MTGFiZWxFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTExhYmVsRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxMYWJlbEVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBIVE1MTGFiZWxFbGVtZW50Ojppc0ZvY3VzYWJsZSgp
IGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAkocmV2aXNp
b24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBIVE1MTGFiZWxFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmUHRyPEhUTUxMYWJlbEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxMYWJlbEVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIExhYmVsYWJsZUVs
ZW1lbnQqIGNvbnRyb2woKTsKICAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdDsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwCShyZXZpc2lvbiAx
Nzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDAsOSArNDAsOSBAQCBpbmxpbmUgSFRNTExlZ2VuZEVsZW1lbnQ6OkhU
TUxMZWdlbmRFbGVtCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUobGVnZW5kVGFnKSk7CiB9CiAKLVJl
ZlB0cjxIVE1MTGVnZW5kRWxlbWVudD4gSFRNTExlZ2VuZEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTExlZ2Vu
ZEVsZW1lbnQ+IEhUTUxMZWdlbmRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
SFRNTExlZ2VuZEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBIVE1MTGVnZW5kRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50KiBIVE1MTGVnZW5kRWxlbWVudDo6YXNzb2NpYXRlZENvbnRyb2wo
KQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaAkocmV2aXNpb24g
MTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIGNsYXNzIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ7
CiAKIGNsYXNzIEhUTUxMZWdlbmRFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxMZWdlbmRFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MTGVnZW5k
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2
YXRlOgogICAgIEhUTUxMZWdlbmRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAkocmV2aXNp
b24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04MSw5ICs4MSw5IEBAIGlubGluZSBIVE1MTGlua0VsZW1lbnQ6OkhU
TUxMaW5rRWxlbWVudCgKICAgICBBU1NFUlQoaGFzVGFnTmFtZShsaW5rVGFnKSk7CiB9CiAKLVJl
ZlB0cjxIVE1MTGlua0VsZW1lbnQ+IEhUTUxMaW5rRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJz
ZXIpCitSZWY8SFRNTExpbmtFbGVtZW50PiBIVE1MTGlua0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5
UGFyc2VyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTExpbmtFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50LCBjcmVhdGVkQnlQYXJzZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBIVE1MTGlua0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGNyZWF0ZWRCeVBhcnNlcikpOwog
fQogCiBIVE1MTGlua0VsZW1lbnQ6On5IVE1MTGlua0VsZW1lbnQoKQpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3
IEBAIHR5cGVkZWYgRXZlbnRTZW5kZXI8SFRNTExpbmtFbGVtZW50PiBMaW4KIAogY2xhc3MgSFRN
TExpbmtFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50LCBwdWJsaWMgQ2FjaGVkU3R5
bGVTaGVldENsaWVudCwgcHVibGljIExpbmtMb2FkZXJDbGllbnQgewogcHVibGljOgotICAgIHN0
YXRpYyBSZWZQdHI8SFRNTExpbmtFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOworICAgIHN0YXRpYyBSZWY8SFRNTExp
bmtFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBj
cmVhdGVkQnlQYXJzZXIpOwogICAgIHZpcnR1YWwgfkhUTUxMaW5rRWxlbWVudCgpOwogCiAgICAg
VVJMIGhyZWYoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsMTQgKzQxLDE0IEBAIEhUTUxNYXBFbGVtZW50
OjpIVE1MTWFwRWxlbWVudChjb25zdCBRdWEKICAgICBBU1NFUlQoaGFzVGFnTmFtZShtYXBUYWcp
KTsKIH0KIAotUmVmUHRyPEhUTUxNYXBFbGVtZW50PiBIVE1MTWFwRWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MTWFwRWxlbWVudD4gSFRNTE1hcEVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1M
TWFwRWxlbWVudChtYXBUYWcsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SFRNTE1hcEVsZW1lbnQobWFwVGFnLCBkb2N1bWVudCkpOwogfQogCi1SZWZQdHI8SFRNTE1hcEVs
ZW1lbnQ+IEhUTUxNYXBFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxNYXBFbGVtZW50PiBIVE1MTWFwRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxNYXBFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTE1hcEVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKIH0KIAogSFRNTE1hcEVsZW1lbnQ6On5IVE1MTWFwRWxlbWVudCgpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDggKzMyLDggQEAgY2xhc3MgSFRNTEltYWdlRWxlbWVudDsKICAgICAKIGNsYXNzIEhUTUxN
YXBFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmUHRyPEhUTUxNYXBFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKLSAgICBzdGF0aWMg
UmVmUHRyPEhUTUxNYXBFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MTWFwRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7
CisgICAgc3RhdGljIFJlZjxIVE1MTWFwRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgfkhUTUxNYXBFbGVtZW50KCk7CiAKICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGdldE5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5jcHAJKHJldmlzaW9u
IDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDIsMTEgKzQyLDExIEBAIGlubGluZSBIVE1MTWFycXVlZUVsZW1l
bnQ6OkhUTUxNYXJxdWVlRWwKICAgICBBU1NFUlQoaGFzVGFnTmFtZShtYXJxdWVlVGFnKSk7CiB9
CiAKLVJlZlB0cjxIVE1MTWFycXVlZUVsZW1lbnQ+IEhUTUxNYXJxdWVlRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxI
VE1MTWFycXVlZUVsZW1lbnQ+IEhUTUxNYXJxdWVlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBSZWZQdHI8SFRN
TE1hcnF1ZWVFbGVtZW50PiBtYXJxdWVlRWxlbWVudChhZG9wdFJlZihuZXcgSFRNTE1hcnF1ZWVF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSkpOworICAgIFJlZjxIVE1MTWFycXVlZUVsZW1lbnQ+
IG1hcnF1ZWVFbGVtZW50ID0gYWRvcHRSZWYoKm5ldyBIVE1MTWFycXVlZUVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKICAgICBtYXJxdWVlRWxlbWVudC0+c3VzcGVuZElmTmVlZGVkKCk7Ci0g
ICAgcmV0dXJuIG1hcnF1ZWVFbGVtZW50LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gbWFycXVlZUVs
ZW1lbnQ7CiB9CiAKIGludCBIVE1MTWFycXVlZUVsZW1lbnQ6Om1pbmltdW1EZWxheSgpIGNvbnN0
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmgJKHJldmlzaW9u
IDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgY2xhc3MgUmVuZGVyTWFycXVlZTsKIAogY2xh
c3MgSFRNTE1hcnF1ZWVFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50LCBwcml2YXRl
IEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MTWFycXVl
ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBz
dGF0aWMgUmVmPEhUTUxNYXJxdWVlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogCiAgICAgaW50IG1pbmltdW1EZWxheSgpIGNvbnN0OwogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZW51RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZW51RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDkgKzM1LDkgQEAgaW5saW5lIEhUTUxNZW51RWxlbWVudDo6SFRNTE1lbnVFbGVtZW50
KAogICAgIEFTU0VSVChoYXNUYWdOYW1lKG1lbnVUYWcpKTsKIH0KIAotUmVmUHRyPEhUTUxNZW51
RWxlbWVudD4gSFRNTE1lbnVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxNZW51RWxlbWVudD4gSFRNTE1lbnVF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTE1lbnVFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTE1lbnVFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lbnVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVudUVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVudUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxNZW51RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1M
RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MTWVudUVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhU
TUxNZW51RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
ICAgIAogcHJpdmF0ZToKICAgICBIVE1MTWVudUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3Bw
CShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDkgKzM3LDkgQEAgaW5saW5lIEhUTUxNZXRhRWxl
bWVudDo6SFRNTE1ldGFFbGVtZW50KAogICAgIEFTU0VSVChoYXNUYWdOYW1lKG1ldGFUYWcpKTsK
IH0KIAotUmVmUHRyPEhUTUxNZXRhRWxlbWVudD4gSFRNTE1ldGFFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxN
ZXRhRWxlbWVudD4gSFRNTE1ldGFFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
SFRNTE1ldGFFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSFRNTE1ldGFFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIHZvaWQgSFRN
TE1ldGFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWV0YUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRh
RWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZXRhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgSFRNTE1ldGFFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVt
ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxNZXRhRWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTE1l
dGFFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAg
ICBjb25zdCBBdG9taWNTdHJpbmcmIGNvbnRlbnQoKSBjb25zdDsKICAgICBjb25zdCBBdG9taWNT
dHJpbmcmIGh0dHBFcXVpdigpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWV0ZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZXRlckVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZXRlckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCw5ICs1MCw5IEBAIEhU
TUxNZXRlckVsZW1lbnQ6On5IVE1MTWV0ZXJFbGVtZW50KCkKIHsKIH0KIAotUmVmUHRyPEhUTUxN
ZXRlckVsZW1lbnQ+IEhUTUxNZXRlckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTE1ldGVyRWxlbWVudD4gSFRN
TE1ldGVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKLSAgICBSZWZQdHI8SFRNTE1ldGVyRWxlbWVudD4gbWV0ZXIgPSBh
ZG9wdFJlZihuZXcgSFRNTE1ldGVyRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIFJl
ZjxIVE1MTWV0ZXJFbGVtZW50PiBtZXRlciA9IGFkb3B0UmVmKCpuZXcgSFRNTE1ldGVyRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkpOwogICAgIG1ldGVyLT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dS
b290KCk7CiAgICAgcmV0dXJuIG1ldGVyOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWV0ZXJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWV0ZXJFbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1ldGVyRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIGNsYXNz
IFJlbmRlck1ldGVyOwogCiBjbGFzcyBIVE1MTWV0ZXJFbGVtZW50IGZpbmFsIDogcHVibGljIExh
YmVsYWJsZUVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTE1ldGVyRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRp
YyBSZWY8SFRNTE1ldGVyRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCiAgICAgZW51bSBHYXVnZVJlZ2lvbiB7CiAgICAgICAgIEdhdWdlUmVnaW9uT3B0
aW11bSwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNb2RFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzQsOSArMzQsOSBAQCBpbmxpbmUgSFRNTE1vZEVsZW1lbnQ6OkhUTUxN
b2RFbGVtZW50KGNvCiB7CiB9CiAKLVJlZlB0cjxIVE1MTW9kRWxlbWVudD4gSFRNTE1vZEVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1l
bnQpCitSZWY8SFRNTE1vZEVsZW1lbnQ+IEhUTUxNb2RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSFRNTE1vZEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBIVE1MTW9kRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQog
CiBib29sIEhUTUxNb2RFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0
dHJpYnV0ZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNb2RFbGVtZW50LmgJKHJl
dmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEhUTUxNb2RFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmUHRyPEhUTUxNb2RFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MTW9kRWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIEhUTUxN
b2RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00NCwxNCArNDQsMTQgQEAgSFRNTE9MaXN0RWxlbWVudDo6SFRNTE9MaXN0RWxlbWVudChjb25z
dAogICAgIEFTU0VSVChoYXNUYWdOYW1lKG9sVGFnKSk7CiB9CiAKLVJlZlB0cjxIVE1MT0xpc3RF
bGVtZW50PiBIVE1MT0xpc3RFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVm
PEhUTUxPTGlzdEVsZW1lbnQ+IEhUTUxPTGlzdEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MT0xpc3RFbGVtZW50KG9sVGFn
LCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxPTGlzdEVsZW1lbnQo
b2xUYWcsIGRvY3VtZW50KSk7CiB9CiAKLVJlZlB0cjxIVE1MT0xpc3RFbGVtZW50PiBIVE1MT0xp
c3RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50KQorUmVmPEhUTUxPTGlzdEVsZW1lbnQ+IEhUTUxPTGlzdEVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MT0xpc3RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTE9MaXN0RWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOwogfQogCiBib29sIEhUTUxPTGlzdEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MT0xpc3RFbGVtZW50IGZpbmFs
IDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxP
TGlzdEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwotICAgIHN0YXRpYyBSZWZQdHI8SFRNTE9M
aXN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAg
IHN0YXRpYyBSZWY8SFRNTE9MaXN0RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3Rh
dGljIFJlZjxIVE1MT0xpc3RFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKICAgICBpbnQgc3RhcnQoKSBjb25zdCB7IHJldHVybiBtX2hhc0V4cGxpY2l0
U3RhcnQgPyBtX3N0YXJ0IDogKG1faXNSZXZlcnNlZCA/IGl0ZW1Db3VudCgpIDogMSk7IH0KICAg
ICB2b2lkIHNldFN0YXJ0KGludCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmpl
Y3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmpl
Y3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2LDkgKzc2LDkgQEAgaW5s
aW5lIEhUTUxPYmplY3RFbGVtZW50Ojp+SFRNTE9iamVjdEVsZQogewogfQogCi1SZWZQdHI8SFRN
TE9iamVjdEVsZW1lbnQ+IEhUTUxPYmplY3RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0s
IGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQorUmVmPEhUTUxPYmplY3RFbGVtZW50PiBIVE1MT2JqZWN0
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtLCBib29sIGNyZWF0ZWRCeVBhcnNlcikKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxPYmplY3RFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50LCBmb3JtLCBjcmVhdGVkQnlQYXJzZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBI
VE1MT2JqZWN0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSwgY3JlYXRlZEJ5UGFyc2Vy
KSk7CiB9CiAKIFJlbmRlcldpZGdldCogSFRNTE9iamVjdEVsZW1lbnQ6OnJlbmRlcldpZGdldExv
YWRpbmdQbHVnaW4oKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVs
ZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIGNsYXNzIEhUTUxG
b3JtRWxlbWVudDsKIAogY2xhc3MgSFRNTE9iamVjdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRN
TFBsdWdJbkltYWdlRWxlbWVudCwgcHVibGljIEZvcm1Bc3NvY2lhdGVkRWxlbWVudCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MT2JqZWN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRlZEJ5
UGFyc2VyKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxPYmplY3RFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50KiwgYm9vbCBjcmVhdGVk
QnlQYXJzZXIpOwogICAgIHZpcnR1YWwgfkhUTUxPYmplY3RFbGVtZW50KCk7CiAKICAgICBib29s
IGlzRG9jTmFtZWRJdGVtKCkgY29uc3QgeyByZXR1cm4gbV9kb2NOYW1lZEl0ZW07IH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAkocmV2aXNpb24g
MTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDMsOSArNDMsOSBAQCBpbmxpbmUgSFRNTE9wdEdyb3VwRWxlbWVu
dDo6SFRNTE9wdEdyb3VwCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUob3B0Z3JvdXBUYWcpKTsKIH0K
IAotUmVmUHRyPEhUTUxPcHRHcm91cEVsZW1lbnQ+IEhUTUxPcHRHcm91cEVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8
SFRNTE9wdEdyb3VwRWxlbWVudD4gSFRNTE9wdEdyb3VwRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEhUTUxPcHRHcm91cEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MT3B0R3JvdXBFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KSk7CiB9CiAKIGJvb2wgSFRNTE9wdEdyb3VwRWxlbWVudDo6aXNEaXNhYmxlZEZvcm1Db250
cm9sKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVu
dC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91
cEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBIVE1MU2Vs
ZWN0RWxlbWVudDsKIAogY2xhc3MgSFRNTE9wdEdyb3VwRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBI
VE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MT3B0R3JvdXBFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGlj
IFJlZjxIVE1MT3B0R3JvdXBFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNEaXNhYmxlZEZvcm1Db250cm9sKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgSFRNTFNlbGVjdEVsZW1lbnQqIG93bmVyU2VsZWN0RWxlbWVudCgp
IGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NywxNCArNTcsMTQgQEAgSFRNTE9wdGlvbkVsZW1l
bnQ6OkhUTUxPcHRpb25FbGVtZW50KGNvbgogICAgIHNldEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNh
bGxiYWNrcygpOwogfQogCi1SZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+IEhUTUxPcHRpb25FbGVt
ZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxPcHRpb25FbGVtZW50PiBI
VE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEhUTUxPcHRpb25FbGVtZW50KG9wdGlvblRhZywgZG9jdW1lbnQpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MT3B0aW9uRWxlbWVudChvcHRpb25UYWcsIGRv
Y3VtZW50KSk7CiB9CiAKLVJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gSFRNTE9wdGlvbkVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1l
bnQpCitSZWY8SFRNTE9wdGlvbkVsZW1lbnQ+IEhUTUxPcHRpb25FbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSFRNTE9wdGlvbkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MT3B0aW9uRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQogCiBSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+IEhUTUxPcHRpb25FbGVtZW50
OjpjcmVhdGVGb3JKU0NvbnN0cnVjdG9yKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5n
JiBkYXRhLCBjb25zdCBTdHJpbmcmIHZhbHVlLApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT3B0aW9uRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9wdGlvbkVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3B0aW9uRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw4ICszNCw4IEBAIGNs
YXNzIEhUTUxTZWxlY3RFbGVtZW50OwogCiBjbGFzcyBIVE1MT3B0aW9uRWxlbWVudCBmaW5hbCA6
IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MT3B0
aW9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MT3B0
aW9uRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAg
IHN0YXRpYyBSZWY8SFRNTE9wdGlvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0
YXRpYyBSZWY8SFRNTE9wdGlvbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKICAgICBzdGF0aWMgUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBjcmVhdGVG
b3JKU0NvbnN0cnVjdG9yKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBTdHJp
bmcmIHZhbHVlLAogICAgICAgIGJvb2wgZGVmYXVsdFNlbGVjdGVkLCBib29sIHNlbGVjdGVkLCBF
eGNlcHRpb25Db2RlJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
dXRwdXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsOSArNDYsOSBAQCBpbmxpbmUg
SFRNTE91dHB1dEVsZW1lbnQ6OkhUTUxPdXRwdXRFbGVtCiB7CiB9CiAKLVJlZlB0cjxIVE1MT3V0
cHV0RWxlbWVudD4gSFRNTE91dHB1dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKK1Jl
ZjxIVE1MT3V0cHV0RWxlbWVudD4gSFRNTE91dHB1dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCog
Zm9ybSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxPdXRwdXRFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50LCBmb3JtKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTE91dHB1
dEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0pKTsKIH0KIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBIVE1MT3V0cHV0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxPdXRwdXRF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWZQdHI8SFRNTE91dHB1dEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUmVmPEhU
TUxPdXRwdXRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jiwg
SFRNTEZvcm1FbGVtZW50Kik7CiAKICAgICBTdHJpbmcgdmFsdWUoKSBjb25zdDsKICAgICB2b2lk
IHNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGFyYWdyYXBoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGFyYWdyYXBoRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwx
NCArMzksMTQgQEAgaW5saW5lIEhUTUxQYXJhZ3JhcGhFbGVtZW50OjpIVE1MUGFyYWdyYQogICAg
IEFTU0VSVChoYXNUYWdOYW1lKHBUYWcpKTsKIH0KIAotUmVmUHRyPEhUTUxQYXJhZ3JhcGhFbGVt
ZW50PiBIVE1MUGFyYWdyYXBoRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK1Jl
ZjxIVE1MUGFyYWdyYXBoRWxlbWVudD4gSFRNTFBhcmFncmFwaEVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MUGFyYWdyYXBo
RWxlbWVudChwVGFnLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxQ
YXJhZ3JhcGhFbGVtZW50KHBUYWcsIGRvY3VtZW50KSk7CiB9CiAKLVJlZlB0cjxIVE1MUGFyYWdy
YXBoRWxlbWVudD4gSFRNTFBhcmFncmFwaEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTFBhcmFncmFwaEVsZW1l
bnQ+IEhUTUxQYXJhZ3JhcGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRN
TFBhcmFncmFwaEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBIVE1MUGFyYWdyYXBoRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBi
b29sIEhUTUxQYXJhZ3JhcGhFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGFyYWdyYXBoRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBhcmFncmFwaEVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw4ICsyOSw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTFBhcmFncmFwaEVsZW1lbnQgZmlu
YWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRN
TFBhcmFncmFwaEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwotICAgIHN0YXRpYyBSZWZQdHI8
SFRNTFBhcmFncmFwaEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxQYXJhZ3JhcGhFbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxQYXJhZ3JhcGhFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgSFRNTFBhcmFncmFw
aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDkgKzM3LDkgQEAgaW5saW5lIEhUTUxQYXJhbUVsZW1lbnQ6OkhUTUxQYXJhbUVsZW1lbgog
ICAgIEFTU0VSVChoYXNUYWdOYW1lKHBhcmFtVGFnKSk7CiB9CiAKLVJlZlB0cjxIVE1MUGFyYW1F
bGVtZW50PiBIVE1MUGFyYW1FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxQYXJhbUVsZW1lbnQ+IEhUTUxQYXJh
bUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MUGFyYW1FbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTFBhcmFtRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBTdHJpbmcgSFRNTFBhcmFtRWxlbWVudDo6
bmFtZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQuaAko
cmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBIVE1MUGFyYW1FbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxQYXJhbUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxQYXJhbUVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIFN0cmlu
ZyBuYW1lKCkgY29uc3Q7CiAgICAgU3RyaW5nIHZhbHVlKCkgY29uc3Q7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUHJlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDkg
KzM4LDkgQEAgaW5saW5lIEhUTUxQcmVFbGVtZW50OjpIVE1MUHJlRWxlbWVudChjbwogewogfQog
Ci1SZWZQdHI8SFRNTFByZUVsZW1lbnQ+IEhUTUxQcmVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxQcmVFbGVt
ZW50PiBIVE1MUHJlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxQcmVF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRN
TFByZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBIVE1MUHJlRWxlbWVu
dDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29u
c3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3
NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxQcmVF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmUHRyPEhUTUxQcmVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MUHJlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIEhUTUxQcmVFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
MCw5ICs1MCw5IEBAIEhUTUxQcm9ncmVzc0VsZW1lbnQ6On5IVE1MUHJvZ3Jlc3NFbGVtZW4KIHsK
IH0KIAotUmVmUHRyPEhUTUxQcm9ncmVzc0VsZW1lbnQ+IEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitS
ZWY8SFRNTFByb2dyZXNzRWxlbWVudD4gSFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBSZWZQ
dHI8SFRNTFByb2dyZXNzRWxlbWVudD4gcHJvZ3Jlc3MgPSBhZG9wdFJlZihuZXcgSFRNTFByb2dy
ZXNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIFJlZjxIVE1MUHJvZ3Jlc3NFbGVt
ZW50PiBwcm9ncmVzcyA9IGFkb3B0UmVmKCpuZXcgSFRNTFByb2dyZXNzRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogICAgIHByb2dyZXNzLT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7
CiAgICAgcmV0dXJuIHByb2dyZXNzOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UHJvZ3Jlc3NFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UHJvZ3Jlc3NFbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgZG91YmxlIEluZGV0ZXJtaW5hdGVQb3NpdGlvbjsK
ICAgICBzdGF0aWMgY29uc3QgZG91YmxlIEludmFsaWRQb3NpdGlvbjsKIAotICAgIHN0YXRpYyBS
ZWZQdHI8SFRNTFByb2dyZXNzRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTFByb2dyZXNzRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgZG91YmxlIHZhbHVlKCkgY29u
c3Q7CiAgICAgdm9pZCBzZXRWYWx1ZShkb3VibGUsIEV4Y2VwdGlvbkNvZGUmKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUXVvdGVFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUXVvdGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzcsOSArMzcsOSBAQCBpbmxpbmUgSFRNTFF1b3RlRWxlbWVudDo6SFRNTFF1b3RlRWxl
bWVuCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUocVRhZykgfHwgaGFzVGFnTmFtZShibG9ja3F1b3Rl
VGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFF1b3RlRWxlbWVudD4gSFRNTFF1b3RlRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKK1JlZjxIVE1MUXVvdGVFbGVtZW50PiBIVE1MUXVvdGVFbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVy
biBhZG9wdFJlZihuZXcgSFRNTFF1b3RlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxRdW90ZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
KTsKIH0KIAogYm9vbCBIVE1MUXVvdGVFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRy
aWJ1dGUmIGF0dHJpYnV0ZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFF1
b3RlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFF1b3Rl
RWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxR
dW90ZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxRdW90ZUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVs
ZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxRdW90ZUVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVm
PEhUTUxRdW90ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKIAogcHJpdmF0ZToKICAgICBIVE1MUXVvdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlw
dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw5ICs0Miw5IEBAIGlubGluZSBIVE1M
U2NyaXB0RWxlbWVudDo6SFRNTFNjcmlwdEVsZW0KICAgICBBU1NFUlQoaGFzVGFnTmFtZShzY3Jp
cHRUYWcpKTsKIH0KIAotUmVmUHRyPEhUTUxTY3JpcHRFbGVtZW50PiBIVE1MU2NyaXB0RWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIGFscmVhZHlTdGFydGVkKQorUmVmPEhU
TUxTY3JpcHRFbGVtZW50PiBIVE1MU2NyaXB0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFy
c2VyLCBib29sIGFscmVhZHlTdGFydGVkKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRN
TFNjcmlwdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIHdhc0luc2VydGVkQnlQYXJzZXIsIGFs
cmVhZHlTdGFydGVkKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTFNjcmlwdEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQsIHdhc0luc2VydGVkQnlQYXJzZXIsIGFscmVhZHlTdGFydGVk
KSk7CiB9CiAKIGJvb2wgSFRNTFNjcmlwdEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0
dHJpYnV0ZSYgYXR0cmlidXRlKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2NyaXB0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNj
cmlwdEVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMg
SFRNTEVsZW1lbnQsIHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmUHRyPEhUTUxTY3JpcHRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIGFscmVhZHlTdGFydGVkID0g
ZmFsc2UpOworICAgIHN0YXRpYyBSZWY8SFRNTFNjcmlwdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJvb2wg
YWxyZWFkeVN0YXJ0ZWQgPSBmYWxzZSk7CiAKICAgICBTdHJpbmcgdGV4dCgpIGNvbnN0IHsgcmV0
dXJuIHNjcmlwdENvbnRlbnQoKTsgfQogICAgIHZvaWQgc2V0VGV4dChjb25zdCBTdHJpbmcmKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtODAsMTAgKzgwLDEwIEBAIEhUTUxTZWxlY3RFbGVtZW50OjpIVE1M
U2VsZWN0RWxlbWVudChjb24KICAgICBBU1NFUlQoaGFzVGFnTmFtZShzZWxlY3RUYWcpKTsKIH0K
IAotUmVmUHRyPEhUTUxTZWxlY3RFbGVtZW50PiBIVE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgSFRNTEZvcm1F
bGVtZW50KiBmb3JtKQorUmVmPEhUTUxTZWxlY3RFbGVtZW50PiBIVE1MU2VsZWN0RWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwg
SFRNTEZvcm1FbGVtZW50KiBmb3JtKQogewogICAgIEFTU0VSVCh0YWdOYW1lLm1hdGNoZXMoc2Vs
ZWN0VGFnKSk7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MU2VsZWN0RWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCwgZm9ybSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxTZWxl
Y3RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtKSk7CiB9CiAKIHZvaWQgSFRNTFNlbGVj
dEVsZW1lbnQ6OmRpZFJlY2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2Ugc3R5bGVDaGFuZ2UpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgSFRNTE9wdGlvbnNDb2xsZWN0aW9uOwogCiBjbGFz
cyBIVE1MU2VsZWN0RWxlbWVudCA6IHB1YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0
YXRlLCBwdWJsaWMgVHlwZUFoZWFkRGF0YVNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZlB0cjxIVE1MU2VsZWN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYsIEhUTUxGb3JtRWxlbWVudCopOworICAgIHN0YXRpYyBSZWY8SFRNTFNlbGVjdEVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1l
bnQqKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGludCBzZWxlY3RlZEluZGV4KCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRTZWxlY3RlZEluZGV4KGludCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTb3VyY2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTb3VyY2VFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDkgKzQ2
LDkgQEAgaW5saW5lIEhUTUxTb3VyY2VFbGVtZW50OjpIVE1MU291cmNlRWxlbQogICAgIEFTU0VS
VChoYXNUYWdOYW1lKHNvdXJjZVRhZykpOwogfQogCi1SZWZQdHI8SFRNTFNvdXJjZUVsZW1lbnQ+
IEhUTUxTb3VyY2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxTb3VyY2VFbGVtZW50PiBIVE1MU291cmNlRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxTb3VyY2VFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTFNvdXJjZUVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9u
UmVxdWVzdCBIVE1MU291cmNlRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmIGlu
c2VydGlvblBvaW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQu
aAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgSFRNTFNvdXJjZUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTFNvdXJjZUVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxTb3Vy
Y2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAg
ICBTdHJpbmcgbWVkaWEoKSBjb25zdDsKICAgICBTdHJpbmcgdHlwZSgpIGNvbnN0OwpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3BhbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNwYW5FbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3BhbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zOCw5ICszOCw5IEBAIEhUTUxTcGFuRWxlbWVudDo6SFRNTFNwYW5FbGVtZW50KGNvbnN0
IFEKICAgICBBU1NFUlQoaGFzVGFnTmFtZShzcGFuVGFnKSk7CiB9CiAKLVJlZlB0cjxIVE1MU3Bh
bkVsZW1lbnQ+IEhUTUxTcGFuRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MU3BhbkVsZW1lbnQ+IEhUTUxTcGFu
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxTcGFuRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxTcGFuRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTcGFuRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNwYW5FbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNwYW5FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MU3BhbkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRN
TEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTFNwYW5FbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxI
VE1MU3BhbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
IAogcHJpdmF0ZToKICAgICBIVE1MU3BhbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDkgKzYzLDkgQEAgSFRNTFN0eWxlRWxlbWVudDo6
fkhUTUxTdHlsZUVsZW1lbnQoKQogICAgIHN0eWxlTG9hZEV2ZW50U2VuZGVyKCkuY2FuY2VsRXZl
bnQoKnRoaXMpOwogfQogCi1SZWZQdHI8SFRNTFN0eWxlRWxlbWVudD4gSFRNTFN0eWxlRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCitSZWY8SFRNTFN0eWxlRWxlbWVudD4gSFRNTFN0eWxl
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBIVE1MU3R5bGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBjcmVhdGVkQnlQYXJzZXIpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MU3R5bGVFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50LCBjcmVhdGVkQnlQYXJzZXIpKTsKIH0KIAogdm9pZCBIVE1MU3R5bGVFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcm
IHZhbHVlKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgJKHJldmlz
aW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIHR5cGVkZWYgRXZlbnRTZW5kZXI8SFRNTFN0
eWxlRWxlbWVudD4gU3QKIAogY2xhc3MgSFRNTFN0eWxlRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBI
VE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MU3R5bGVFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQ
YXJzZXIpOworICAgIHN0YXRpYyBSZWY8SFRNTFN0eWxlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKICAgICB2aXJ0
dWFsIH5IVE1MU3R5bGVFbGVtZW50KCk7CiAKICAgICBDU1NTdHlsZVNoZWV0KiBzaGVldCgpIGNv
bnN0IHsgcmV0dXJuIG1fc3R5bGVTaGVldE93bmVyLnNoZWV0KCk7IH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTIsOSArNTIsOSBAQCBSZWZQdHI8U3VtbWFyeUNvbnRlbnRFbGVtZW50PiBTdW1tYXJ5
Q29uCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdW1tYXJ5Q29udGVudEVsZW1lbnQoZG9jdW1l
bnQpKTsKIH0KIAotUmVmUHRyPEhUTUxTdW1tYXJ5RWxlbWVudD4gSFRNTFN1bW1hcnlFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQorUmVmPEhUTUxTdW1tYXJ5RWxlbWVudD4gSFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIFJl
ZlB0cjxIVE1MU3VtbWFyeUVsZW1lbnQ+IHN1bW1hcnkgPSBhZG9wdFJlZihuZXcgSFRNTFN1bW1h
cnlFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgUmVmPEhUTUxTdW1tYXJ5RWxlbWVu
dD4gc3VtbWFyeSA9IGFkb3B0UmVmKCpuZXcgSFRNTFN1bW1hcnlFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CiAgICAgc3VtbWFyeS0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwogICAg
IHJldHVybiBzdW1tYXJ5OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFy
eUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5
RWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
dW1tYXJ5RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw4IEBAIGNsYXNzIEhU
TUxEZXRhaWxzRWxlbWVudDsKIAogY2xhc3MgSFRNTFN1bW1hcnlFbGVtZW50IGZpbmFsIDogcHVi
bGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxTdW1tYXJ5
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0
YXRpYyBSZWY8SFRNTFN1bW1hcnlFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CisKICAgICBib29sIGlzTWFpblN1bW1hcnkoKSBjb25zdDsKICAgICB2aXJ0
dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBvdmVycmlkZTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlv
bkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw5ICszOSw5IEBAIGlubGluZSBIVE1M
VGFibGVDYXB0aW9uRWxlbWVudDo6SFRNTFRhYmwKICAgICBBU1NFUlQoaGFzVGFnTmFtZShjYXB0
aW9uVGFnKSk7CiB9CiAKLVJlZlB0cjxIVE1MVGFibGVDYXB0aW9uRWxlbWVudD4gSFRNTFRhYmxl
Q2FwdGlvbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ+IEhUTUxUYWJsZUNh
cHRpb25FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFRhYmxlQ2FwdGlv
bkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBI
VE1MVGFibGVDYXB0aW9uRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCiBib29sIEhU
TUxUYWJsZUNhcHRpb25FbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVDYXB0aW9uRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlQ2FwdGlvbkVsZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3
ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWZQdHI8SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxUYWJsZUNhcHRpb25FbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAg
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAko
cmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDkgKzQ0LDkgQEAgaW5saW5lIEhUTUxUYWJs
ZUNlbGxFbGVtZW50OjpIVE1MVGFibGVDZQogewogfQogCi1SZWZQdHI8SFRNTFRhYmxlQ2VsbEVs
ZW1lbnQ+IEhUTUxUYWJsZUNlbGxFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxUYWJsZUNlbGxFbGVtZW50PiBI
VE1MVGFibGVDZWxsRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxUYWJs
ZUNlbGxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSFRNTFRhYmxlQ2VsbEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogaW50IEhU
TUxUYWJsZUNlbGxFbGVtZW50Ojpjb2xTcGFuKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxUYWJsZUNlbGxF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxUYWJsZVBhcnRFbGVtZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmUHRyPEhUTUxUYWJsZUNlbGxFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MVGFibGVDZWxsRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgaW50IGNl
bGxJbmRleCgpIGNvbnN0OwogICAgIGludCBjb2xTcGFuKCkgY29uc3Q7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQyLDkgKzQyLDkgQEAgaW5saW5lIEhUTUxUYWJsZUNvbEVsZW1lbnQ6OkhUTUxU
YWJsZUNvbAogewogfQogCi1SZWZQdHI8SFRNTFRhYmxlQ29sRWxlbWVudD4gSFRNTFRhYmxlQ29s
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCkKK1JlZjxIVE1MVGFibGVDb2xFbGVtZW50PiBIVE1MVGFibGVDb2xFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFRhYmxlQ29sRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxUYWJsZUNvbEVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBIVE1MVGFibGVDb2xFbGVtZW50Ojppc1By
ZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdApJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmgJKHJldmlzaW9uIDE3
Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
SFRNTFRhYmxlQ29sRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MVGFibGVQYXJ0RWxlbWVudCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MVGFibGVDb2xFbGVtZW50PiBjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVm
PEhUTUxUYWJsZUNvbEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYpOwogCiAgICAgaW50IHNwYW4oKSBjb25zdCB7IHJldHVybiBtX3NwYW47IH0K
ICAgICB2b2lkIHNldFNwYW4oaW50KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsMTQgKzU3LDE0IEBAIEhU
TUxUYWJsZUVsZW1lbnQ6OkhUTUxUYWJsZUVsZW1lbnQoY29uc3QKICAgICBBU1NFUlQoaGFzVGFn
TmFtZSh0YWJsZVRhZykpOwogfQogCi1SZWZQdHI8SFRNTFRhYmxlRWxlbWVudD4gSFRNTFRhYmxl
RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MVGFibGVFbGVtZW50
PiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSFRNTFRhYmxlRWxlbWVudCh0YWJsZVRhZywgZG9jdW1lbnQpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MVGFibGVFbGVtZW50KHRhYmxlVGFnLCBkb2N1
bWVudCkpOwogfQogCi1SZWZQdHI8SFRNTFRhYmxlRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
K1JlZjxIVE1MVGFibGVFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSFRNTFRhYmxlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEhUTUxUYWJsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
IH0KIAogSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1lbnQ6OmNhcHRpb24o
KSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgJKHJldmlz
aW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNyw4IEBAIGNsYXNzIEhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50OwogCiBjbGFzcyBIVE1MVGFibGVFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxUYWJsZUVsZW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCYpOwotICAgIHN0YXRpYyBSZWZQdHI8SFRNTFRhYmxlRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTFRhYmxl
RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1MVGFibGVFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBIVE1M
VGFibGVDYXB0aW9uRWxlbWVudCogY2FwdGlvbigpIGNvbnN0OwogICAgIHZvaWQgc2V0Q2FwdGlv
bihQYXNzUmVmUHRyPEhUTUxUYWJsZUNhcHRpb25FbGVtZW50PiwgRXhjZXB0aW9uQ29kZSYpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwCShyZXZp
c2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxNCArNDQsMTQgQEAgSFRNTFRhYmxlUm93RWxlbWVu
dDo6SFRNTFRhYmxlUm93RWxlbWVudAogICAgIEFTU0VSVChoYXNUYWdOYW1lKHRyVGFnKSk7CiB9
CiAKLVJlZlB0cjxIVE1MVGFibGVSb3dFbGVtZW50PiBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IEhUTUxUYWJs
ZVJvd0VsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBIVE1MVGFibGVSb3dFbGVtZW50KHRyVGFnLCBkb2N1bWVudCkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEhUTUxUYWJsZVJvd0VsZW1lbnQodHJUYWcsIGRvY3VtZW50KSk7
CiB9CiAKLVJlZlB0cjxIVE1MVGFibGVSb3dFbGVtZW50PiBIVE1MVGFibGVSb3dFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQor
UmVmPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBIVE1MVGFibGVSb3dFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTFRhYmxlUm93RWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOwogfQogCiBpbnQgSFRNTFRhYmxlUm93RWxlbWVudDo6cm93SW5kZXgoKSBjb25z
dApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmgJKHJldmlz
aW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw4ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgSFRNTFRhYmxlUm93RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MVGFibGVQYXJ0RWxl
bWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MVGFibGVSb3dFbGVtZW50PiBj
cmVhdGUoRG9jdW1lbnQmKTsKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxUYWJsZVJvd0VsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVm
PEhUTUxUYWJsZVJvd0VsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8
SFRNTFRhYmxlUm93RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCiAgICAgaW50IHJvd0luZGV4KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRSb3dJbmRleChp
bnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxl
bWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw5ICs0Miw5IEBAIGlu
bGluZSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6SFRNTFRhYmwKIHsKIH0KIAotUmVmUHRyPEhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50PiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1M
VGFibGVTZWN0aW9uRWxlbWVudD4gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGNvbnN0IFN0eWxlUHJvcGVydGllcyogSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQ6OmFkZGl0aW9uYWxQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oCShy
ZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25F
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1M
VGFibGVQYXJ0RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwor
ICAgIHN0YXRpYyBSZWY8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gaW5zZXJ0
Um93KEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBpbnNlcnRSb3coLTEsIGVjKTsgfQogICAg
IFJlZlB0cjxIVE1MRWxlbWVudD4gaW5zZXJ0Um93KGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSw5ICs1NSw5IEBAIEhUTUxUZW1wbGF0ZUVsZW1l
bnQ6On5IVE1MVGVtcGxhdGVFbGVtZW4KICAgICAgICAgbV9jb250ZW50LT5jbGVhckhvc3QoKTsK
IH0KIAotUmVmUHRyPEhUTUxUZW1wbGF0ZUVsZW1lbnQ+IEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitS
ZWY8SFRNTFRlbXBsYXRlRWxlbWVudD4gSFRNTFRlbXBsYXRlRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEhUTUxUZW1wbGF0ZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MVGVtcGxhdGVFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CiB9CiAKIERvY3VtZW50RnJhZ21lbnQqIEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNv
bnRlbnQoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVt
ZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBs
YXRlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIFRlbXBs
YXRlQ29udGVudERvY3VtZW50RnJhZ21lbnQ7CiAKIGNsYXNzIEhUTUxUZW1wbGF0ZUVsZW1lbnQg
ZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8
SFRNTFRlbXBsYXRlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOworICAgIHN0YXRpYyBSZWY8SFRNTFRlbXBsYXRlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgfkhUTUxUZW1wbGF0ZUVsZW1l
bnQoKTsKIAogICAgIERvY3VtZW50RnJhZ21lbnQqIGNvbnRlbnQoKSBjb25zdDsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAkocmV2aXNpb24gMTc3
ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTAxLDkgKzEwMSw5IEBAIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OkhUTUxU
ZXh0QXJlYUVsZW1lbnQKICAgICBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKHRy
dWUpOwogfQogCi1SZWZQdHI8SFRNTFRleHRBcmVhRWxlbWVudD4gSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQorUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IEhUTUxU
ZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKIHsKLSAgICBSZWZQdHI8SFRN
TFRleHRBcmVhRWxlbWVudD4gdGV4dEFyZWEgPSBhZG9wdFJlZihuZXcgSFRNTFRleHRBcmVhRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkpOworICAgIFJlZjxIVE1MVGV4dEFyZWFFbGVt
ZW50PiB0ZXh0QXJlYSA9IGFkb3B0UmVmKCpuZXcgSFRNTFRleHRBcmVhRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCwgZm9ybSkpOwogICAgIHRleHRBcmVhLT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dS
b290KCk7CiAgICAgcmV0dXJuIHRleHRBcmVhOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICsz
Myw3IEBAIGNsYXNzIFZpc2libGVTZWxlY3Rpb247CiAKIGNsYXNzIEhUTUxUZXh0QXJlYUVsZW1l
bnQgZmluYWwgOiBwdWJsaWMgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWZQdHI8SFRNTFRleHRBcmVhRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCopOworICAgIHN0YXRpYyBSZWY8
SFRNTFRleHRBcmVhRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYsIEhUTUxGb3JtRWxlbWVudCopOwogCiAgICAgaW50IGNvbHMoKSBjb25zdCB7IHJldHVybiBt
X2NvbHM7IH0KICAgICBpbnQgcm93cygpIGNvbnN0IHsgcmV0dXJuIG1fcm93czsgfQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4NzUp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00NCw5ICs0NCw5IEBAIGlubGluZSBIVE1MVGl0bGVFbGVtZW50OjpIVE1MVGl0bGVF
bGVtZW4KICAgICBBU1NFUlQoaGFzVGFnTmFtZSh0aXRsZVRhZykpOwogfQogCi1SZWZQdHI8SFRN
TFRpdGxlRWxlbWVudD4gSFRNTFRpdGxlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxIVE1MVGl0bGVFbGVtZW50PiBI
VE1MVGl0bGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFRpdGxlRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxU
aXRsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAogTm9kZTo6SW5zZXJ0aW9uTm90
aWZpY2F0aW9uUmVxdWVzdCBIVE1MVGl0bGVFbGVtZW50OjppbnNlcnRlZEludG8oQ29udGFpbmVy
Tm9kZSYgaW5zZXJ0aW9uUG9pbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRs
ZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVs
ZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0
bGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBIVE1MVGl0bGVFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVt
ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxUaXRsZUVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxU
aXRsZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAog
ICAgIFN0cmluZyB0ZXh0KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRUZXh0KGNvbnN0IFN0cmluZyYp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCShyZXZpc2lv
biAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02NCw5ICs2NCw5IEBAIEhUTUxUcmFja0VsZW1lbnQ6On5IVE1MVHJh
Y2tFbGVtZW50KCkKICAgICAgICAgbV90cmFjay0+Y2xlYXJDbGllbnQoKTsKIH0KIAotUmVmUHRy
PEhUTUxUcmFja0VsZW1lbnQ+IEhUTUxUcmFja0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTFRyYWNrRWxlbWVu
dD4gSFRNTFRyYWNrRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxUcmFj
a0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBI
VE1MVHJhY2tFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIE5vZGU6Okluc2VydGlv
bk5vdGlmaWNhdGlvblJlcXVlc3QgSFRNTFRyYWNrRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRh
aW5lck5vZGUmIGluc2VydGlvblBvaW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VHJhY2tFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJh
Y2tFbGVtZW50LmgJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRyYWNrRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIEhU
TUxNZWRpYUVsZW1lbnQ7CiAKIGNsYXNzIEhUTUxUcmFja0VsZW1lbnQgZmluYWwgOiBwdWJsaWMg
SFRNTEVsZW1lbnQsIHB1YmxpYyBUZXh0VHJhY2tDbGllbnQgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWZQdHI8SFRNTFRyYWNrRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SFRNTFRyYWNrRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgU3RyaW5nIGtpbmQoKTsKICAgICB2
b2lkIHNldEtpbmQoY29uc3QgU3RyaW5nJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxVTGlzdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFVMaXN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE3Nzg3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFVMaXN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDE0ICszNywxNCBA
QCBIVE1MVUxpc3RFbGVtZW50OjpIVE1MVUxpc3RFbGVtZW50KGNvbnN0CiAgICAgQVNTRVJUKGhh
c1RhZ05hbWUodWxUYWcpKTsKIH0KIAotUmVmUHRyPEhUTUxVTGlzdEVsZW1lbnQ+IEhUTUxVTGlz
dEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTFVMaXN0RWxlbWVu
dD4gSFRNTFVMaXN0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxVTGlzdEVsZW1lbnQodWxUYWcsIGRvY3VtZW50KSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTFVMaXN0RWxlbWVudCh1bFRhZywgZG9jdW1lbnQp
KTsKIH0KIAotUmVmUHRyPEhUTUxVTGlzdEVsZW1lbnQ+IEhUTUxVTGlzdEVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8
SFRNTFVMaXN0RWxlbWVudD4gSFRNTFVMaXN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEhUTUxVTGlzdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBIVE1MVUxpc3RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAK
IGJvb2wgSFRNTFVMaXN0RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFVM
aXN0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFVMaXN0
RWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxV
TGlzdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxVTGlzdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVs
ZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTFVMaXN0RWxlbWVudD4gY3Jl
YXRlKERvY3VtZW50Jik7Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MVUxpc3RFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxIVE1M
VUxpc3RFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxVTGlz
dEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJp
dmF0ZToKICAgICBIVE1MVUxpc3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVW5rbm93bkVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVbmtub3duRWxlbWVudC5oCShyZXZp
c2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVbmtub3duRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNiw5ICszNiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgSFRNTFVua25vd25FbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEhUTUxVbmtub3duRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICBzdGF0aWMg
UmVmPEhUTUxVbmtub3duRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSFRNTFVua25vd25FbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEhUTUxVbmtub3duRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
ICAgIH0KIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVt
ZW50LmNwcAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlk
ZW9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsOSArNTcsOSBAQCBpbmxpbmUgSFRN
TFZpZGVvRWxlbWVudDo6SFRNTFZpZGVvRWxlbWVuCiAgICAgICAgIG1fZGVmYXVsdFBvc3RlclVS
TCA9IGRvY3VtZW50LnNldHRpbmdzKCktPmRlZmF1bHRWaWRlb1Bvc3RlclVSTCgpOwogfQogCi1S
ZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4gSFRNTFZpZGVvRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQ
YXJzZXIpCitSZWY8SFRNTFZpZGVvRWxlbWVudD4gSFRNTFZpZGVvRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBjcmVh
dGVkQnlQYXJzZXIpCiB7Ci0gICAgUmVmUHRyPEhUTUxWaWRlb0VsZW1lbnQ+IHZpZGVvRWxlbWVu
dChhZG9wdFJlZihuZXcgSFRNTFZpZGVvRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgY3JlYXRl
ZEJ5UGFyc2VyKSkpOworICAgIFJlZjxIVE1MVmlkZW9FbGVtZW50PiB2aWRlb0VsZW1lbnQgPSBh
ZG9wdFJlZigqbmV3IEhUTUxWaWRlb0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGNyZWF0ZWRC
eVBhcnNlcikpOwogICAgIHZpZGVvRWxlbWVudC0+c3VzcGVuZElmTmVlZGVkKCk7CiAgICAgcmV0
dXJuIHZpZGVvRWxlbWVudDsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVv
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxl
bWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRl
b0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBIVE1MSW1h
Z2VMb2FkZXI7CiAKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTE1l
ZGlhRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MVmlkZW9FbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCk7CisgICAgc3Rh
dGljIFJlZjxIVE1MVmlkZW9FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50JiwgYm9vbCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCB2aWRlb1dpZHRo
KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgdmlkZW9IZWlnaHQoKSBjb25z
dDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFdCUkVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFdCUkVsZW1lbnQuY3BwCShyZXZpc2lvbiAx
Nzc4NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxXQlJFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzMsOSArMzMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiAKLVJlZlB0cjxIVE1MV0JSRWxlbWVudD4gSFRNTFdCUkVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1l
bnQpCitSZWY8SFRNTFdCUkVsZW1lbnQ+IEhUTUxXQlJFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSFRNTFdCUkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBIVE1MV0JSRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQog
CiBIVE1MV0JSRWxlbWVudDo6SFRNTFdCUkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
V0JSRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFdCUkVs
ZW1lbnQuaAkocmV2aXNpb24gMTc3ODc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MV0JS
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgSFRNTFdCUkVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SFRNTFdCUkVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxXQlJFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6
CiAgICAgSFRNTFdCUkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzc4
NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTUwLDkgKzUwLDkgQEAgTWF0aE1MRWxlbWVudDo6TWF0aE1MRWxlbWVudChjb25z
dCBRdWFsaQogewogfQogICAgIAotUmVmUHRyPE1hdGhNTEVsZW1lbnQ+IE1hdGhNTEVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CitSZWY8TWF0aE1MRWxlbWVudD4gTWF0aE1MRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IE1hdGhNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBNYXRoTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKIGJvb2wg
TWF0aE1MRWxlbWVudDo6aXNQcmVzZW50YXRpb25NYXRoTUwoKSBjb25zdApJbmRleDogU291cmNl
L1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5oCShyZXZpc2lvbiAxNzc4NzUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICsz
Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWF0aE1MRWxlbWVudCA6IHB1Ymxp
YyBTdHlsZWRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPE1hdGhNTEVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOworICAg
IHN0YXRpYyBSZWY8TWF0aE1MRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50Jik7CiAKICAgICBpbnQgY29sU3BhbigpIGNvbnN0OwogICAgIGludCBy
b3dTcGFuKCkgY29uc3Q7Cg==
</data>
<flag name="review"
          id="268880"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="268902"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>