<?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>56197</bug_id>
          
          <creation_ts>2011-03-11 08:55:11 -0800</creation_ts>
          <short_desc>JNIType is not specific to JNI so should be renamed</short_desc>
          <delta_ts>2011-03-24 07:19:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>55383</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Steve Block">steveblock</reporter>
          <assigned_to name="Steve Block">steveblock</assigned_to>
          <cc>abarth</cc>
    
    <cc>andreip</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>jorlow</cc>
    
    <cc>steveblock</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>366021</commentid>
    <comment_count>0</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-03-11 08:55:11 -0800</bug_when>
    <thetext>JNIType is not specific to JNI so should be renamed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366023</commentid>
    <comment_count>1</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-03-11 08:58:01 -0800</bug_when>
    <thetext>This enum describes a general Java type, so should be renamed to JavaType and moved out of JNIUtility.h.

This is part of making JavaInstance a clean interface that is not dependent upon JNI. See Bug 55383.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366029</commentid>
    <comment_count>2</comment_count>
      <attachid>85479</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-03-11 09:07:52 -0800</bug_when>
    <thetext>Created attachment 85479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366051</commentid>
    <comment_count>3</comment_count>
      <attachid>85479</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-03-11 09:39:38 -0800</bug_when>
    <thetext>Comment on attachment 85479
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372578</commentid>
    <comment_count>4</comment_count>
      <attachid>86728</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-03-23 17:57:40 -0700</bug_when>
    <thetext>Created attachment 86728
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372579</commentid>
    <comment_count>5</comment_count>
      <attachid>86728</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-03-23 17:58:21 -0700</bug_when>
    <thetext>Comment on attachment 86728
Patch

Rebased only. Checking try-bots. No review required.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372722</commentid>
    <comment_count>6</comment_count>
      <attachid>86728</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-03-24 02:49:26 -0700</bug_when>
    <thetext>Comment on attachment 86728
Patch

Rebased only. Checking try-bots. No review required.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372725</commentid>
    <comment_count>7</comment_count>
      <attachid>86728</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-24 03:46:59 -0700</bug_when>
    <thetext>Comment on attachment 86728
Patch

Rejecting attachment 86728 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-3&apos;, &apos;land-a...&quot; exit_code: 1

Last 500 characters of output:
tTests/platform/gtk/fast/block/lineboxcontain/inline-box-vertical-expected.checksum
	A	LayoutTests/platform/gtk/fast/block/lineboxcontain/block-font-expected.txt
	A	LayoutTests/platform/gtk/fast/block/lineboxcontain/inline-replaced-expected.png
	A	LayoutTests/editing/selection/fake-drag-expected.txt
	M	LayoutTests/ChangeLog
r81858 = e75e7eb10efcc9c1b1b3dd52461ad2a4930057ee (refs/remotes/trunk)
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/trunk.

Full output: http://queues.webkit.org/results/8233466</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372743</commentid>
    <comment_count>8</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-03-24 04:20:01 -0700</bug_when>
    <thetext>Committed r81860: &lt;http://trac.webkit.org/changeset/81860&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372800</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-24 07:19:31 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/81860 might have broken Windows XP Debug (Tests)
The following tests are not passing:
http/tests/inspector/network/network-redirect.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85479</attachid>
            <date>2011-03-11 09:07:52 -0800</date>
            <delta_ts>2011-03-23 17:57:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56197-20110311170749.patch</filename>
            <type>text/plain</type>
            <size>64813</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA4NTMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NDhkYzcyNjk4ZjcyNjA4
N2Y3NmU1MWViOTBhOWEwNDllNGMwZjQ5Li4zYWIzOWY2MTU3M2Y3NWMxODI0OWIzZGRmYWE5YmJj
YmM4YmIyMjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMTEtMDMtMTEgIFN0ZXZl
IEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEpOSVR5cGUgaXMgbm90IHNwZWNpZmljIHRvIEpOSSBz
byBzaG91bGQgYmUgcmVuYW1lZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTYxOTcKKworICAgICAgICBUaGlzIHBhdGNoIHJlbmFtZXMgSk5JVHlwZSB0
byBKYXZhVHlwZSwgcmVuYW1lcyB0aGUgdmFsdWVzIG9mCisgICAgICAgIHRoZSBlbnVtLCBhbmQg
bW92ZXMgaXQgb3V0IG9mIEpOSVV0aWxpdHkuaCB0byBpdHMgb3duIGZpbGUuCisgICAgICAgIEFs
c28gcmVuYW1lcyB0aGUgY29ycmVzcG9uZGluZyBKYXZhRmllbGQgYW5kIEphdmFNZXRob2QgZ2V0
dGVycy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yaW5nIG9ubHkuCisKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJyaWRnZS9qbmkv
Sk5JVXRpbGl0eS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpqYXZhVHlwZUZyb21DbGFz
c05hbWUpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6c2lnbmF0dXJlRnJvbUphdmFUeXBlKToK
KyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmphdmFUeXBlRnJvbVByaW1pdGl2ZVR5cGUpOgorICAg
ICAgICAoSlNDOjpCaW5kaW5nczo6Z2V0Sk5JRmllbGQpOgorICAgICAgICAoSlNDOjpCaW5kaW5n
czo6Y2FsbEpOSU1ldGhvZCk6CisgICAgICAgICogYnJpZGdlL2puaS9KTklVdGlsaXR5Lmg6Cisg
ICAgICAgICogYnJpZGdlL2puaS9KYXZhTWV0aG9kLmNwcDoKKyAgICAgICAgKEphdmFNZXRob2Q6
OkphdmFNZXRob2QpOgorICAgICAgICAoSmF2YU1ldGhvZDo6c2lnbmF0dXJlKToKKyAgICAgICAg
KiBicmlkZ2Uvam5pL0phdmFNZXRob2QuaDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkphdmFN
ZXRob2Q6OnJldHVyblR5cGVDbGFzc05hbWUpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6SmF2
YU1ldGhvZDo6cmV0dXJuVHlwZSk6CisgICAgICAgICogYnJpZGdlL2puaS9KYXZhVHlwZS5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL0phdmFNZXRob2QuaC4KKyAgICAg
ICAgKiBicmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbToKKyAgICAgICAgKEphdmFKU09iamVjdDo6
dG9TdHJpbmcpOgorICAgICAgICAqIGJyaWRnZS9qbmkvam5pX29iamMubW06CisgICAgICAgIChK
U0M6OkJpbmRpbmdzOjpkaXNwYXRjaEpOSUNhbGwpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNj
L0pOSVV0aWxpdHlQcml2YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNvbnZlcnRB
cnJheUluc3RhbmNlVG9KYXZhQXJyYXkpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Y29udmVy
dFZhbHVlVG9KVmFsdWUpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0pOSVV0aWxpdHlQcml2
YXRlLmg6CisgICAgICAgICogYnJpZGdlL2puaS9qc2MvSmF2YUFycmF5SlNDLmNwcDoKKyAgICAg
ICAgKEphdmFBcnJheTo6c2V0VmFsdWVBdCk6CisgICAgICAgIChKYXZhQXJyYXk6OnZhbHVlQXQp
OgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0phdmFDbGFzc0pTQy5jcHA6CisgICAgICAgICog
YnJpZGdlL2puaS9qc2MvSmF2YUZpZWxkSlNDLmNwcDoKKyAgICAgICAgKEphdmFGaWVsZDo6SmF2
YUZpZWxkKToKKyAgICAgICAgKEphdmFGaWVsZDo6ZGlzcGF0Y2hWYWx1ZUZyb21JbnN0YW5jZSk6
CisgICAgICAgIChKYXZhRmllbGQ6OnZhbHVlRnJvbUluc3RhbmNlKToKKyAgICAgICAgKEphdmFG
aWVsZDo6ZGlzcGF0Y2hTZXRWYWx1ZVRvSW5zdGFuY2UpOgorICAgICAgICAoSmF2YUZpZWxkOjpz
ZXRWYWx1ZVRvSW5zdGFuY2UpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0phdmFGaWVsZEpT
Qy5oOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6SmF2YUZpZWxkOjp0eXBlQ2xhc3NOYW1lKToK
KyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkphdmFGaWVsZDo6dHlwZSk6CisgICAgICAgICogYnJp
ZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcDoKKyAgICAgICAgKEphdmFJbnN0YW5jZTo6
aW52b2tlTWV0aG9kKToKKyAgICAgICAgKiBicmlkZ2Uvam5pL3Y4L0pOSVV0aWxpdHlQcml2YXRl
LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNvbnZlcnROUFZhcmlhbnRUb0pWYWx1ZSk6
CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpjb252ZXJ0SlZhbHVlVG9OUFZhcmlhbnQpOgorICAg
ICAgICAqIGJyaWRnZS9qbmkvdjgvSk5JVXRpbGl0eVByaXZhdGUuaDoKKyAgICAgICAgKiBicmlk
Z2Uvam5pL3Y4L0phdmFGaWVsZFY4LmNwcDoKKyAgICAgICAgKEphdmFGaWVsZDo6SmF2YUZpZWxk
KToKKyAgICAgICAgKiBicmlkZ2Uvam5pL3Y4L0phdmFGaWVsZFY4Lmg6CisgICAgICAgIChKU0M6
OkJpbmRpbmdzOjpKYXZhRmllbGQ6OnR5cGVDbGFzc05hbWUpOgorICAgICAgICAoSlNDOjpCaW5k
aW5nczo6SmF2YUZpZWxkOjp0eXBlKToKKyAgICAgICAgKiBicmlkZ2Uvam5pL3Y4L0phdmFJbnN0
YW5jZVY4LmNwcDoKKyAgICAgICAgKEphdmFJbnN0YW5jZTo6aW52b2tlTWV0aG9kKToKKyAgICAg
ICAgKEphdmFJbnN0YW5jZTo6Z2V0RmllbGQpOgorICAgICAgICAqIGJyaWRnZS9qbmkvdjgvSmF2
YU5QT2JqZWN0VjguY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6SmF2YU5QT2JqZWN0SW52
b2tlKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkphdmFOUE9iamVjdEdldFByb3BlcnR5KToK
KwogMjAxMS0wMy0xMSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggMmU5ZTg3NjE4OTM0NmYyMTFiNTQ3
NTc1MWVmNjFmMWIzODQwYjNlYi4uZDQxYjhmYmQ0OGM2ZGJjYjRmMDI4OTNhMWZmMDgzYWMzZDdj
ZjIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTk0OSw2ICs5NDksNyBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvSk5JVXRpbGl0eS5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL0phdmFNZXRob2QuaCBcCiAJU291cmNlL1dlYkNvcmUv
YnJpZGdlL2puaS9KYXZhU3RyaW5nLmggXAorCVNvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvSmF2
YVR5cGUuaCBcCiAJU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qbmlfanNvYmplY3QuaCBcCiAJ
U291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUFycmF5SlNDLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFDbGFzc0pTQy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCBmMTQzZDU4ZDI5NmQ0MTFmMTI1YmJiNjVlMDRlOThlYjZkMmE4ODU2Li4wNzRmYmYwZWRjZjll
YzYyNzM4YWQzYzNhNjA4NjM1YzlkYjZhNjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMTQ1LDYg
KzExNDUsNyBAQAogICAgICAgICAgICAgJ2JyaWRnZS9qbmkvSmF2YU1ldGhvZC5jcHAnLAogICAg
ICAgICAgICAgJ2JyaWRnZS9qbmkvSmF2YU1ldGhvZC5oJywKICAgICAgICAgICAgICdicmlkZ2Uv
am5pL0phdmFTdHJpbmcuaCcsCisgICAgICAgICAgICAnYnJpZGdlL2puaS9KYXZhVHlwZS5oJywK
ICAgICAgICAgICAgICdicmlkZ2Uvam5pL0pvYmplY3RXcmFwcGVyLmNwcCcsCiAgICAgICAgICAg
ICAnYnJpZGdlL2puaS9Kb2JqZWN0V3JhcHBlci5oJywKICAgICAgICAgICAgICdicmlkZ2Uvam5p
L3Y4L0pOSVV0aWxpdHlQcml2YXRlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWY3MzliYzFlMzk4NTZiNTM0N2IxOTFi
MjlhNGI5YjNlNDhlOGZjNy4uOTJlMmU4MTFjNmFhODFhZGE0OGZmYWMzOWQ1MTU2ZDJjNmFlMzBm
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTQxMiw2ICsxNDEyLDcgQEAKIAkJNTlBOEYxRDgxMUE2OTUyMDAwMUFDMzRBIC8q
IERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1OUE4RjFENzExQTY5NTIwMDAxQUMzNEEgLyogRGV2aWNlT3JpZW50
YXRpb25DbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1OUE5RTdCMDExMDQ3NTg4MDBERkI0QzEgLyogSmF2YUluc3RhbmNlSlNDLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5QTlFN0FGMTEw
NDc1ODgwMERGQjRDMSAvKiBKYXZhSW5zdGFuY2VKU0MuY3BwICovOyB9OwogCQk1OUE5RTdCMjEx
MDQ3NTk0MDBERkI0QzEgLyogSmF2YUluc3RhbmNlSlNDLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OUE5RTdCMTExMDQ3NTk0MDBERkI0QzEgLyogSmF2
YUluc3RhbmNlSlNDLmggKi87IH07CisJCTU5QjBFRUE3MTMyQTZGMkEwMDQzMzFDNyAvKiBKYXZh
VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTlC
MEVFQTYxMzJBNkYyQTAwNDMzMUM3IC8qIEphdmFUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTlCNTk3NzMxMTA4NjU2QjAwNzE1OUU4IC8q
IEJyaWRnZUpTQy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1OUI1OTc3MjExMDg2NTZCMDA3MTU5RTggLyogQnJpZGdlSlNDLmNwcCAqLzsgfTsKIAkJ
NTlCNTk3NzUxMTA4NjU3OTAwNzE1OUU4IC8qIEJyaWRnZUpTQy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTlCNTk3NzQxMTA4NjU3OTAwNzE1OUU4IC8q
IEJyaWRnZUpTQy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTU5QkMzOTNGMTEwNTRBMTMwMEZEODVEQiAvKiBKYXZhU3RyaW5nSlNDLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OUJDMzkzRTExMDU0QTEz
MDBGRDg1REIgLyogSmF2YVN0cmluZ0pTQy5oICovOyB9OwpAQCAtNzkxMCw2ICs3OTExLDcgQEAK
IAkJNTlBOEYxRDcxMUE2OTUyMDAwMUFDMzRBIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5QTlFN0FGMTEwNDc1ODgwMERGQjRD
MSAvKiBKYXZhSW5zdGFuY2VKU0MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gSmF2YUluc3RhbmNlSlNDLmNwcDsgcGF0aCA9IGpzYy9KYXZhSW5zdGFuY2VKU0MuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OUE5RTdCMTExMDQ3NTk0MDBERkI0QzEg
LyogSmF2YUluc3RhbmNlSlNDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEph
dmFJbnN0YW5jZUpTQy5oOyBwYXRoID0ganNjL0phdmFJbnN0YW5jZUpTQy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1OUIwRUVBNjEzMkE2RjJBMDA0MzMxQzcgLyogSmF2YVR5cGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2YVR5cGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTlCNTk3NzIxMTA4NjU2QjAwNzE1OUU4IC8qIEJyaWRnZUpT
Qy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCcmlkZ2VKU0MuY3Bw
OyBwYXRoID0gYnJpZGdlL2pzYy9CcmlkZ2VKU0MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1OUI1OTc3NDExMDg2NTc5MDA3MTU5RTggLyogQnJpZGdlSlNDLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJyaWRnZUpTQy5oOyBwYXRoID0gYnJpZGdlL2pzYy9C
cmlkZ2VKU0MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTlCQzM5M0UxMTA1NEEx
MzAwRkQ4NURCIC8qIEphdmFTdHJpbmdKU0MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gSmF2YVN0cmluZ0pTQy5oOyBwYXRoID0ganNjL0phdmFTdHJpbmdKU0MuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyNzk5LDYgKzEyODAxLDcgQEAKIAkJMUE1NjlDQ0Uw
RDdFMkI4MjAwN0MzOTgzIC8qIGpuaSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCisJCQkJNTlCMEVFQTYxMzJBNkYyQTAwNDMzMUM3IC8qIEphdmFUeXBlLmggKi8s
CiAJCQkJNTkzRDNFQjAxMzI1MzI5NTAwNTdFN0VFIC8qIEphdmFTdHJpbmcuaCAqLywKIAkJCQk1
OTNEM0VBRTEzMjUzMjhDMDA1N0U3RUUgLyogSmF2YU1ldGhvZC5oICovLAogCQkJCTU5M0QzRUFD
MTMyNTMyODQwMDU3RTdFRSAvKiBKYXZhTWV0aG9kLmNwcCAqLywKQEAgLTIyNjM5LDYgKzIyNjQy
LDcgQEAKIAkJCQkzMTk0NjIwNDEzMDIyQkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9u
TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE5RTY5QjMxMzI5OUJCRDAwNEFDOTFBIC8qIFdl
YktpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE5RTY5QjYxMzI5OUJCRDAwNEFD
OTFBIC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTU5QjBFRUE3
MTMyQTZGMkEwMDQzMzFDNyAvKiBKYXZhVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMjY5OCw3
ICsyMjcwMiw2IEBACiAJCQlpc2EgPSBQQlhQcm9qZWN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9u
TGlzdCA9IDE0OUMyODQzMDg5MDJCMTEwMDhBOUVGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxp
c3QgZm9yIFBCWFByb2plY3QgIldlYkNvcmUiICovOwogCQkJY29tcGF0aWJpbGl0eVZlcnNpb24g
PSAiWGNvZGUgMi40IjsKLQkJCWRldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsKIAkJCWhhc1Nj
YW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25zID0gKAogCQkJCUVuZ2xpc2gs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL0pOSVV0aWxpdHkuY3BwIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9KTklVdGlsaXR5LmNwcAppbmRleCBmZDQ0YTBjMDFh
MGQ2OGY3N2VhZTdkYmI4ZTdmMGNiODM0NjdhNDQ5Li5jMWYxYjk0MWUwOGI3YTFlOTc5NGI5ZTZk
MDg4ZGFiMTdmYjRiNDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL0pO
SVV0aWxpdHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvSk5JVXRpbGl0eS5j
cHAKQEAgLTE2NiwxMjIgKzE2NiwxMjIgQEAgdm9pZCByZWxlYXNlVUNoYXJhY3RlcnNGb3JKU3Ry
aW5nSW5FbnYoSk5JRW52KiBlbnYsIGpzdHJpbmcgYUpTdHJpbmcsIGNvbnN0IGpjaGEKICAgICBl
bnYtPlJlbGVhc2VTdHJpbmdDaGFycyhhSlN0cmluZywgcyk7CiB9CiAKLUpOSVR5cGUgSk5JVHlw
ZUZyb21DbGFzc05hbWUoY29uc3QgY2hhciogbmFtZSkKK0phdmFUeXBlIGphdmFUeXBlRnJvbUNs
YXNzTmFtZShjb25zdCBjaGFyKiBuYW1lKQogewotICAgIEpOSVR5cGUgdHlwZTsKKyAgICBKYXZh
VHlwZSB0eXBlOwogCiAgICAgaWYgKCFzdHJjbXAoImJ5dGUiLCBuYW1lKSkKLSAgICAgICAgdHlw
ZSA9IGJ5dGVfdHlwZTsKKyAgICAgICAgdHlwZSA9IEphdmFUeXBlQnl0ZTsKICAgICBlbHNlIGlm
ICghc3RyY21wKCJzaG9ydCIsIG5hbWUpKQotICAgICAgICB0eXBlID0gc2hvcnRfdHlwZTsKKyAg
ICAgICAgdHlwZSA9IEphdmFUeXBlU2hvcnQ7CiAgICAgZWxzZSBpZiAoIXN0cmNtcCgiaW50Iiwg
bmFtZSkpCi0gICAgICAgIHR5cGUgPSBpbnRfdHlwZTsKKyAgICAgICAgdHlwZSA9IEphdmFUeXBl
SW50OwogICAgIGVsc2UgaWYgKCFzdHJjbXAoImxvbmciLCBuYW1lKSkKLSAgICAgICAgdHlwZSA9
IGxvbmdfdHlwZTsKKyAgICAgICAgdHlwZSA9IEphdmFUeXBlTG9uZzsKICAgICBlbHNlIGlmICgh
c3RyY21wKCJmbG9hdCIsIG5hbWUpKQotICAgICAgICB0eXBlID0gZmxvYXRfdHlwZTsKKyAgICAg
ICAgdHlwZSA9IEphdmFUeXBlRmxvYXQ7CiAgICAgZWxzZSBpZiAoIXN0cmNtcCgiZG91YmxlIiwg
bmFtZSkpCi0gICAgICAgIHR5cGUgPSBkb3VibGVfdHlwZTsKKyAgICAgICAgdHlwZSA9IEphdmFU
eXBlRG91YmxlOwogICAgIGVsc2UgaWYgKCFzdHJjbXAoImNoYXIiLCBuYW1lKSkKLSAgICAgICAg
dHlwZSA9IGNoYXJfdHlwZTsKKyAgICAgICAgdHlwZSA9IEphdmFUeXBlQ2hhcjsKICAgICBlbHNl
IGlmICghc3RyY21wKCJib29sZWFuIiwgbmFtZSkpCi0gICAgICAgIHR5cGUgPSBib29sZWFuX3R5
cGU7CisgICAgICAgIHR5cGUgPSBKYXZhVHlwZUJvb2xlYW47CiAgICAgZWxzZSBpZiAoIXN0cmNt
cCgidm9pZCIsIG5hbWUpKQotICAgICAgICB0eXBlID0gdm9pZF90eXBlOworICAgICAgICB0eXBl
ID0gSmF2YVR5cGVWb2lkOwogICAgIGVsc2UgaWYgKCdbJyA9PSBuYW1lWzBdKQotICAgICAgICB0
eXBlID0gYXJyYXlfdHlwZTsKKyAgICAgICAgdHlwZSA9IEphdmFUeXBlQXJyYXk7CiAgICAgZWxz
ZQotICAgICAgICB0eXBlID0gb2JqZWN0X3R5cGU7CisgICAgICAgIHR5cGUgPSBKYXZhVHlwZU9i
amVjdDsKIAogICAgIHJldHVybiB0eXBlOwogfQogCi1jb25zdCBjaGFyKiBzaWduYXR1cmVGcm9t
UHJpbWl0aXZlVHlwZShKTklUeXBlIHR5cGUpCitjb25zdCBjaGFyKiBzaWduYXR1cmVGcm9tSmF2
YVR5cGUoSmF2YVR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIHZv
aWRfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlVm9pZDoKICAgICAgICAgcmV0dXJuICJWIjsKIAot
ICAgIGNhc2UgYXJyYXlfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlQXJyYXk6CiAgICAgICAgIHJl
dHVybiAiWyI7CiAKLSAgICBjYXNlIG9iamVjdF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVPYmpl
Y3Q6CiAgICAgICAgIHJldHVybiAiTCI7CiAKLSAgICBjYXNlIGJvb2xlYW5fdHlwZToKKyAgICBj
YXNlIEphdmFUeXBlQm9vbGVhbjoKICAgICAgICAgcmV0dXJuICJaIjsKIAotICAgIGNhc2UgYnl0
ZV90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVCeXRlOgogICAgICAgICByZXR1cm4gIkIiOwogCi0g
ICAgY2FzZSBjaGFyX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUNoYXI6CiAgICAgICAgIHJldHVy
biAiQyI7CiAKLSAgICBjYXNlIHNob3J0X3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZVNob3J0Ogog
ICAgICAgICByZXR1cm4gIlMiOwogCi0gICAgY2FzZSBpbnRfdHlwZToKKyAgICBjYXNlIEphdmFU
eXBlSW50OgogICAgICAgICByZXR1cm4gIkkiOwogCi0gICAgY2FzZSBsb25nX3R5cGU6CisgICAg
Y2FzZSBKYXZhVHlwZUxvbmc6CiAgICAgICAgIHJldHVybiAiSiI7CiAKLSAgICBjYXNlIGZsb2F0
X3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUZsb2F0OgogICAgICAgICByZXR1cm4gIkYiOwogCi0g
ICAgY2FzZSBkb3VibGVfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlRG91YmxlOgogICAgICAgICBy
ZXR1cm4gIkQiOwogCi0gICAgY2FzZSBpbnZhbGlkX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUlu
dmFsaWQ6CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiAi
IjsKIH0KIAotSk5JVHlwZSBKTklUeXBlRnJvbVByaW1pdGl2ZVR5cGUoY2hhciB0eXBlKQorSmF2
YVR5cGUgamF2YVR5cGVGcm9tUHJpbWl0aXZlVHlwZShjaGFyIHR5cGUpCiB7CiAgICAgc3dpdGNo
ICh0eXBlKSB7CiAgICAgY2FzZSAnVic6Ci0gICAgICAgIHJldHVybiB2b2lkX3R5cGU7CisgICAg
ICAgIHJldHVybiBKYXZhVHlwZVZvaWQ7CiAKICAgICBjYXNlICdMJzoKLSAgICAgICAgcmV0dXJu
IG9iamVjdF90eXBlOworICAgICAgICByZXR1cm4gSmF2YVR5cGVPYmplY3Q7CiAKICAgICBjYXNl
ICdbJzoKLSAgICAgICAgcmV0dXJuIGFycmF5X3R5cGU7CisgICAgICAgIHJldHVybiBKYXZhVHlw
ZUFycmF5OwogCiAgICAgY2FzZSAnWic6Ci0gICAgICAgIHJldHVybiBib29sZWFuX3R5cGU7Cisg
ICAgICAgIHJldHVybiBKYXZhVHlwZUJvb2xlYW47CiAKICAgICBjYXNlICdCJzoKLSAgICAgICAg
cmV0dXJuIGJ5dGVfdHlwZTsKKyAgICAgICAgcmV0dXJuIEphdmFUeXBlQnl0ZTsKIAogICAgIGNh
c2UgJ0MnOgotICAgICAgICByZXR1cm4gY2hhcl90eXBlOworICAgICAgICByZXR1cm4gSmF2YVR5
cGVDaGFyOwogCiAgICAgY2FzZSAnUyc6Ci0gICAgICAgIHJldHVybiBzaG9ydF90eXBlOworICAg
ICAgICByZXR1cm4gSmF2YVR5cGVTaG9ydDsKIAogICAgIGNhc2UgJ0knOgotICAgICAgICByZXR1
cm4gaW50X3R5cGU7CisgICAgICAgIHJldHVybiBKYXZhVHlwZUludDsKIAogICAgIGNhc2UgJ0on
OgotICAgICAgICByZXR1cm4gbG9uZ190eXBlOworICAgICAgICByZXR1cm4gSmF2YVR5cGVMb25n
OwogCiAgICAgY2FzZSAnRic6Ci0gICAgICAgIHJldHVybiBmbG9hdF90eXBlOworICAgICAgICBy
ZXR1cm4gSmF2YVR5cGVGbG9hdDsKIAogICAgIGNhc2UgJ0QnOgotICAgICAgICByZXR1cm4gZG91
YmxlX3R5cGU7CisgICAgICAgIHJldHVybiBKYXZhVHlwZURvdWJsZTsKIAogICAgIGRlZmF1bHQ6
CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICByZXR1cm4gaW52YWxpZF90eXBlOworICAgIHJl
dHVybiBKYXZhVHlwZUludmFsaWQ7CiB9CiAKLWp2YWx1ZSBnZXRKTklGaWVsZChqb2JqZWN0IG9i
aiwgSk5JVHlwZSB0eXBlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBzaWduYXR1cmUp
CitqdmFsdWUgZ2V0Sk5JRmllbGQoam9iamVjdCBvYmosIEphdmFUeXBlIHR5cGUsIGNvbnN0IGNo
YXIqIG5hbWUsIGNvbnN0IGNoYXIqIHNpZ25hdHVyZSkKIHsKICAgICBKYXZhVk0qIGp2bSA9IGdl
dEphdmFWTSgpOwogICAgIEpOSUVudiogZW52ID0gZ2V0Sk5JRW52KCk7CkBAIC0yOTQsMzIgKzI5
NCwzMiBAQCBqdmFsdWUgZ2V0Sk5JRmllbGQoam9iamVjdCBvYmosIEpOSVR5cGUgdHlwZSwgY29u
c3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogc2lnbgogICAgICAgICAgICAgamZpZWxkSUQgZmll
bGQgPSBlbnYtPkdldEZpZWxkSUQoY2xzLCBuYW1lLCBzaWduYXR1cmUpOwogICAgICAgICAgICAg
aWYgKGZpZWxkKSB7CiAgICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgICAg
ICAgICAgY2FzZSBhcnJheV90eXBlOgotICAgICAgICAgICAgICAgIGNhc2Ugb2JqZWN0X3R5cGU6
CisgICAgICAgICAgICAgICAgY2FzZSBKYXZhVHlwZUFycmF5OgorICAgICAgICAgICAgICAgIGNh
c2UgSmF2YVR5cGVPYmplY3Q6CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5sID0gZW52LT5m
dW5jdGlvbnMtPkdldE9iamVjdEZpZWxkKGVudiwgb2JqLCBmaWVsZCk7CiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgYm9vbGVhbl90eXBlOgorICAgICAg
ICAgICAgICAgIGNhc2UgSmF2YVR5cGVCb29sZWFuOgogICAgICAgICAgICAgICAgICAgICByZXN1
bHQueiA9IGVudi0+ZnVuY3Rpb25zLT5HZXRCb29sZWFuRmllbGQoZW52LCBvYmosIGZpZWxkKTsK
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBieXRlX3R5
cGU6CisgICAgICAgICAgICAgICAgY2FzZSBKYXZhVHlwZUJ5dGU6CiAgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdC5iID0gZW52LT5mdW5jdGlvbnMtPkdldEJ5dGVGaWVsZChlbnYsIG9iaiwgZmll
bGQpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIGNo
YXJfdHlwZToKKyAgICAgICAgICAgICAgICBjYXNlIEphdmFUeXBlQ2hhcjoKICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0LmMgPSBlbnYtPmZ1bmN0aW9ucy0+R2V0Q2hhckZpZWxkKGVudiwgb2Jq
LCBmaWVsZCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNh
c2Ugc2hvcnRfdHlwZToKKyAgICAgICAgICAgICAgICBjYXNlIEphdmFUeXBlU2hvcnQ6CiAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdC5zID0gZW52LT5mdW5jdGlvbnMtPkdldFNob3J0RmllbGQo
ZW52LCBvYmosIGZpZWxkKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAgICAgY2FzZSBpbnRfdHlwZToKKyAgICAgICAgICAgICAgICBjYXNlIEphdmFUeXBlSW50Ogog
ICAgICAgICAgICAgICAgICAgICByZXN1bHQuaSA9IGVudi0+ZnVuY3Rpb25zLT5HZXRJbnRGaWVs
ZChlbnYsIG9iaiwgZmllbGQpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICBjYXNlIGxvbmdfdHlwZToKKyAgICAgICAgICAgICAgICBjYXNlIEphdmFUeXBlTG9u
ZzoKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmogPSBlbnYtPmZ1bmN0aW9ucy0+R2V0TG9u
Z0ZpZWxkKGVudiwgb2JqLCBmaWVsZCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgIGNhc2UgZmxvYXRfdHlwZToKKyAgICAgICAgICAgICAgICBjYXNlIEphdmFU
eXBlRmxvYXQ6CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5mID0gZW52LT5mdW5jdGlvbnMt
PkdldEZsb2F0RmllbGQoZW52LCBvYmosIGZpZWxkKTsKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBkb3VibGVfdHlwZToKKyAgICAgICAgICAgICAgICBj
YXNlIEphdmFUeXBlRG91YmxlOgogICAgICAgICAgICAgICAgICAgICByZXN1bHQuZCA9IGVudi0+
ZnVuY3Rpb25zLT5HZXREb3VibGVGaWVsZChlbnYsIG9iaiwgZmllbGQpOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBkZWZhdWx0OgpAQCAtMzQwLDM5ICszNDAs
MzkgQEAganZhbHVlIGdldEpOSUZpZWxkKGpvYmplY3Qgb2JqLCBKTklUeXBlIHR5cGUsIGNvbnN0
IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHNpZ24KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1q
dmFsdWUgY2FsbEpOSU1ldGhvZChqb2JqZWN0IG9iamVjdCwgSk5JVHlwZSByZXR1cm5UeXBlLCBj
b25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBzaWduYXR1cmUsIGp2YWx1ZSogYXJncykKK2p2
YWx1ZSBjYWxsSk5JTWV0aG9kKGpvYmplY3Qgb2JqZWN0LCBKYXZhVHlwZSByZXR1cm5UeXBlLCBj
b25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBzaWduYXR1cmUsIGp2YWx1ZSogYXJncykKIHsK
ICAgICBqbWV0aG9kSUQgbWV0aG9kSWQgPSBnZXRNZXRob2RJRChvYmplY3QsIG5hbWUsIHNpZ25h
dHVyZSk7CiAgICAganZhbHVlIHJlc3VsdDsKICAgICBzd2l0Y2ggKHJldHVyblR5cGUpIHsKLSAg
ICBjYXNlIHZvaWRfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlVm9pZDoKICAgICAgICAgY2FsbEpO
SU1ldGhvZElEQTx2b2lkPihvYmplY3QsIG1ldGhvZElkLCBhcmdzKTsKICAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBvYmplY3RfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlT2JqZWN0OgogICAgICAg
ICByZXN1bHQubCA9IGNhbGxKTklNZXRob2RJREE8am9iamVjdD4ob2JqZWN0LCBtZXRob2RJZCwg
YXJncyk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgYm9vbGVhbl90eXBlOgorICAgIGNhc2Ug
SmF2YVR5cGVCb29sZWFuOgogICAgICAgICByZXN1bHQueiA9IGNhbGxKTklNZXRob2RJREE8amJv
b2xlYW4+KG9iamVjdCwgbWV0aG9kSWQsIGFyZ3MpOwogICAgICAgICBicmVhazsKLSAgICBjYXNl
IGJ5dGVfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlQnl0ZToKICAgICAgICAgcmVzdWx0LmIgPSBj
YWxsSk5JTWV0aG9kSURBPGpieXRlPihvYmplY3QsIG1ldGhvZElkLCBhcmdzKTsKICAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBjaGFyX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUNoYXI6CiAgICAg
ICAgIHJlc3VsdC5jID0gY2FsbEpOSU1ldGhvZElEQTxqY2hhcj4ob2JqZWN0LCBtZXRob2RJZCwg
YXJncyk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ugc2hvcnRfdHlwZToKKyAgICBjYXNlIEph
dmFUeXBlU2hvcnQ6CiAgICAgICAgIHJlc3VsdC5zID0gY2FsbEpOSU1ldGhvZElEQTxqc2hvcnQ+
KG9iamVjdCwgbWV0aG9kSWQsIGFyZ3MpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIGludF90
eXBlOgorICAgIGNhc2UgSmF2YVR5cGVJbnQ6CiAgICAgICAgIHJlc3VsdC5pID0gY2FsbEpOSU1l
dGhvZElEQTxqaW50PihvYmplY3QsIG1ldGhvZElkLCBhcmdzKTsKICAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBsb25nX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUxvbmc6CiAgICAgICAgIHJlc3Vs
dC5qID0gY2FsbEpOSU1ldGhvZElEQTxqbG9uZz4ob2JqZWN0LCBtZXRob2RJZCwgYXJncyk7CiAg
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgZmxvYXRfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlRmxv
YXQ6CiAgICAgICAgIHJlc3VsdC5mID0gY2FsbEpOSU1ldGhvZElEQTxqZmxvYXQ+KG9iamVjdCwg
bWV0aG9kSWQsIGFyZ3MpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIGRvdWJsZV90eXBlOgor
ICAgIGNhc2UgSmF2YVR5cGVEb3VibGU6CiAgICAgICAgIHJlc3VsdC5kID0gY2FsbEpOSU1ldGhv
ZElEQTxqZG91YmxlPihvYmplY3QsIG1ldGhvZElkLCBhcmdzKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvSk5JVXRp
bGl0eS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9KTklVdGlsaXR5LmgKaW5kZXggNzJi
NDBkZjFhODk0MDA3OWI5MTMwNTBmNDMxMTgwNmEzNTQ5MjczMy4uNTA4YTJlNTI0ZDZkOTA3MmE3
ZGEwNzZiZjQxYmFlOWU0MDdlN2NmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L2puaS9KTklVdGlsaXR5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9KTklVdGls
aXR5LmgKQEAgLTI4LDM2ICsyOCwxNCBAQAogCiAjaWYgRU5BQkxFKEpBVkFfQlJJREdFKQogCisj
aW5jbHVkZSAiSmF2YVR5cGUuaCIKKwogI2lmIE9TKE1BQ19PU19YKQogI2luY2x1ZGUgPEphdmFW
TS9qbmkuaD4KICNlbHNlCiAjaW5jbHVkZSA8am5pLmg+CiAjZW5kaWYKIAotLy8gVGhlIG9yZGVy
IG9mIHRoZXNlIGl0ZW1zIGNhbiBub3QgYmUgbW9kaWZpZWQgYXMgdGhleSBhcmUgdGlnaHRseQot
Ly8gYm91bmQgd2l0aCB0aGUgSlZNIG9uIE1hYyBPU1guIElmIG5ldyB0eXBlcyBuZWVkIHRvIGJl
IGFkZGVkLCB0aGV5Ci0vLyBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGVuZC4gSXQgaXMgdXNlZCBp
biBqbmlfb2JjLm1tIHdoZW4gY2FsbGluZwotLy8gdGhyb3VnaCB0byB0aGUgSlZNLiBOZXdseSBh
ZGRlZCBpdGVtcyBuZWVkIHRvIGJlIG1hZGUgY29tcGF0aWJsZQotLy8gaW4gdGhhdCBmaWxlLgot
Ly8KLS8vIFRPRE86IFN0cmljdGx5LCB0aGVzZSBhcmUgbm90IEpOSSB0eXBlcyBidXQgc2ltcGx5
IEphdmEgdHlwZXMuIFRoZSB0eXBlCi0vLyBjb252ZXJzaW9uIGxvZ2ljIHVzZWQgaGVyZSBuZWVk
cyBpbXByb3ZpbmcgYW5kIHRoaXMgZW51bSB3aWxsIGxpa2VseSBiZQotLy8gY2hhbmdlZCBhdCB0
aGF0IHRpbWUuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg3
NDUKLXR5cGVkZWYgZW51bSB7Ci0gICAgaW52YWxpZF90eXBlID0gMCwKLSAgICB2b2lkX3R5cGUs
Ci0gICAgb2JqZWN0X3R5cGUsCi0gICAgYm9vbGVhbl90eXBlLAotICAgIGJ5dGVfdHlwZSwKLSAg
ICBjaGFyX3R5cGUsCi0gICAgc2hvcnRfdHlwZSwKLSAgICBpbnRfdHlwZSwKLSAgICBsb25nX3R5
cGUsCi0gICAgZmxvYXRfdHlwZSwKLSAgICBkb3VibGVfdHlwZSwKLSAgICBhcnJheV90eXBlCi19
IEpOSVR5cGU7Ci0KIG5hbWVzcGFjZSBKU0MgewogCiBuYW1lc3BhY2UgQmluZGluZ3MgewpAQCAt
NzAsMTIgKzQ4LDEyIEBAIHZvaWQgcmVsZWFzZUNoYXJhY3RlcnNGb3JKU3RyaW5nSW5FbnYoSk5J
RW52KiwganN0cmluZywgY29uc3QgY2hhciopOwogY29uc3QgamNoYXIqIGdldFVDaGFyYWN0ZXJz
RnJvbUpTdHJpbmdJbkVudihKTklFbnYqLCBqc3RyaW5nKTsKIHZvaWQgcmVsZWFzZVVDaGFyYWN0
ZXJzRm9ySlN0cmluZ0luRW52KEpOSUVudiosIGpzdHJpbmcsIGNvbnN0IGpjaGFyKik7CiAKLUpO
SVR5cGUgSk5JVHlwZUZyb21DbGFzc05hbWUoY29uc3QgY2hhciogbmFtZSk7Ci1KTklUeXBlIEpO
SVR5cGVGcm9tUHJpbWl0aXZlVHlwZShjaGFyIHR5cGUpOwotY29uc3QgY2hhciogc2lnbmF0dXJl
RnJvbVByaW1pdGl2ZVR5cGUoSk5JVHlwZSk7CitKYXZhVHlwZSBqYXZhVHlwZUZyb21DbGFzc05h
bWUoY29uc3QgY2hhciogbmFtZSk7CitKYXZhVHlwZSBqYXZhVHlwZUZyb21QcmltaXRpdmVUeXBl
KGNoYXIgdHlwZSk7Citjb25zdCBjaGFyKiBzaWduYXR1cmVGcm9tSmF2YVR5cGUoSmF2YVR5cGUp
OwogCi1qdmFsdWUgZ2V0Sk5JRmllbGQoam9iamVjdCwgSk5JVHlwZSwgY29uc3QgY2hhciogbmFt
ZSwgY29uc3QgY2hhciogc2lnbmF0dXJlKTsKLWp2YWx1ZSBjYWxsSk5JTWV0aG9kKGpvYmplY3Qs
IEpOSVR5cGUgcmV0dXJuVHlwZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogc2lnbmF0
dXJlLCBqdmFsdWUqIGFyZ3MpOworanZhbHVlIGdldEpOSUZpZWxkKGpvYmplY3QsIEphdmFUeXBl
LCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBzaWduYXR1cmUpOworanZhbHVlIGNhbGxK
TklNZXRob2Qoam9iamVjdCwgSmF2YVR5cGUgcmV0dXJuVHlwZSwgY29uc3QgY2hhciogbmFtZSwg
Y29uc3QgY2hhciogc2lnbmF0dXJlLCBqdmFsdWUqIGFyZ3MpOwogCiBqbWV0aG9kSUQgZ2V0TWV0
aG9kSUQoam9iamVjdCwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogc2lnKTsKIEpOSUVu
diogZ2V0Sk5JRW52KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL0ph
dmFNZXRob2QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9KYXZhTWV0aG9kLmNwcApp
bmRleCA1NWYyOWRmYTRhNTVjMTNmZDg1ZDkzOTZkMWNlMGUyODg1YzRmMzgxLi5mMTUwYTMxYjYx
OGRlZjYzZjEwMGQ3OTIyMGI1MTdiZGEyMDU1MTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvam5pL0phdmFNZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9q
bmkvSmF2YU1ldGhvZC5jcHAKQEAgLTQ3LDggKzQ3LDggQEAgSmF2YU1ldGhvZDo6SmF2YU1ldGhv
ZChKTklFbnYqIGVudiwgam9iamVjdCBhTWV0aG9kKQogICAgICAgICAgICAgcmV0dXJuVHlwZU5h
bWUgPSBlbnYtPk5ld1N0cmluZ1VURigiPFVua25vd24+Iik7CiAgICAgICAgIGVudi0+RGVsZXRl
TG9jYWxSZWYocmV0dXJuVHlwZSk7CiAgICAgfQotICAgIG1fcmV0dXJuVHlwZSA9IEphdmFTdHJp
bmcoZW52LCByZXR1cm5UeXBlTmFtZSk7Ci0gICAgbV9KTklSZXR1cm5UeXBlID0gSk5JVHlwZUZy
b21DbGFzc05hbWUobV9yZXR1cm5UeXBlLnV0ZjgoKSk7CisgICAgbV9yZXR1cm5UeXBlQ2xhc3NO
YW1lID0gSmF2YVN0cmluZyhlbnYsIHJldHVyblR5cGVOYW1lKTsKKyAgICBtX3JldHVyblR5cGUg
PSBqYXZhVHlwZUZyb21DbGFzc05hbWUobV9yZXR1cm5UeXBlQ2xhc3NOYW1lLnV0ZjgoKSk7CiAg
ICAgZW52LT5EZWxldGVMb2NhbFJlZihyZXR1cm5UeXBlTmFtZSk7CiAKICAgICAvLyBHZXQgbWV0
aG9kIG5hbWUKQEAgLTEyMywxMiArMTIzLDEyIEBAIGNvbnN0IGNoYXIqIEphdmFNZXRob2Q6OnNp
Z25hdHVyZSgpIGNvbnN0CiAgICAgICAgIHNpZ25hdHVyZUJ1aWxkZXIuYXBwZW5kKCcoJyk7CiAg
ICAgICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgbV9wYXJhbWV0ZXJzLnNpemUoKTsg
aSsrKSB7CiAgICAgICAgICAgICBDU3RyaW5nIGphdmFDbGFzc05hbWUgPSBwYXJhbWV0ZXJBdChp
KS51dGY4KCk7Ci0gICAgICAgICAgICBKTklUeXBlIHR5cGUgPSBKTklUeXBlRnJvbUNsYXNzTmFt
ZShqYXZhQ2xhc3NOYW1lLmRhdGEoKSk7Ci0gICAgICAgICAgICBpZiAodHlwZSA9PSBhcnJheV90
eXBlKQorICAgICAgICAgICAgSmF2YVR5cGUgdHlwZSA9IGphdmFUeXBlRnJvbUNsYXNzTmFtZShq
YXZhQ2xhc3NOYW1lLmRhdGEoKSk7CisgICAgICAgICAgICBpZiAodHlwZSA9PSBKYXZhVHlwZUFy
cmF5KQogICAgICAgICAgICAgICAgIGFwcGVuZENsYXNzTmFtZShzaWduYXR1cmVCdWlsZGVyLCBq
YXZhQ2xhc3NOYW1lLmRhdGEoKSk7CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAg
ICBzaWduYXR1cmVCdWlsZGVyLmFwcGVuZChzaWduYXR1cmVGcm9tUHJpbWl0aXZlVHlwZSh0eXBl
KSk7Ci0gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gb2JqZWN0X3R5cGUpIHsKKyAgICAgICAg
ICAgICAgICBzaWduYXR1cmVCdWlsZGVyLmFwcGVuZChzaWduYXR1cmVGcm9tSmF2YVR5cGUodHlw
ZSkpOworICAgICAgICAgICAgICAgIGlmICh0eXBlID09IEphdmFUeXBlT2JqZWN0KSB7CiAgICAg
ICAgICAgICAgICAgICAgIGFwcGVuZENsYXNzTmFtZShzaWduYXR1cmVCdWlsZGVyLCBqYXZhQ2xh
c3NOYW1lLmRhdGEoKSk7CiAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZUJ1aWxkZXIuYXBw
ZW5kKCc7Jyk7CiAgICAgICAgICAgICAgICAgfQpAQCAtMTM2LDEyICsxMzYsMTIgQEAgY29uc3Qg
Y2hhciogSmF2YU1ldGhvZDo6c2lnbmF0dXJlKCkgY29uc3QKICAgICAgICAgfQogICAgICAgICBz
aWduYXR1cmVCdWlsZGVyLmFwcGVuZCgnKScpOwogCi0gICAgICAgIGNvbnN0IGNoYXIqIHJldHVy
blR5cGUgPSBtX3JldHVyblR5cGUudXRmOCgpOwotICAgICAgICBpZiAobV9KTklSZXR1cm5UeXBl
ID09IGFycmF5X3R5cGUpCisgICAgICAgIGNvbnN0IGNoYXIqIHJldHVyblR5cGUgPSBtX3JldHVy
blR5cGVDbGFzc05hbWUudXRmOCgpOworICAgICAgICBpZiAobV9yZXR1cm5UeXBlID09IEphdmFU
eXBlQXJyYXkpCiAgICAgICAgICAgICBhcHBlbmRDbGFzc05hbWUoc2lnbmF0dXJlQnVpbGRlciwg
cmV0dXJuVHlwZSk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgc2lnbmF0dXJlQnVpbGRl
ci5hcHBlbmQoc2lnbmF0dXJlRnJvbVByaW1pdGl2ZVR5cGUobV9KTklSZXR1cm5UeXBlKSk7Ci0g
ICAgICAgICAgICBpZiAobV9KTklSZXR1cm5UeXBlID09IG9iamVjdF90eXBlKSB7CisgICAgICAg
ICAgICBzaWduYXR1cmVCdWlsZGVyLmFwcGVuZChzaWduYXR1cmVGcm9tSmF2YVR5cGUobV9yZXR1
cm5UeXBlKSk7CisgICAgICAgICAgICBpZiAobV9yZXR1cm5UeXBlID09IEphdmFUeXBlT2JqZWN0
KSB7CiAgICAgICAgICAgICAgICAgYXBwZW5kQ2xhc3NOYW1lKHNpZ25hdHVyZUJ1aWxkZXIsIHJl
dHVyblR5cGUpOwogICAgICAgICAgICAgICAgIHNpZ25hdHVyZUJ1aWxkZXIuYXBwZW5kKCc7Jyk7
CiAgICAgICAgICAgICB9CkBAIC0xNTQsMTEgKzE1NCw2IEBAIGNvbnN0IGNoYXIqIEphdmFNZXRo
b2Q6OnNpZ25hdHVyZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2lnbmF0dXJlOwogfQogCi1KTklU
eXBlIEphdmFNZXRob2Q6OkpOSVJldHVyblR5cGUoKSBjb25zdAotewotICAgIHJldHVybiBtX0pO
SVJldHVyblR5cGU7Ci19Ci0KIGptZXRob2RJRCBKYXZhTWV0aG9kOjptZXRob2RJRChqb2JqZWN0
IG9iaikgY29uc3QKIHsKICAgICBpZiAoIW1fbWV0aG9kSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2Uvam5pL0phdmFNZXRob2QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9q
bmkvSmF2YU1ldGhvZC5oCmluZGV4IDM5ZDA0Yzk5MzQ0YmFiODdiNjEyMmVkMWFmNGNiMDIyOWE1
NGM2MTQuLmEyN2Y0N2M5M2FkMWIyOTlmMGMxZDQxZDAwOTU3OTc1ZjBhNTI3ZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvSmF2YU1ldGhvZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9qbmkvSmF2YU1ldGhvZC5oCkBAIC0zMCw5ICszMCw4IEBACiAjaWYgRU5B
QkxFKEpBVkFfQlJJREdFKQogCiAjaW5jbHVkZSAiQnJpZGdlLmgiCi0jaW5jbHVkZSAiSk5JVXRp
bGl0eS5oIgotCiAjaW5jbHVkZSAiSmF2YVN0cmluZy5oIgorI2luY2x1ZGUgIkphdmFUeXBlLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC00NiwxMiArNDUsMTIgQEAgcHVibGljOgogICAgIH5K
YXZhTWV0aG9kKCk7CiAKICAgICBjb25zdCBKYXZhU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9uYW1lOyB9Ci0gICAgUnVudGltZVR5cGUgcmV0dXJuVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmV0dXJuVHlwZS51dGY4KCk7IH0KKyAgICBSdW50aW1lVHlwZSByZXR1cm5UeXBlQ2xhc3NO
YW1lKCkgY29uc3QgeyByZXR1cm4gbV9yZXR1cm5UeXBlQ2xhc3NOYW1lLnV0ZjgoKTsgfQogICAg
IGNvbnN0IFdURjo6U3RyaW5nJiBwYXJhbWV0ZXJBdChpbnQgaSkgY29uc3QgeyByZXR1cm4gbV9w
YXJhbWV0ZXJzW2ldOyB9CiAgICAgaW50IG51bVBhcmFtZXRlcnMoKSBjb25zdCB7IHJldHVybiBt
X3BhcmFtZXRlcnMuc2l6ZSgpOyB9CiAKICAgICBjb25zdCBjaGFyKiBzaWduYXR1cmUoKSBjb25z
dDsKLSAgICBKTklUeXBlIEpOSVJldHVyblR5cGUoKSBjb25zdDsKKyAgICBKYXZhVHlwZSByZXR1
cm5UeXBlKCkgY29uc3QgeyByZXR1cm4gbV9yZXR1cm5UeXBlOyB9CiAKICAgICBqbWV0aG9kSUQg
bWV0aG9kSUQoam9iamVjdCBvYmopIGNvbnN0OwogCkBAIC02MSw4ICs2MCw4IEBAIHByaXZhdGU6
CiAgICAgVmVjdG9yPFdURjo6U3RyaW5nPiBtX3BhcmFtZXRlcnM7CiAgICAgSmF2YVN0cmluZyBt
X25hbWU7CiAgICAgbXV0YWJsZSBjaGFyKiBtX3NpZ25hdHVyZTsKLSAgICBKYXZhU3RyaW5nIG1f
cmV0dXJuVHlwZTsKLSAgICBKTklUeXBlIG1fSk5JUmV0dXJuVHlwZTsKKyAgICBKYXZhU3RyaW5n
IG1fcmV0dXJuVHlwZUNsYXNzTmFtZTsKKyAgICBKYXZhVHlwZSBtX3JldHVyblR5cGU7CiAgICAg
bXV0YWJsZSBqbWV0aG9kSUQgbV9tZXRob2RJRDsKICAgICBib29sIG1faXNTdGF0aWM7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9KYXZhVHlwZS5oIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL2puaS9KYXZhVHlwZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjOWFiZTEyNzU5NGQ4
NTk5N2ZhMTcwMmY0ZGI0YTFmZGNlZTQ0NTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvam5pL0phdmFUeXBlLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKYXZhVHlwZV9oCisjZGVmaW5lIEph
dmFUeXBlX2gKKworI2lmIEVOQUJMRShKQVZBX0JSSURHRSkKKworbmFtZXNwYWNlIEpTQyB7CisK
K25hbWVzcGFjZSBCaW5kaW5ncyB7CisKKy8vIFRoZSBvcmRlciBvZiB0aGVzZSBpdGVtcyBjYW4g
bm90IGJlIG1vZGlmaWVkIGFzIHRoZXkgYXJlIHRpZ2h0bHkKKy8vIGJvdW5kIHdpdGggdGhlIEpW
TSBvbiBNYWMgT1NYLiBJZiBuZXcgdHlwZXMgbmVlZCB0byBiZSBhZGRlZCwgdGhleQorLy8gc2hv
dWxkIGJlIGFkZGVkIHRvIHRoZSBlbmQuIEl0IGlzIHVzZWQgaW4gam5pX29iYy5tbSB3aGVuIGNh
bGxpbmcKKy8vIHRocm91Z2ggdG8gdGhlIEpWTS4gTmV3bHkgYWRkZWQgaXRlbXMgbmVlZCB0byBi
ZSBtYWRlIGNvbXBhdGlibGUKKy8vIGluIHRoYXQgZmlsZS4KKy8vCisvLyBUaGUgdHlwZSBjb252
ZXJzaW9uIGxvZ2ljIHVzZWQgaGVyZSBuZWVkcyBpbXByb3ZpbmcgYW5kIHRoaXMgZW51bSB3aWxs
IGxpa2VseQorLy8gYmUgY2hhbmdlZCBhdCB0aGF0IHRpbWUuIFNlZSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg3NDUKK2VudW0gSmF2YVR5cGUgeworICAgIEphdmFU
eXBlSW52YWxpZCA9IDAsCisgICAgSmF2YVR5cGVWb2lkLAorICAgIEphdmFUeXBlT2JqZWN0LAor
ICAgIEphdmFUeXBlQm9vbGVhbiwKKyAgICBKYXZhVHlwZUJ5dGUsCisgICAgSmF2YVR5cGVDaGFy
LAorICAgIEphdmFUeXBlU2hvcnQsCisgICAgSmF2YVR5cGVJbnQsCisgICAgSmF2YVR5cGVMb25n
LAorICAgIEphdmFUeXBlRmxvYXQsCisgICAgSmF2YVR5cGVEb3VibGUsCisgICAgSmF2YVR5cGVB
cnJheQorfTsKKworfSAvLyBuYW1lc3BhY2UgQmluZGluZ3MKKworfSAvLyBuYW1lc3BhY2UgSlND
CisKKyNlbmRpZiAvLyBFTkFCTEUoSkFWQV9CUklER0UpCisKKyNlbmRpZiAvLyBKYXZhVHlwZV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbSBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvam5pX2pzb2JqZWN0Lm1tCmluZGV4IDE3MjU1OWVi
YTdmM2VkNmNkZjk2M2MxNGMwZmZiMDg4OTk5MWRkOTQuLjAzYjhmYzJiNWM0ZjdjNTMwNmYwOTg0
MDcxZGUxYTQxZDBiYTcxOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkv
am5pX2pzb2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvam5pX2pzb2Jq
ZWN0Lm1tCkBAIC00MTksNyArNDE5LDcgQEAganN0cmluZyBKYXZhSlNPYmplY3Q6OnRvU3RyaW5n
KCkgY29uc3QKICAgICBKU09iamVjdCAqdGhpc09iaiA9IGNvbnN0X2Nhc3Q8SlNPYmplY3QqPihf
aW1wKTsKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSByb290T2JqZWN0LT5nbG9iYWxPYmplY3QoKS0+
Z2xvYmFsRXhlYygpOwogICAgIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxqc3RyaW5nPihjb252
ZXJ0VmFsdWVUb0pWYWx1ZShleGVjLCByb290T2JqZWN0LCB0aGlzT2JqLCBvYmplY3RfdHlwZSwg
ImphdmEubGFuZy5TdHJpbmciKS5sKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8anN0cmluZz4o
Y29udmVydFZhbHVlVG9KVmFsdWUoZXhlYywgcm9vdE9iamVjdCwgdGhpc09iaiwgSmF2YVR5cGVP
YmplY3QsICJqYXZhLmxhbmcuU3RyaW5nIikubCk7CiB9CiAKIHZvaWQgSmF2YUpTT2JqZWN0Ojpm
aW5hbGl6ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pu
aV9vYmpjLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qbmlfb2JqYy5tbQppbmRleCA4
ZmEyYzNmMDkwYzNmMzE3OWFkNDJiNjc2MjVhYzQ4ZTE5OWQxYjkxLi45Yzk0M2U4Mjg1MTlhOTZj
MmNhY2ExYjlhOTU3NWJjYTYyOGUzODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvam5pL2puaV9vYmpjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvam5pX29i
amMubW0KQEAgLTI4LDMxICsyOCwzMSBAQAogI2lmIEVOQUJMRShKQVZBX0JSSURHRSkKIAogI2lt
cG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Ci0jaW1wb3J0ICJKTklVdGlsaXR5LmgiCiAj
aW1wb3J0ICJKTklVdGlsaXR5UHJpdmF0ZS5oIgorI2ltcG9ydCAiSmF2YVR5cGUuaCIKICNpbXBv
cnQgIm9iamNfdXRpbGl0eS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBKU0M6OkJpbmRpbmdzOwogCiBAaW50ZXJmYWNlIE5TT2JqZWN0IChXZWJTY3Jp
cHRpbmdQcml2YXRlKQotLSAoanZhbHVlKXdlYlBsdWdJbkNhbGxKYXZhOihqb2JqZWN0KW9iamVj
dCBtZXRob2Q6KGptZXRob2RJRCltZXRob2QgcmV0dXJuVHlwZTooSk5JVHlwZSlyZXR1cm5UeXBl
IGFyZ3VtZW50czooanZhbHVlKilhcmdzOworLSAoanZhbHVlKXdlYlBsdWdJbkNhbGxKYXZhOihq
b2JqZWN0KW9iamVjdCBtZXRob2Q6KGptZXRob2RJRCltZXRob2QgcmV0dXJuVHlwZTooSmF2YVR5
cGUpcmV0dXJuVHlwZSBhcmd1bWVudHM6KGp2YWx1ZSopYXJnczsKIC0gKGp2YWx1ZSl3ZWJQbHVn
SW5DYWxsSmF2YTooam9iamVjdClvYmplY3QKICAgICAgICAgICAgICAgICAgICBpc1N0YXRpYzoo
Qk9PTClpc1N0YXRpYwotICAgICAgICAgICAgICAgICByZXR1cm5UeXBlOihKTklUeXBlKXJldHVy
blR5cGUKKyAgICAgICAgICAgICAgICAgcmV0dXJuVHlwZTooSmF2YVR5cGUpcmV0dXJuVHlwZQog
ICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOihqbWV0aG9kSUQpbWV0aG9kCiAgICAgICAgICAg
ICAgICAgICBhcmd1bWVudHM6KGp2YWx1ZSopYXJncwogICAgICAgICAgICAgICAgICBjYWxsaW5n
VVJMOihOU1VSTCAqKXVybAogICAgICAgIGV4Y2VwdGlvbkRlc2NyaXB0aW9uOihOU1N0cmluZyAq
KilleGNlcHRpb25TdHJpbmc7CiBAZW5kCiAKLWJvb2wgSlNDOjpCaW5kaW5nczo6ZGlzcGF0Y2hK
TklDYWxsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qgdm9pZCogdGFyZ2V0QXBwbGV0Vmlldywgam9i
amVjdCBvYmosIGJvb2wgaXNTdGF0aWMsIEpOSVR5cGUgcmV0dXJuVHlwZSwgam1ldGhvZElEIG1l
dGhvZElELCBqdmFsdWUqIGFyZ3MsIGp2YWx1ZSAmcmVzdWx0LCBjb25zdCBjaGFyKiwgSlNWYWx1
ZSYgZXhjZXB0aW9uRGVzY3JpcHRpb24pCitib29sIEpTQzo6QmluZGluZ3M6OmRpc3BhdGNoSk5J
Q2FsbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IHZvaWQqIHRhcmdldEFwcGxldFZpZXcsIGpvYmpl
Y3Qgb2JqLCBib29sIGlzU3RhdGljLCBKYXZhVHlwZSByZXR1cm5UeXBlLCBqbWV0aG9kSUQgbWV0
aG9kSUQsIGp2YWx1ZSogYXJncywganZhbHVlICZyZXN1bHQsIGNvbnN0IGNoYXIqLCBKU1ZhbHVl
JiBleGNlcHRpb25EZXNjcmlwdGlvbikKIHsKICAgICBpZCB2aWV3ID0gKGlkKXRhcmdldEFwcGxl
dFZpZXc7CiAgICAgCi0gICAgLy8gQXMgYXJyYXlfdHlwZSBpcyBub3Qga25vd24gYnkgdGhlIE1h
YyBKVk0sIGNoYW5nZSBpdCB0byBhIGNvbXBhdGlibGUgdHlwZS4KLSAgICBpZiAocmV0dXJuVHlw
ZSA9PSBhcnJheV90eXBlKQotICAgICAgICByZXR1cm5UeXBlID0gb2JqZWN0X3R5cGU7CisgICAg
Ly8gQXMgSmF2YVR5cGVBcnJheSBpcyBub3Qga25vd24gYnkgdGhlIE1hYyBKVk0sIGNoYW5nZSBp
dCB0byBhIGNvbXBhdGlibGUgdHlwZS4KKyAgICBpZiAocmV0dXJuVHlwZSA9PSBKYXZhVHlwZUFy
cmF5KQorICAgICAgICByZXR1cm5UeXBlID0gSmF2YVR5cGVPYmplY3Q7CiAgICAgCiAgICAgaWYg
KFt2aWV3IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViUGx1Z0luQ2FsbEphdmE6aXNT
dGF0aWM6cmV0dXJuVHlwZTptZXRob2Q6YXJndW1lbnRzOmNhbGxpbmdVUkw6ZXhjZXB0aW9uRGVz
Y3JpcHRpb246KV0pIHsKICAgICAgICAgTlNTdHJpbmcgKl9leGNlcHRpb25EZXNjcmlwdGlvbiA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KTklVdGlsaXR5
UHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KTklVdGlsaXR5UHJp
dmF0ZS5jcHAKaW5kZXggYThiZTBiZDkyOTA3MTMzZjA1MTliN2I2MWZmMTIwNzk4ZDk0ODJjNi4u
MjM1NmZlMTI1ODEwZjQ0Y2FmYWE5MzgzOTU5MTVjMDAxYzAwZGNmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSk5JVXRpbGl0eVByaXZhdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0pOSVV0aWxpdHlQcml2YXRlLmNwcApAQCAtNTMs
OCArNTMsOCBAQCBzdGF0aWMgam9iamVjdCBjb252ZXJ0QXJyYXlJbnN0YW5jZVRvSmF2YUFycmF5
KEV4ZWNTdGF0ZSogZXhlYywgSlNBcnJheSoganNBcnJheQogICAgIGpvYmplY3RBcnJheSBqYXJy
YXkgPSAwOwogCiAgICAgLy8gQnVpbGQgdGhlIGNvcnJlY3QgYXJyYXkgdHlwZQotICAgIHN3aXRj
aCAoSk5JVHlwZUZyb21QcmltaXRpdmVUeXBlKGphdmFDbGFzc05hbWVbMV0pKSB7Ci0gICAgY2Fz
ZSBvYmplY3RfdHlwZToKKyAgICBzd2l0Y2ggKGphdmFUeXBlRnJvbVByaW1pdGl2ZVR5cGUoamF2
YUNsYXNzTmFtZVsxXSkpIHsKKyAgICBjYXNlIEphdmFUeXBlT2JqZWN0OgogICAgICAgICAgICAg
ewogICAgICAgICAgICAgLy8gT25seSBzdXBwb3J0IHN0cmluZyBvYmplY3QgdHlwZXMKICAgICAg
ICAgICAgIGlmICghc3RyY21wKCJbTGphdmEubGFuZy5TdHJpbmc7IiwgamF2YUNsYXNzTmFtZSkp
IHsKQEAgLTcxLDcgKzcxLDcgQEAgc3RhdGljIGpvYmplY3QgY29udmVydEFycmF5SW5zdGFuY2VU
b0phdmFBcnJheShFeGVjU3RhdGUqIGV4ZWMsIEpTQXJyYXkqIGpzQXJyYXkKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAKLSAgICBjYXNlIGJvb2xlYW5fdHlwZToKKyAgICBjYXNlIEph
dmFUeXBlQm9vbGVhbjoKICAgICAgICAgewogICAgICAgICAgICAgamFycmF5ID0gKGpvYmplY3RB
cnJheSllbnYtPk5ld0Jvb2xlYW5BcnJheShsZW5ndGgpOwogICAgICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CkBAIC04Miw3ICs4Miw3IEBAIHN0YXRpYyBq
b2JqZWN0IGNvbnZlcnRBcnJheUluc3RhbmNlVG9KYXZhQXJyYXkoRXhlY1N0YXRlKiBleGVjLCBK
U0FycmF5KiBqc0FycmF5CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgY2Fz
ZSBieXRlX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUJ5dGU6CiAgICAgICAgIHsKICAgICAgICAg
ICAgIGphcnJheSA9IChqb2JqZWN0QXJyYXkpZW52LT5OZXdCeXRlQXJyYXkobGVuZ3RoKTsKICAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewpAQCAtOTMs
NyArOTMsNyBAQCBzdGF0aWMgam9iamVjdCBjb252ZXJ0QXJyYXlJbnN0YW5jZVRvSmF2YUFycmF5
KEV4ZWNTdGF0ZSogZXhlYywgSlNBcnJheSoganNBcnJheQogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KIAotICAgIGNhc2UgY2hhcl90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVDaGFyOgog
ICAgICAgICB7CiAgICAgICAgICAgICBqYXJyYXkgPSAoam9iamVjdEFycmF5KWVudi0+TmV3Q2hh
ckFycmF5KGxlbmd0aCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVu
Z3RoOyBpKyspIHsKQEAgLTEwNyw3ICsxMDcsNyBAQCBzdGF0aWMgam9iamVjdCBjb252ZXJ0QXJy
YXlJbnN0YW5jZVRvSmF2YUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgSlNBcnJheSoganNBcnJheQog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgIGNhc2Ugc2hvcnRfdHlwZToKKyAg
ICBjYXNlIEphdmFUeXBlU2hvcnQ6CiAgICAgICAgIHsKICAgICAgICAgICAgIGphcnJheSA9IChq
b2JqZWN0QXJyYXkpZW52LT5OZXdTaG9ydEFycmF5KGxlbmd0aCk7CiAgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKQEAgLTExOCw3ICsxMTgsNyBAQCBz
dGF0aWMgam9iamVjdCBjb252ZXJ0QXJyYXlJbnN0YW5jZVRvSmF2YUFycmF5KEV4ZWNTdGF0ZSog
ZXhlYywgSlNBcnJheSoganNBcnJheQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAot
ICAgIGNhc2UgaW50X3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUludDoKICAgICAgICAgewogICAg
ICAgICAgICAgamFycmF5ID0gKGpvYmplY3RBcnJheSllbnYtPk5ld0ludEFycmF5KGxlbmd0aCk7
CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKQEAg
LTEyOSw3ICsxMjksNyBAQCBzdGF0aWMgam9iamVjdCBjb252ZXJ0QXJyYXlJbnN0YW5jZVRvSmF2
YUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgSlNBcnJheSoganNBcnJheQogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KIAotICAgIGNhc2UgbG9uZ190eXBlOgorICAgIGNhc2UgSmF2YVR5cGVM
b25nOgogICAgICAgICB7CiAgICAgICAgICAgICBqYXJyYXkgPSAoam9iamVjdEFycmF5KWVudi0+
TmV3TG9uZ0FycmF5KGxlbmd0aCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbGVuZ3RoOyBpKyspIHsKQEAgLTE0MCw3ICsxNDAsNyBAQCBzdGF0aWMgam9iamVjdCBjb252
ZXJ0QXJyYXlJbnN0YW5jZVRvSmF2YUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgSlNBcnJheSoganNB
cnJheQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgIGNhc2UgZmxvYXRfdHlw
ZToKKyAgICBjYXNlIEphdmFUeXBlRmxvYXQ6CiAgICAgICAgIHsKICAgICAgICAgICAgIGphcnJh
eSA9IChqb2JqZWN0QXJyYXkpZW52LT5OZXdGbG9hdEFycmF5KGxlbmd0aCk7CiAgICAgICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKQEAgLTE1MSw3ICsxNTEs
NyBAQCBzdGF0aWMgam9iamVjdCBjb252ZXJ0QXJyYXlJbnN0YW5jZVRvSmF2YUFycmF5KEV4ZWNT
dGF0ZSogZXhlYywgSlNBcnJheSoganNBcnJheQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KIAotICAgIGNhc2UgZG91YmxlX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZURvdWJsZToKICAg
ICAgICAgewogICAgICAgICAgICAgamFycmF5ID0gKGpvYmplY3RBcnJheSllbnYtPk5ld0RvdWJs
ZUFycmF5KGxlbmd0aCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVu
Z3RoOyBpKyspIHsKQEAgLTE2Miw5ICsxNjIsOSBAQCBzdGF0aWMgam9iamVjdCBjb252ZXJ0QXJy
YXlJbnN0YW5jZVRvSmF2YUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgSlNBcnJheSoganNBcnJheQog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgIGNhc2UgYXJyYXlfdHlwZTogLy8g
ZG9uJ3QgaGFuZGxlIGVtYmVkZGVkIGFycmF5cwotICAgIGNhc2Ugdm9pZF90eXBlOiAvLyBEb24n
dCBleHBlY3QgYXJyYXlzIG9mIHZvaWQgb2JqZWN0cwotICAgIGNhc2UgaW52YWxpZF90eXBlOiAv
LyBBcnJheSBvZiB1bmtub3duIG9iamVjdHMKKyAgICBjYXNlIEphdmFUeXBlQXJyYXk6IC8vIGRv
bid0IGhhbmRsZSBlbWJlZGRlZCBhcnJheXMKKyAgICBjYXNlIEphdmFUeXBlVm9pZDogLy8gRG9u
J3QgZXhwZWN0IGFycmF5cyBvZiB2b2lkIG9iamVjdHMKKyAgICBjYXNlIEphdmFUeXBlSW52YWxp
ZDogLy8gQXJyYXkgb2YgdW5rbm93biBvYmplY3RzCiAgICAgICAgIGJyZWFrOwogICAgIH0KIApA
QCAtMTcyLDE2ICsxNzIsMTYgQEAgc3RhdGljIGpvYmplY3QgY29udmVydEFycmF5SW5zdGFuY2VU
b0phdmFBcnJheShFeGVjU3RhdGUqIGV4ZWMsIEpTQXJyYXkqIGpzQXJyYXkKICAgICByZXR1cm4g
amFycmF5OwogfQogCi1qdmFsdWUgY29udmVydFZhbHVlVG9KVmFsdWUoRXhlY1N0YXRlKiBleGVj
LCBSb290T2JqZWN0KiByb290T2JqZWN0LCBKU1ZhbHVlIHZhbHVlLCBKTklUeXBlIGpuaVR5cGUs
IGNvbnN0IGNoYXIqIGphdmFDbGFzc05hbWUpCitqdmFsdWUgY29udmVydFZhbHVlVG9KVmFsdWUo
RXhlY1N0YXRlKiBleGVjLCBSb290T2JqZWN0KiByb290T2JqZWN0LCBKU1ZhbHVlIHZhbHVlLCBK
YXZhVHlwZSBqYXZhVHlwZSwgY29uc3QgY2hhciogamF2YUNsYXNzTmFtZSkKIHsKICAgICBKU0xv
Y2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwogCiAgICAganZhbHVlIHJlc3VsdDsKICAg
ICBtZW1zZXQoJnJlc3VsdCwgMCwgc2l6ZW9mKGp2YWx1ZSkpOwogCi0gICAgc3dpdGNoIChqbmlU
eXBlKSB7Ci0gICAgY2FzZSBhcnJheV90eXBlOgotICAgIGNhc2Ugb2JqZWN0X3R5cGU6CisgICAg
c3dpdGNoIChqYXZhVHlwZSkgeworICAgIGNhc2UgSmF2YVR5cGVBcnJheToKKyAgICBjYXNlIEph
dmFUeXBlT2JqZWN0OgogICAgICAgICB7CiAgICAgICAgICAgICAvLyBGSVhNRTogSmF2YUpTT2Jq
ZWN0Ojpjb252ZXJ0VmFsdWVUb0pPYmplY3QgZnVuY3Rpb25hbGl0eSBpcyBhbG1vc3QgZXhhY3Rs
eSB0aGUgc2FtZSwKICAgICAgICAgICAgIC8vIHRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgdXNlIGNv
bW1vbiBjb2RlLgpAQCAtMjU4LDU2ICsyNTgsNTYgQEAganZhbHVlIGNvbnZlcnRWYWx1ZVRvSlZh
bHVlKEV4ZWNTdGF0ZSogZXhlYywgUm9vdE9iamVjdCogcm9vdE9iamVjdCwgSlNWYWx1ZSB2YWwK
ICAgICAgICAgfQogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgYm9vbGVhbl90eXBlOgorICAg
IGNhc2UgSmF2YVR5cGVCb29sZWFuOgogICAgICAgICB7CiAgICAgICAgICAgICByZXN1bHQueiA9
IChqYm9vbGVhbil2YWx1ZS50b051bWJlcihleGVjKTsKICAgICAgICAgfQogICAgICAgICBicmVh
azsKIAotICAgIGNhc2UgYnl0ZV90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVCeXRlOgogICAgICAg
ICB7CiAgICAgICAgICAgICByZXN1bHQuYiA9IChqYnl0ZSl2YWx1ZS50b051bWJlcihleGVjKTsK
ICAgICAgICAgfQogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgY2hhcl90eXBlOgorICAgIGNh
c2UgSmF2YVR5cGVDaGFyOgogICAgICAgICB7CiAgICAgICAgICAgICByZXN1bHQuYyA9IChqY2hh
cil2YWx1ZS50b051bWJlcihleGVjKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAotICAg
IGNhc2Ugc2hvcnRfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlU2hvcnQ6CiAgICAgICAgIHsKICAg
ICAgICAgICAgIHJlc3VsdC5zID0gKGpzaG9ydCl2YWx1ZS50b051bWJlcihleGVjKTsKICAgICAg
ICAgfQogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgaW50X3R5cGU6CisgICAgY2FzZSBKYXZh
VHlwZUludDoKICAgICAgICAgewogICAgICAgICAgICAgcmVzdWx0LmkgPSAoamludCl2YWx1ZS50
b051bWJlcihleGVjKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgbG9u
Z190eXBlOgorICAgIGNhc2UgSmF2YVR5cGVMb25nOgogICAgICAgICB7CiAgICAgICAgICAgICBy
ZXN1bHQuaiA9IChqbG9uZyl2YWx1ZS50b051bWJlcihleGVjKTsKICAgICAgICAgfQogICAgICAg
ICBicmVhazsKIAotICAgIGNhc2UgZmxvYXRfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlRmxvYXQ6
CiAgICAgICAgIHsKICAgICAgICAgICAgIHJlc3VsdC5mID0gKGpmbG9hdCl2YWx1ZS50b051bWJl
cihleGVjKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgZG91YmxlX3R5
cGU6CisgICAgY2FzZSBKYXZhVHlwZURvdWJsZToKICAgICAgICAgewogICAgICAgICAgICAgcmVz
dWx0LmQgPSAoamRvdWJsZSl2YWx1ZS50b051bWJlcihleGVjKTsKICAgICAgICAgfQogICAgICAg
ICBicmVhazsKIAotICAgIGNhc2UgaW52YWxpZF90eXBlOgotICAgIGNhc2Ugdm9pZF90eXBlOgor
ICAgIGNhc2UgSmF2YVR5cGVJbnZhbGlkOgorICAgIGNhc2UgSmF2YVR5cGVWb2lkOgogICAgICAg
ICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9qbmkvanNjL0pOSVV0aWxpdHlQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvam5pL2pzYy9KTklVdGlsaXR5UHJpdmF0ZS5oCmluZGV4IDEyNjZhY2Q5YTgwZmJh
NTBlMzY0ZDkxZGUzZWMwMWU3ZGZiNzFiNjUuLmVkMDlmZDY1ZDc0NTcyMzkxMzkxOGQwODk1NDBl
ODkwMjMzNWU2ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0pO
SVV0aWxpdHlQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSk5J
VXRpbGl0eVByaXZhdGUuaApAQCAtNDEsOCArNDEsOCBAQCBuYW1lc3BhY2UgQmluZGluZ3Mgewog
CiBjbGFzcyBSb290T2JqZWN0OwogCi1qdmFsdWUgY29udmVydFZhbHVlVG9KVmFsdWUoRXhlY1N0
YXRlKiwgUm9vdE9iamVjdCosIEpTVmFsdWUsIEpOSVR5cGUsIGNvbnN0IGNoYXIqIGphdmFDbGFz
c05hbWUpOwotYm9vbCBkaXNwYXRjaEpOSUNhbGwoRXhlY1N0YXRlKiwgY29uc3Qgdm9pZCogdGFy
Z2V0QXBwbGV0Vmlldywgam9iamVjdCBvYmosIGJvb2wgaXNTdGF0aWMsIEpOSVR5cGUgcmV0dXJu
VHlwZSwgam1ldGhvZElEIG1ldGhvZElELCBqdmFsdWUqIGFyZ3MsIGp2YWx1ZSYgcmVzdWx0LCBj
b25zdCBjaGFyKiBjYWxsaW5nVVJMLCBKU1ZhbHVlJiBleGNlcHRpb25EZXNjcmlwdGlvbik7Citq
dmFsdWUgY29udmVydFZhbHVlVG9KVmFsdWUoRXhlY1N0YXRlKiwgUm9vdE9iamVjdCosIEpTVmFs
dWUsIEphdmFUeXBlLCBjb25zdCBjaGFyKiBqYXZhQ2xhc3NOYW1lKTsKK2Jvb2wgZGlzcGF0Y2hK
TklDYWxsKEV4ZWNTdGF0ZSosIGNvbnN0IHZvaWQqIHRhcmdldEFwcGxldFZpZXcsIGpvYmplY3Qs
IGJvb2wgaXNTdGF0aWMsIEphdmFUeXBlIHJldHVyblR5cGUsIGptZXRob2RJRCwganZhbHVlKiBh
cmdzLCBqdmFsdWUmIHJlc3VsdCwgY29uc3QgY2hhciogY2FsbGluZ1VSTCwgSlNWYWx1ZSYgZXhj
ZXB0aW9uRGVzY3JpcHRpb24pOwogCiB9IC8vIG5hbWVzcGFjZSBCaW5kaW5ncwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhQXJyYXlKU0MuY3BwIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUFycmF5SlNDLmNwcAppbmRleCBkYjg3YmFh
NzZiZWU2MGQxMGI0MWVjNjdhM2Q1MDI3NDg2Mjg3MjdkLi5jYWE4NTc5YjczNWEyYzE2ODU0OTNk
NjJmMDIzZjU3MGY2NDVjYmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5p
L2pzYy9KYXZhQXJyYXlKU0MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNj
L0phdmFBcnJheUpTQy5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgdm9pZCBKYXZhQXJyYXk6OnNldFZh
bHVlQXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSBhVmFsdWUpIGNv
bnMKICAgICBKTklFbnYqIGVudiA9IGdldEpOSUVudigpOwogICAgIGNoYXIqIGphdmFDbGFzc05h
bWUgPSAwOwogCi0gICAgSk5JVHlwZSBhcnJheVR5cGUgPSBKTklUeXBlRnJvbVByaW1pdGl2ZVR5
cGUobV90eXBlWzFdKTsKKyAgICBKYXZhVHlwZSBhcnJheVR5cGUgPSBqYXZhVHlwZUZyb21Qcmlt
aXRpdmVUeXBlKG1fdHlwZVsxXSk7CiAgICAgaWYgKG1fdHlwZVsxXSA9PSAnTCcpIHsKICAgICAg
ICAgLy8gVGhlIHR5cGUgb2YgdGhlIGFycmF5IHdpbGwgYmUgc29tZXRoaW5nIGxpa2U6CiAgICAg
ICAgIC8vICJbTGphdmEubGFuZy5zdHJpbmc7Ii4gVGhpcyBpcyBndWFyYW50ZWVkLCBzbyBubyBu
ZWVkCkBAIC04Niw1NCArODYsNTQgQEAgdm9pZCBKYXZhQXJyYXk6OnNldFZhbHVlQXQoRXhlY1N0
YXRlKiBleGVjLCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSBhVmFsdWUpIGNvbnMKICAgICBqdmFs
dWUgYUpWYWx1ZSA9IGNvbnZlcnRWYWx1ZVRvSlZhbHVlKGV4ZWMsIG1fcm9vdE9iamVjdC5nZXQo
KSwgYVZhbHVlLCBhcnJheVR5cGUsIGphdmFDbGFzc05hbWUpOwogCiAgICAgc3dpdGNoIChhcnJh
eVR5cGUpIHsKLSAgICBjYXNlIG9iamVjdF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVPYmplY3Q6
CiAgICAgICAgIHsKICAgICAgICAgICAgIGVudi0+U2V0T2JqZWN0QXJyYXlFbGVtZW50KHN0YXRp
Y19jYXN0PGpvYmplY3RBcnJheT4oamF2YUFycmF5KCkpLCBpbmRleCwgYUpWYWx1ZS5sKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICBjYXNlIGJvb2xlYW5fdHlwZToKKyAg
ICBjYXNlIEphdmFUeXBlQm9vbGVhbjoKICAgICAgICAgewogICAgICAgICAgICAgZW52LT5TZXRC
b29sZWFuQXJyYXlSZWdpb24oc3RhdGljX2Nhc3Q8amJvb2xlYW5BcnJheT4oamF2YUFycmF5KCkp
LCBpbmRleCwgMSwgJmFKVmFsdWUueik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
Ci0gICAgY2FzZSBieXRlX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUJ5dGU6CiAgICAgICAgIHsK
ICAgICAgICAgICAgIGVudi0+U2V0Qnl0ZUFycmF5UmVnaW9uKHN0YXRpY19jYXN0PGpieXRlQXJy
YXk+KGphdmFBcnJheSgpKSwgaW5kZXgsIDEsICZhSlZhbHVlLmIpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KIAotICAgIGNhc2UgY2hhcl90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVD
aGFyOgogICAgICAgICB7CiAgICAgICAgICAgICBlbnYtPlNldENoYXJBcnJheVJlZ2lvbihzdGF0
aWNfY2FzdDxqY2hhckFycmF5PihqYXZhQXJyYXkoKSksIGluZGV4LCAxLCAmYUpWYWx1ZS5jKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICBjYXNlIHNob3J0X3R5cGU6Cisg
ICAgY2FzZSBKYXZhVHlwZVNob3J0OgogICAgICAgICB7CiAgICAgICAgICAgICBlbnYtPlNldFNo
b3J0QXJyYXlSZWdpb24oc3RhdGljX2Nhc3Q8anNob3J0QXJyYXk+KGphdmFBcnJheSgpKSwgaW5k
ZXgsIDEsICZhSlZhbHVlLnMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAg
IGNhc2UgaW50X3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUludDoKICAgICAgICAgewogICAgICAg
ICAgICAgZW52LT5TZXRJbnRBcnJheVJlZ2lvbihzdGF0aWNfY2FzdDxqaW50QXJyYXk+KGphdmFB
cnJheSgpKSwgaW5kZXgsIDEsICZhSlZhbHVlLmkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KIAotICAgIGNhc2UgbG9uZ190eXBlOgorICAgIGNhc2UgSmF2YVR5cGVMb25nOgogICAg
ICAgICB7CiAgICAgICAgICAgICBlbnYtPlNldExvbmdBcnJheVJlZ2lvbihzdGF0aWNfY2FzdDxq
bG9uZ0FycmF5PihqYXZhQXJyYXkoKSksIGluZGV4LCAxLCAmYUpWYWx1ZS5qKTsKICAgICAgICAg
fQogCi0gICAgY2FzZSBmbG9hdF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVGbG9hdDoKICAgICAg
ICAgewogICAgICAgICAgICAgZW52LT5TZXRGbG9hdEFycmF5UmVnaW9uKHN0YXRpY19jYXN0PGpm
bG9hdEFycmF5PihqYXZhQXJyYXkoKSksIGluZGV4LCAxLCAmYUpWYWx1ZS5mKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICBjYXNlIGRvdWJsZV90eXBlOgorICAgIGNhc2Ug
SmF2YVR5cGVEb3VibGU6CiAgICAgICAgIHsKICAgICAgICAgICAgIGVudi0+U2V0RG91YmxlQXJy
YXlSZWdpb24oc3RhdGljX2Nhc3Q8amRvdWJsZUFycmF5PihqYXZhQXJyYXkoKSksIGluZGV4LCAx
LCAmYUpWYWx1ZS5kKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTQ5LDkgKzE0OSw5IEBAIHZv
aWQgSmF2YUFycmF5OjpzZXRWYWx1ZUF0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgs
IEpTVmFsdWUgYVZhbHVlKSBjb25zCiBKU1ZhbHVlIEphdmFBcnJheTo6dmFsdWVBdChFeGVjU3Rh
dGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4KSBjb25zdAogewogICAgIEpOSUVudiogZW52ID0gZ2V0
Sk5JRW52KCk7Ci0gICAgSk5JVHlwZSBhcnJheVR5cGUgPSBKTklUeXBlRnJvbVByaW1pdGl2ZVR5
cGUobV90eXBlWzFdKTsKKyAgICBKYXZhVHlwZSBhcnJheVR5cGUgPSBqYXZhVHlwZUZyb21Qcmlt
aXRpdmVUeXBlKG1fdHlwZVsxXSk7CiAgICAgc3dpdGNoIChhcnJheVR5cGUpIHsKLSAgICBjYXNl
IG9iamVjdF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVPYmplY3Q6CiAgICAgICAgIHsKICAgICAg
ICAgICAgIGpvYmplY3RBcnJheSBvYmplY3RBcnJheSA9IHN0YXRpY19jYXN0PGpvYmplY3RBcnJh
eT4oamF2YUFycmF5KCkpOwogICAgICAgICAgICAgam9iamVjdCBhbk9iamVjdDsKQEAgLTE2OCw3
ICsxNjgsNyBAQCBKU1ZhbHVlIEphdmFBcnJheTo6dmFsdWVBdChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIGluZGV4KSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIEphdmFJbnN0YW5jZTo6Y3Jl
YXRlKGFuT2JqZWN0LCByb290T2JqZWN0KCkpLT5jcmVhdGVSdW50aW1lT2JqZWN0KGV4ZWMpOwog
ICAgICAgICB9CiAKLSAgICBjYXNlIGJvb2xlYW5fdHlwZToKKyAgICBjYXNlIEphdmFUeXBlQm9v
bGVhbjoKICAgICAgICAgewogICAgICAgICAgICAgamJvb2xlYW5BcnJheSBib29sZWFuQXJyYXkg
PSBzdGF0aWNfY2FzdDxqYm9vbGVhbkFycmF5PihqYXZhQXJyYXkoKSk7CiAgICAgICAgICAgICBq
Ym9vbGVhbiBhQm9vbGVhbjsKQEAgLTE3Niw3ICsxNzYsNyBAQCBKU1ZhbHVlIEphdmFBcnJheTo6
dmFsdWVBdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4KSBjb25zdAogICAgICAgICAg
ICAgcmV0dXJuIGpzQm9vbGVhbihhQm9vbGVhbik7CiAgICAgICAgIH0KIAotICAgIGNhc2UgYnl0
ZV90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVCeXRlOgogICAgICAgICB7CiAgICAgICAgICAgICBq
Ynl0ZUFycmF5IGJ5dGVBcnJheSA9IHN0YXRpY19jYXN0PGpieXRlQXJyYXk+KGphdmFBcnJheSgp
KTsKICAgICAgICAgICAgIGpieXRlIGFCeXRlOwpAQCAtMTg0LDcgKzE4NCw3IEBAIEpTVmFsdWUg
SmF2YUFycmF5Ojp2YWx1ZUF0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgpIGNvbnN0
CiAgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIoYUJ5dGUpOwogICAgICAgICB9CiAKLSAgICBj
YXNlIGNoYXJfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlQ2hhcjoKICAgICAgICAgewogICAgICAg
ICAgICAgamNoYXJBcnJheSBjaGFyQXJyYXkgPSBzdGF0aWNfY2FzdDxqY2hhckFycmF5PihqYXZh
QXJyYXkoKSk7CiAgICAgICAgICAgICBqY2hhciBhQ2hhcjsKQEAgLTE5Myw3ICsxOTMsNyBAQCBK
U1ZhbHVlIEphdmFBcnJheTo6dmFsdWVBdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4
KSBjb25zdAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgIGNhc2Ugc2hvcnRf
dHlwZToKKyAgICBjYXNlIEphdmFUeXBlU2hvcnQ6CiAgICAgICAgIHsKICAgICAgICAgICAgIGpz
aG9ydEFycmF5IHNob3J0QXJyYXkgPSBzdGF0aWNfY2FzdDxqc2hvcnRBcnJheT4oamF2YUFycmF5
KCkpOwogICAgICAgICAgICAganNob3J0IGFTaG9ydDsKQEAgLTIwMSw3ICsyMDEsNyBAQCBKU1Zh
bHVlIEphdmFBcnJheTo6dmFsdWVBdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4KSBj
b25zdAogICAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGFTaG9ydCk7CiAgICAgICAgIH0KIAot
ICAgIGNhc2UgaW50X3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUludDoKICAgICAgICAgewogICAg
ICAgICAgICAgamludEFycmF5IGludEFycmF5ID0gc3RhdGljX2Nhc3Q8amludEFycmF5PihqYXZh
QXJyYXkoKSk7CiAgICAgICAgICAgICBqaW50IGFuSW50OwpAQCAtMjA5LDcgKzIwOSw3IEBAIEpT
VmFsdWUgSmF2YUFycmF5Ojp2YWx1ZUF0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgp
IGNvbnN0CiAgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIoYW5JbnQpOwogICAgICAgICB9CiAK
LSAgICBjYXNlIGxvbmdfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlTG9uZzoKICAgICAgICAgewog
ICAgICAgICAgICAgamxvbmdBcnJheSBsb25nQXJyYXkgPSBzdGF0aWNfY2FzdDxqbG9uZ0FycmF5
PihqYXZhQXJyYXkoKSk7CiAgICAgICAgICAgICBqbG9uZyBhTG9uZzsKQEAgLTIxNyw3ICsyMTcs
NyBAQCBKU1ZhbHVlIEphdmFBcnJheTo6dmFsdWVBdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVk
IGluZGV4KSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGFMb25nKTsKICAgICAg
ICAgfQogCi0gICAgY2FzZSBmbG9hdF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVGbG9hdDoKICAg
ICAgICAgewogICAgICAgICAgICAgamZsb2F0QXJyYXkgZmxvYXRBcnJheSA9IHN0YXRpY19jYXN0
PGpmbG9hdEFycmF5PihqYXZhQXJyYXkoKSk7CiAgICAgICAgICAgICBqZmxvYXQgYUZsb2F0OwpA
QCAtMjI1LDcgKzIyNSw3IEBAIEpTVmFsdWUgSmF2YUFycmF5Ojp2YWx1ZUF0KEV4ZWNTdGF0ZSog
ZXhlYywgdW5zaWduZWQgaW5kZXgpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIo
YUZsb2F0KTsKICAgICAgICAgfQogCi0gICAgY2FzZSBkb3VibGVfdHlwZToKKyAgICBjYXNlIEph
dmFUeXBlRG91YmxlOgogICAgICAgICB7CiAgICAgICAgICAgICBqZG91YmxlQXJyYXkgZG91Ymxl
QXJyYXkgPSBzdGF0aWNfY2FzdDxqZG91YmxlQXJyYXk+KGphdmFBcnJheSgpKTsKICAgICAgICAg
ICAgIGpkb3VibGUgYURvdWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9q
bmkvanNjL0phdmFDbGFzc0pTQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9K
YXZhQ2xhc3NKU0MuY3BwCmluZGV4IDE4Y2QxYWYzZTA4ZjI1YzM4Yjg2MDJmMjM5MWIwMGJkZGQ1
ZDhhMGIuLmE4MjFmZmYyNjRlNWU2NzljM2E0NDI5OWQ1ZDkwZGMxZjY0MTEzMjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFDbGFzc0pTQy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUNsYXNzSlNDLmNwcApAQCAtMjgsNyAr
MjgsNiBAQAogCiAjaWYgRU5BQkxFKEpBVkFfQlJJREdFKQogCi0jaW5jbHVkZSAiSk5JVXRpbGl0
eS5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiSmF2YUZpZWxkSlNDLmgi
CiAjaW5jbHVkZSAiSmF2YU1ldGhvZC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL2puaS9qc2MvSmF2YUZpZWxkSlNDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkv
anNjL0phdmFGaWVsZEpTQy5jcHAKaW5kZXggZDNiYTA2YWM4YmM5ZTc0NWM5YTViMDk4NDI3OGQz
MTkyZGJiNzFiMS4uYjdjNjY0ZTQyODJmYWE1MmZjMzk5MzEzMmQ0MTExZWY3MTY1MmFmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUZpZWxkSlNDLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhRmllbGRKU0MuY3BwCkBAIC00
OCw5ICs0OCw5IEBAIEphdmFGaWVsZDo6SmF2YUZpZWxkKEpOSUVudiogZW52LCBqb2JqZWN0IGFG
aWVsZCkKICAgICAgICAgZmllbGRUeXBlTmFtZSA9IHN0YXRpY19jYXN0PGpzdHJpbmc+KGNhbGxK
TklNZXRob2Q8am9iamVjdD4oZmllbGRUeXBlLCAiZ2V0TmFtZSIsICIoKUxqYXZhL2xhbmcvU3Ry
aW5nOyIpKTsKICAgICBpZiAoIWZpZWxkVHlwZU5hbWUpCiAgICAgICAgIGZpZWxkVHlwZU5hbWUg
PSBlbnYtPk5ld1N0cmluZ1VURigiPFVua25vd24+Iik7Ci0gICAgbV90eXBlID0gSmF2YVN0cmlu
ZyhlbnYsIGZpZWxkVHlwZU5hbWUpOworICAgIG1fdHlwZUNsYXNzTmFtZSA9IEphdmFTdHJpbmco
ZW52LCBmaWVsZFR5cGVOYW1lKTsKIAotICAgIG1fSk5JVHlwZSA9IEpOSVR5cGVGcm9tQ2xhc3NO
YW1lKG1fdHlwZS51dGY4KCkpOworICAgIG1fdHlwZSA9IGphdmFUeXBlRnJvbUNsYXNzTmFtZSht
X3R5cGVDbGFzc05hbWUudXRmOCgpKTsKIAogICAgIC8vIEdldCBmaWVsZCBuYW1lCiAgICAganN0
cmluZyBmaWVsZE5hbWUgPSBzdGF0aWNfY2FzdDxqc3RyaW5nPihjYWxsSk5JTWV0aG9kPGpvYmpl
Y3Q+KGFGaWVsZCwgImdldE5hbWUiLCAiKClMamF2YS9sYW5nL1N0cmluZzsiKSk7CkBAIC02MSw3
ICs2MSw3IEBAIEphdmFGaWVsZDo6SmF2YUZpZWxkKEpOSUVudiogZW52LCBqb2JqZWN0IGFGaWVs
ZCkKICAgICBtX2ZpZWxkID0gbmV3IEpvYmplY3RXcmFwcGVyKGFGaWVsZCk7CiB9CiAKLWp2YWx1
ZSBKYXZhRmllbGQ6OmRpc3BhdGNoVmFsdWVGcm9tSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBKYXZhSW5zdGFuY2UqIGluc3RhbmNlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFy
KiBzaWcsIEpOSVR5cGUgcmV0dXJuVHlwZSkgY29uc3QKK2p2YWx1ZSBKYXZhRmllbGQ6OmRpc3Bh
dGNoVmFsdWVGcm9tSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBKYXZhSW5zdGFuY2Uq
IGluc3RhbmNlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBzaWcsIEphdmFUeXBlIHJl
dHVyblR5cGUpIGNvbnN0CiB7CiAgICAgam9iamVjdCBqaW5zdGFuY2UgPSBpbnN0YW5jZS0+amF2
YUluc3RhbmNlKCk7CiAgICAgam9iamVjdCBmaWVsZEpJbnN0YW5jZSA9IG1fZmllbGQtPm1faW5z
dGFuY2U7CkBAIC05NCwxNyArOTQsMTcgQEAgSlNWYWx1ZSBKYXZhRmllbGQ6OnZhbHVlRnJvbUlu
c3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSW5zdGFuY2UqIGkpIGNvbnN0CiAKICAgICBK
U1ZhbHVlIGpzcmVzdWx0ID0ganNVbmRlZmluZWQoKTsKIAotICAgIHN3aXRjaCAobV9KTklUeXBl
KSB7Ci0gICAgY2FzZSBhcnJheV90eXBlOgotICAgIGNhc2Ugb2JqZWN0X3R5cGU6CisgICAgc3dp
dGNoIChtX3R5cGUpIHsKKyAgICBjYXNlIEphdmFUeXBlQXJyYXk6CisgICAgY2FzZSBKYXZhVHlw
ZU9iamVjdDoKICAgICAgICAgewotICAgICAgICAgICAganZhbHVlIHJlc3VsdCA9IGRpc3BhdGNo
VmFsdWVGcm9tSW5zdGFuY2UoZXhlYywgaW5zdGFuY2UsICJnZXQiLCAiKExqYXZhL2xhbmcvT2Jq
ZWN0OylMamF2YS9sYW5nL09iamVjdDsiLCBvYmplY3RfdHlwZSk7CisgICAgICAgICAgICBqdmFs
dWUgcmVzdWx0ID0gZGlzcGF0Y2hWYWx1ZUZyb21JbnN0YW5jZShleGVjLCBpbnN0YW5jZSwgImdl
dCIsICIoTGphdmEvbGFuZy9PYmplY3Q7KUxqYXZhL2xhbmcvT2JqZWN0OyIsIEphdmFUeXBlT2Jq
ZWN0KTsKICAgICAgICAgICAgIGpvYmplY3QgYW5PYmplY3QgPSByZXN1bHQubDsKIAogICAgICAg
ICAgICAgaWYgKCFhbk9iamVjdCkKICAgICAgICAgICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAK
LSAgICAgICAgICAgIGNvbnN0IGNoYXIqIGFycmF5VHlwZSA9IHR5cGUoKTsKKyAgICAgICAgICAg
IGNvbnN0IGNoYXIqIGFycmF5VHlwZSA9IHR5cGVDbGFzc05hbWUoKTsKICAgICAgICAgICAgIGlm
IChhcnJheVR5cGVbMF0gPT0gJ1snKQogICAgICAgICAgICAgICAgIGpzcmVzdWx0ID0gSmF2YUFy
cmF5Ojpjb252ZXJ0Sk9iamVjdFRvQXJyYXkoZXhlYywgYW5PYmplY3QsIGFycmF5VHlwZSwgaW5z
dGFuY2UtPnJvb3RPYmplY3QoKSk7CiAgICAgICAgICAgICBlbHNlIGlmIChhbk9iamVjdCkKQEAg
LTExMiwyOSArMTEyLDI5IEBAIEpTVmFsdWUgSmF2YUZpZWxkOjp2YWx1ZUZyb21JbnN0YW5jZShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEluc3RhbmNlKiBpKSBjb25zdAogICAgICAgICB9CiAgICAg
ICAgIGJyZWFrOwogCi0gICAgY2FzZSBib29sZWFuX3R5cGU6Ci0gICAgICAgIGpzcmVzdWx0ID0g
anNCb29sZWFuKGRpc3BhdGNoVmFsdWVGcm9tSW5zdGFuY2UoZXhlYywgaW5zdGFuY2UsICJnZXRC
b29sZWFuIiwgIihMamF2YS9sYW5nL09iamVjdDspWiIsIGJvb2xlYW5fdHlwZSkueik7CisgICAg
Y2FzZSBKYXZhVHlwZUJvb2xlYW46CisgICAgICAgIGpzcmVzdWx0ID0ganNCb29sZWFuKGRpc3Bh
dGNoVmFsdWVGcm9tSW5zdGFuY2UoZXhlYywgaW5zdGFuY2UsICJnZXRCb29sZWFuIiwgIihMamF2
YS9sYW5nL09iamVjdDspWiIsIEphdmFUeXBlQm9vbGVhbikueik7CiAgICAgICAgIGJyZWFrOwog
Ci0gICAgY2FzZSBieXRlX3R5cGU6Ci0gICAgY2FzZSBjaGFyX3R5cGU6Ci0gICAgY2FzZSBzaG9y
dF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVCeXRlOgorICAgIGNhc2UgSmF2YVR5cGVDaGFyOgor
ICAgIGNhc2UgSmF2YVR5cGVTaG9ydDoKIAotICAgIGNhc2UgaW50X3R5cGU6CisgICAgY2FzZSBK
YXZhVHlwZUludDoKICAgICAgICAgewogICAgICAgICAgICAgamludCB2YWx1ZTsKLSAgICAgICAg
ICAgIGp2YWx1ZSByZXN1bHQgPSBkaXNwYXRjaFZhbHVlRnJvbUluc3RhbmNlKGV4ZWMsIGluc3Rh
bmNlLCAiZ2V0SW50IiwgIihMamF2YS9sYW5nL09iamVjdDspSSIsIGludF90eXBlKTsKKyAgICAg
ICAgICAgIGp2YWx1ZSByZXN1bHQgPSBkaXNwYXRjaFZhbHVlRnJvbUluc3RhbmNlKGV4ZWMsIGlu
c3RhbmNlLCAiZ2V0SW50IiwgIihMamF2YS9sYW5nL09iamVjdDspSSIsIEphdmFUeXBlSW50KTsK
ICAgICAgICAgICAgIHZhbHVlID0gcmVzdWx0Lmk7CiAgICAgICAgICAgICBqc3Jlc3VsdCA9IGpz
TnVtYmVyKHN0YXRpY19jYXN0PGludD4odmFsdWUpKTsKICAgICAgICAgfQogICAgICAgICBicmVh
azsKIAotICAgIGNhc2UgbG9uZ190eXBlOgotICAgIGNhc2UgZmxvYXRfdHlwZToKLSAgICBjYXNl
IGRvdWJsZV90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVMb25nOgorICAgIGNhc2UgSmF2YVR5cGVG
bG9hdDoKKyAgICBjYXNlIEphdmFUeXBlRG91YmxlOgogICAgICAgICB7CiAgICAgICAgICAgICBq
ZG91YmxlIHZhbHVlOwotICAgICAgICAgICAganZhbHVlIHJlc3VsdCA9IGRpc3BhdGNoVmFsdWVG
cm9tSW5zdGFuY2UoZXhlYywgaW5zdGFuY2UsICJnZXREb3VibGUiLCAiKExqYXZhL2xhbmcvT2Jq
ZWN0OylEIiwgZG91YmxlX3R5cGUpOworICAgICAgICAgICAganZhbHVlIHJlc3VsdCA9IGRpc3Bh
dGNoVmFsdWVGcm9tSW5zdGFuY2UoZXhlYywgaW5zdGFuY2UsICJnZXREb3VibGUiLCAiKExqYXZh
L2xhbmcvT2JqZWN0OylEIiwgSmF2YVR5cGVEb3VibGUpOwogICAgICAgICAgICAgdmFsdWUgPSBy
ZXN1bHQuaTsKICAgICAgICAgICAgIGpzcmVzdWx0ID0ganNOdW1iZXIoc3RhdGljX2Nhc3Q8ZG91
YmxlPih2YWx1ZSkpOwogICAgICAgICB9CkBAIC0xNjYsNyArMTY2LDcgQEAgdm9pZCBKYXZhRmll
bGQ6OmRpc3BhdGNoU2V0VmFsdWVUb0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSmF2
YUluc3RhbmNlKgogCiAgICAgICAgICAgICAgICAgYXJnc1swXS5sID0gamluc3RhbmNlOwogICAg
ICAgICAgICAgICAgIGFyZ3NbMV0gPSBqYXZhVmFsdWU7Ci0gICAgICAgICAgICAgICAgZGlzcGF0
Y2hKTklDYWxsKGV4ZWMsIHJvb3RPYmplY3QtPm5hdGl2ZUhhbmRsZSgpLCBmaWVsZEpJbnN0YW5j
ZSwgZmFsc2UsIHZvaWRfdHlwZSwgbWlkLCBhcmdzLCByZXN1bHQsIDAsIGV4Y2VwdGlvbkRlc2Ny
aXB0aW9uKTsKKyAgICAgICAgICAgICAgICBkaXNwYXRjaEpOSUNhbGwoZXhlYywgcm9vdE9iamVj
dC0+bmF0aXZlSGFuZGxlKCksIGZpZWxkSkluc3RhbmNlLCBmYWxzZSwgSmF2YVR5cGVWb2lkLCBt
aWQsIGFyZ3MsIHJlc3VsdCwgMCwgZXhjZXB0aW9uRGVzY3JpcHRpb24pOwogICAgICAgICAgICAg
ICAgIGlmIChleGNlcHRpb25EZXNjcmlwdGlvbikKICAgICAgICAgICAgICAgICAgICAgdGhyb3dF
cnJvcihleGVjLCBjcmVhdGVFcnJvcihleGVjLCBleGNlcHRpb25EZXNjcmlwdGlvbi50b1N0cmlu
ZyhleGVjKSkpOwogICAgICAgICAgICAgfQpAQCAtMTc3LDYxICsxNzcsNjEgQEAgdm9pZCBKYXZh
RmllbGQ6OmRpc3BhdGNoU2V0VmFsdWVUb0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SmF2YUluc3RhbmNlKgogdm9pZCBKYXZhRmllbGQ6OnNldFZhbHVlVG9JbnN0YW5jZShFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IEluc3RhbmNlKiBpLCBKU1ZhbHVlIGFWYWx1ZSkgY29uc3QKIHsKICAg
ICBjb25zdCBKYXZhSW5zdGFuY2UqIGluc3RhbmNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgSmF2YUlu
c3RhbmNlKj4oaSk7Ci0gICAganZhbHVlIGphdmFWYWx1ZSA9IGNvbnZlcnRWYWx1ZVRvSlZhbHVl
KGV4ZWMsIGktPnJvb3RPYmplY3QoKSwgYVZhbHVlLCBtX0pOSVR5cGUsIHR5cGUoKSk7CisgICAg
anZhbHVlIGphdmFWYWx1ZSA9IGNvbnZlcnRWYWx1ZVRvSlZhbHVlKGV4ZWMsIGktPnJvb3RPYmpl
Y3QoKSwgYVZhbHVlLCBtX3R5cGUsIHR5cGVDbGFzc05hbWUoKSk7CiAKICAgICBMT0coTGl2ZUNv
bm5lY3QsICJKYXZhRmllbGQ6OnNldFZhbHVlVG9JbnN0YW5jZSBzZXR0aW5nIHZhbHVlICVzIHRv
ICVzIiwgVVN0cmluZyhuYW1lKCkuaW1wbCgpKS51dGY4KCkuZGF0YSgpLCBhVmFsdWUudG9TdHJp
bmcoZXhlYykuYXNjaWkoKS5kYXRhKCkpOwogCi0gICAgc3dpdGNoIChtX0pOSVR5cGUpIHsKLSAg
ICBjYXNlIGFycmF5X3R5cGU6Ci0gICAgY2FzZSBvYmplY3RfdHlwZToKKyAgICBzd2l0Y2ggKG1f
dHlwZSkgeworICAgIGNhc2UgSmF2YVR5cGVBcnJheToKKyAgICBjYXNlIEphdmFUeXBlT2JqZWN0
OgogICAgICAgICB7CiAgICAgICAgICAgICBkaXNwYXRjaFNldFZhbHVlVG9JbnN0YW5jZShleGVj
LCBpbnN0YW5jZSwgamF2YVZhbHVlLCAic2V0IiwgIihMamF2YS9sYW5nL09iamVjdDtMamF2YS9s
YW5nL09iamVjdDspViIpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBi
b29sZWFuX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUJvb2xlYW46CiAgICAgICAgIHsKICAgICAg
ICAgICAgIGRpc3BhdGNoU2V0VmFsdWVUb0luc3RhbmNlKGV4ZWMsIGluc3RhbmNlLCBqYXZhVmFs
dWUsICJzZXRCb29sZWFuIiwgIihMamF2YS9sYW5nL09iamVjdDtaKVYiKTsKICAgICAgICAgfQog
ICAgICAgICBicmVhazsKIAotICAgIGNhc2UgYnl0ZV90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVC
eXRlOgogICAgICAgICB7CiAgICAgICAgICAgICBkaXNwYXRjaFNldFZhbHVlVG9JbnN0YW5jZShl
eGVjLCBpbnN0YW5jZSwgamF2YVZhbHVlLCAic2V0Qnl0ZSIsICIoTGphdmEvbGFuZy9PYmplY3Q7
QilWIik7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIGNoYXJfdHlwZToK
KyAgICBjYXNlIEphdmFUeXBlQ2hhcjoKICAgICAgICAgewogICAgICAgICAgICAgZGlzcGF0Y2hT
ZXRWYWx1ZVRvSW5zdGFuY2UoZXhlYywgaW5zdGFuY2UsIGphdmFWYWx1ZSwgInNldENoYXIiLCAi
KExqYXZhL2xhbmcvT2JqZWN0O0MpViIpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0g
ICAgY2FzZSBzaG9ydF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVTaG9ydDoKICAgICAgICAgewog
ICAgICAgICAgICAgZGlzcGF0Y2hTZXRWYWx1ZVRvSW5zdGFuY2UoZXhlYywgaW5zdGFuY2UsIGph
dmFWYWx1ZSwgInNldFNob3J0IiwgIihMamF2YS9sYW5nL09iamVjdDtTKVYiKTsKICAgICAgICAg
fQogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgaW50X3R5cGU6CisgICAgY2FzZSBKYXZhVHlw
ZUludDoKICAgICAgICAgewogICAgICAgICAgICAgZGlzcGF0Y2hTZXRWYWx1ZVRvSW5zdGFuY2Uo
ZXhlYywgaW5zdGFuY2UsIGphdmFWYWx1ZSwgInNldEludCIsICIoTGphdmEvbGFuZy9PYmplY3Q7
SSlWIik7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIGxvbmdfdHlwZToK
KyAgICBjYXNlIEphdmFUeXBlTG9uZzoKICAgICAgICAgewogICAgICAgICAgICAgZGlzcGF0Y2hT
ZXRWYWx1ZVRvSW5zdGFuY2UoZXhlYywgaW5zdGFuY2UsIGphdmFWYWx1ZSwgInNldExvbmciLCAi
KExqYXZhL2xhbmcvT2JqZWN0O0opViIpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0g
ICAgY2FzZSBmbG9hdF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVGbG9hdDoKICAgICAgICAgewog
ICAgICAgICAgICAgZGlzcGF0Y2hTZXRWYWx1ZVRvSW5zdGFuY2UoZXhlYywgaW5zdGFuY2UsIGph
dmFWYWx1ZSwgInNldEZsb2F0IiwgIihMamF2YS9sYW5nL09iamVjdDtGKVYiKTsKICAgICAgICAg
fQogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgZG91YmxlX3R5cGU6CisgICAgY2FzZSBKYXZh
VHlwZURvdWJsZToKICAgICAgICAgewogICAgICAgICAgICAgZGlzcGF0Y2hTZXRWYWx1ZVRvSW5z
dGFuY2UoZXhlYywgaW5zdGFuY2UsIGphdmFWYWx1ZSwgInNldERvdWJsZSIsICIoTGphdmEvbGFu
Zy9PYmplY3Q7RClWIik7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9qbmkvanNjL0phdmFGaWVsZEpTQy5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9q
c2MvSmF2YUZpZWxkSlNDLmgKaW5kZXggYTY3MjY0YWUxNWI4ZWU0NmY3YmI5NGZjN2ZiYmFmZTVi
Y2FjYzA3ZC4uOWI5NTEzMjg2NmQwYTZjY2RjZGI1ZjI2YzM1YWJhMDFmYjRjYzkyNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUZpZWxkSlNDLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUZpZWxkSlNDLmgKQEAgLTQ3LDE3ICs0
NywxNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlVG9JbnN0YW5jZShFeGVj
U3RhdGUqLCBjb25zdCBJbnN0YW5jZSosIEpTVmFsdWUpIGNvbnN0OwogCiAgICAgY29uc3QgSmF2
YVN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQotICAgIHZpcnR1YWwgUnVu
dGltZVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZS51dGY4KCk7IH0KLQotICAgIEpO
SVR5cGUgZ2V0Sk5JVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fSk5JVHlwZTsgfQorICAgIHZpcnR1
YWwgUnVudGltZVR5cGUgdHlwZUNsYXNzTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZUNsYXNz
TmFtZS51dGY4KCk7IH0KKyAgICBKYXZhVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBl
OyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaFNldFZhbHVlVG9JbnN0YW5jZShFeGVj
U3RhdGUqLCBjb25zdCBKYXZhSW5zdGFuY2UqLCBqdmFsdWUsIGNvbnN0IGNoYXIqIG5hbWUsIGNv
bnN0IGNoYXIqIHNpZykgY29uc3Q7Ci0gICAganZhbHVlIGRpc3BhdGNoVmFsdWVGcm9tSW5zdGFu
Y2UoRXhlY1N0YXRlKiwgY29uc3QgSmF2YUluc3RhbmNlKiwgY29uc3QgY2hhciogbmFtZSwgY29u
c3QgY2hhciogc2lnLCBKTklUeXBlIHJldHVyblR5cGUpIGNvbnN0OworICAgIGp2YWx1ZSBkaXNw
YXRjaFZhbHVlRnJvbUluc3RhbmNlKEV4ZWNTdGF0ZSosIGNvbnN0IEphdmFJbnN0YW5jZSosIGNv
bnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHNpZywgSmF2YVR5cGUgcmV0dXJuVHlwZSkgY29u
c3Q7CiAKICAgICBKYXZhU3RyaW5nIG1fbmFtZTsKLSAgICBKYXZhU3RyaW5nIG1fdHlwZTsKLSAg
ICBKTklUeXBlIG1fSk5JVHlwZTsKKyAgICBKYXZhU3RyaW5nIG1fdHlwZUNsYXNzTmFtZTsKKyAg
ICBKYXZhVHlwZSBtX3R5cGU7CiAgICAgUmVmUHRyPEpvYmplY3RXcmFwcGVyPiBtX2ZpZWxkOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3Rh
bmNlSlNDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpT
Qy5jcHAKaW5kZXggOTVkNTE4MDE5NDk3ZGU0MjliZmI4Y2U3Njg2M2Q1ODU2ZjllMWNjMy4uMzY0
MzA0ZjJkYjM4ZTUxZTNlNGNiZTVlM2Y5OTEyOTc2YWQ4NjIwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCkBAIC0yOSw3ICsyOSw2
IEBACiAjaWYgRU5BQkxFKEpBVkFfQlJJREdFKQogCiAjaW5jbHVkZSAiSmF2YVJ1bnRpbWVPYmpl
Y3QuaCIKLSNpbmNsdWRlICJKTklVdGlsaXR5LmgiCiAjaW5jbHVkZSAiSk5JVXRpbGl0eVByaXZh
dGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKYXZhQXJyYXlKU0Mu
aCIKQEAgLTE3OCw3ICsxNzcsNyBAQCBKU1ZhbHVlIEphdmFJbnN0YW5jZTo6aW52b2tlTWV0aG9k
KEV4ZWNTdGF0ZSogZXhlYywgUnVudGltZU1ldGhvZCogcnVudGltZU1ldGhvZAogCiAgICAgZm9y
IChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKICAgICAgICAgQ1N0cmluZyBqYXZhQ2xhc3NOYW1l
ID0gak1ldGhvZC0+cGFyYW1ldGVyQXQoaSkudXRmOCgpOwotICAgICAgICBqQXJnc1tpXSA9IGNv
bnZlcnRWYWx1ZVRvSlZhbHVlKGV4ZWMsIG1fcm9vdE9iamVjdC5nZXQoKSwgZXhlYy0+YXJndW1l
bnQoaSksIEpOSVR5cGVGcm9tQ2xhc3NOYW1lKGphdmFDbGFzc05hbWUuZGF0YSgpKSwgamF2YUNs
YXNzTmFtZS5kYXRhKCkpOworICAgICAgICBqQXJnc1tpXSA9IGNvbnZlcnRWYWx1ZVRvSlZhbHVl
KGV4ZWMsIG1fcm9vdE9iamVjdC5nZXQoKSwgZXhlYy0+YXJndW1lbnQoaSksIGphdmFUeXBlRnJv
bUNsYXNzTmFtZShqYXZhQ2xhc3NOYW1lLmRhdGEoKSksIGphdmFDbGFzc05hbWUuZGF0YSgpKTsK
ICAgICAgICAgTE9HKExpdmVDb25uZWN0LCAiSmF2YUluc3RhbmNlOjppbnZva2VNZXRob2QgYXJn
WyVkXSA9ICVzIiwgaSwgZXhlYy0+YXJndW1lbnQoaSkudG9TdHJpbmcoZXhlYykuYXNjaWkoKS5k
YXRhKCkpOwogICAgIH0KIApAQCAtMTk2LDcgKzE5NSw3IEBAIEpTVmFsdWUgSmF2YUluc3RhbmNl
OjppbnZva2VNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBSdW50aW1lTWV0aG9kKiBydW50aW1lTWV0
aG9kCiAgICAgICAgIGpvYmplY3Qgb2JqID0gbV9pbnN0YW5jZS0+bV9pbnN0YW5jZTsKICAgICAg
ICAgSlNWYWx1ZSBleGNlcHRpb25EZXNjcmlwdGlvbjsKICAgICAgICAgY29uc3QgY2hhciAqY2Fs
bGluZ1VSTCA9IDA7IC8vIEZJWE1FLCBuZWVkIHRvIHByb3BhZ2F0ZSBjYWxsaW5nIFVSTCB0byBK
YXZhCi0gICAgICAgIGhhbmRsZWQgPSBkaXNwYXRjaEpOSUNhbGwoZXhlYywgcm9vdE9iamVjdC0+
bmF0aXZlSGFuZGxlKCksIG9iaiwgak1ldGhvZC0+aXNTdGF0aWMoKSwgak1ldGhvZC0+Sk5JUmV0
dXJuVHlwZSgpLCBqTWV0aG9kLT5tZXRob2RJRChvYmopLCBqQXJncy5kYXRhKCksIHJlc3VsdCwg
Y2FsbGluZ1VSTCwgZXhjZXB0aW9uRGVzY3JpcHRpb24pOworICAgICAgICBoYW5kbGVkID0gZGlz
cGF0Y2hKTklDYWxsKGV4ZWMsIHJvb3RPYmplY3QtPm5hdGl2ZUhhbmRsZSgpLCBvYmosIGpNZXRo
b2QtPmlzU3RhdGljKCksIGpNZXRob2QtPnJldHVyblR5cGUoKSwgak1ldGhvZC0+bWV0aG9kSUQo
b2JqKSwgakFyZ3MuZGF0YSgpLCByZXN1bHQsIGNhbGxpbmdVUkwsIGV4Y2VwdGlvbkRlc2NyaXB0
aW9uKTsKICAgICAgICAgaWYgKGV4Y2VwdGlvbkRlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgICB0
aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZUVycm9yKGV4ZWMsIGV4Y2VwdGlvbkRlc2NyaXB0aW9uLnRv
U3RyaW5nKGV4ZWMpKSk7CiAgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTIw
NywyMSArMjA2LDIxIEBAIEpTVmFsdWUgSmF2YUluc3RhbmNlOjppbnZva2VNZXRob2QoRXhlY1N0
YXRlKiBleGVjLCBSdW50aW1lTWV0aG9kKiBydW50aW1lTWV0aG9kCiAvLyBSZW1vdmUgdGhpcyBn
dWFyZCBvbmNlIEJ1ZyAzOTQ3NiBpcyBmaXhlZC4KICNpZiBQTEFURk9STShBTkRST0lEKSB8fCBk
ZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKQogICAgIGlmICghaGFuZGxlZCkKLSAgICAgICAgcmVz
dWx0ID0gY2FsbEpOSU1ldGhvZChtX2luc3RhbmNlLT5tX2luc3RhbmNlLCBqTWV0aG9kLT5KTklS
ZXR1cm5UeXBlKCksIGpNZXRob2QtPm5hbWUoKS51dGY4KCkuZGF0YSgpLCBqTWV0aG9kLT5zaWdu
YXR1cmUoKSwgakFyZ3MuZGF0YSgpKTsKKyAgICAgICAgcmVzdWx0ID0gY2FsbEpOSU1ldGhvZCht
X2luc3RhbmNlLT5tX2luc3RhbmNlLCBqTWV0aG9kLT5yZXR1cm5UeXBlKCksIGpNZXRob2QtPm5h
bWUoKS51dGY4KCkuZGF0YSgpLCBqTWV0aG9kLT5zaWduYXR1cmUoKSwgakFyZ3MuZGF0YSgpKTsK
ICNlbmRpZgogCi0gICAgc3dpdGNoIChqTWV0aG9kLT5KTklSZXR1cm5UeXBlKCkpIHsKLSAgICBj
YXNlIHZvaWRfdHlwZToKKyAgICBzd2l0Y2ggKGpNZXRob2QtPnJldHVyblR5cGUoKSkgeworICAg
IGNhc2UgSmF2YVR5cGVWb2lkOgogICAgICAgICB7CiAgICAgICAgICAgICByZXN1bHRWYWx1ZSA9
IGpzVW5kZWZpbmVkKCk7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIG9i
amVjdF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVPYmplY3Q6CiAgICAgICAgIHsKICAgICAgICAg
ICAgIGlmIChyZXN1bHQubCkgewotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBhcnJheV90eXBl
IHJldHVybiB0eXBlIGlzIGhhbmRsZWQgYmVsb3csIGNhbiB3ZSBhY3R1YWxseSBnZXQgYW4gYXJy
YXkgaGVyZT8KLSAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBhcnJheVR5cGUgPSBqTWV0aG9k
LT5yZXR1cm5UeXBlKCk7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IEphdmFUeXBlQXJyYXkg
cmV0dXJuIHR5cGUgaXMgaGFuZGxlZCBiZWxvdywgY2FuIHdlIGFjdHVhbGx5IGdldCBhbiBhcnJh
eSBoZXJlPworICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGFycmF5VHlwZSA9IGpNZXRob2Qt
PnJldHVyblR5cGVDbGFzc05hbWUoKTsKICAgICAgICAgICAgICAgICBpZiAoYXJyYXlUeXBlWzBd
ID09ICdbJykKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0VmFsdWUgPSBKYXZhQXJyYXk6OmNv
bnZlcnRKT2JqZWN0VG9BcnJheShleGVjLCByZXN1bHQubCwgYXJyYXlUeXBlLCByb290T2JqZWN0
KTsKICAgICAgICAgICAgICAgICBlbHNlIHsKQEAgLTI0NSw2MyArMjQ0LDYzIEBAIEpTVmFsdWUg
SmF2YUluc3RhbmNlOjppbnZva2VNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBSdW50aW1lTWV0aG9k
KiBydW50aW1lTWV0aG9kCiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIGJv
b2xlYW5fdHlwZToKKyAgICBjYXNlIEphdmFUeXBlQm9vbGVhbjoKICAgICAgICAgewogICAgICAg
ICAgICAgcmVzdWx0VmFsdWUgPSBqc0Jvb2xlYW4ocmVzdWx0LnopOwogICAgICAgICB9CiAgICAg
ICAgIGJyZWFrOwogCi0gICAgY2FzZSBieXRlX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUJ5dGU6
CiAgICAgICAgIHsKICAgICAgICAgICAgIHJlc3VsdFZhbHVlID0ganNOdW1iZXIocmVzdWx0LmIp
OwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBjaGFyX3R5cGU6CisgICAg
Y2FzZSBKYXZhVHlwZUNoYXI6CiAgICAgICAgIHsKICAgICAgICAgICAgIHJlc3VsdFZhbHVlID0g
anNOdW1iZXIocmVzdWx0LmMpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2Fz
ZSBzaG9ydF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVTaG9ydDoKICAgICAgICAgewogICAgICAg
ICAgICAgcmVzdWx0VmFsdWUgPSBqc051bWJlcihyZXN1bHQucyk7CiAgICAgICAgIH0KICAgICAg
ICAgYnJlYWs7CiAKLSAgICBjYXNlIGludF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVJbnQ6CiAg
ICAgICAgIHsKICAgICAgICAgICAgIHJlc3VsdFZhbHVlID0ganNOdW1iZXIocmVzdWx0LmkpOwog
ICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBsb25nX3R5cGU6CisgICAgY2Fz
ZSBKYXZhVHlwZUxvbmc6CiAgICAgICAgIHsKICAgICAgICAgICAgIHJlc3VsdFZhbHVlID0ganNO
dW1iZXIocmVzdWx0LmopOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBm
bG9hdF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVGbG9hdDoKICAgICAgICAgewogICAgICAgICAg
ICAgcmVzdWx0VmFsdWUgPSBqc051bWJlcihyZXN1bHQuZik7CiAgICAgICAgIH0KICAgICAgICAg
YnJlYWs7CiAKLSAgICBjYXNlIGRvdWJsZV90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVEb3VibGU6
CiAgICAgICAgIHsKICAgICAgICAgICAgIHJlc3VsdFZhbHVlID0ganNOdW1iZXIocmVzdWx0LmQp
OwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBhcnJheV90eXBlOgorICAg
IGNhc2UgSmF2YVR5cGVBcnJheToKICAgICAgICAgewotICAgICAgICAgICAgY29uc3QgY2hhciog
YXJyYXlUeXBlID0gak1ldGhvZC0+cmV0dXJuVHlwZSgpOworICAgICAgICAgICAgY29uc3QgY2hh
ciogYXJyYXlUeXBlID0gak1ldGhvZC0+cmV0dXJuVHlwZUNsYXNzTmFtZSgpOwogICAgICAgICAg
ICAgQVNTRVJUKGFycmF5VHlwZVswXSA9PSAnWycpOwogICAgICAgICAgICAgcmVzdWx0VmFsdWUg
PSBKYXZhQXJyYXk6OmNvbnZlcnRKT2JqZWN0VG9BcnJheShleGVjLCByZXN1bHQubCwgYXJyYXlU
eXBlLCByb290T2JqZWN0KTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAotICAgIGNhc2Ug
aW52YWxpZF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVJbnZhbGlkOgogICAgICAgICB7CiAgICAg
ICAgICAgICByZXN1bHRWYWx1ZSA9IGpzVW5kZWZpbmVkKCk7CiAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgvSk5JVXRpbGl0eVByaXZhdGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9KTklVdGlsaXR5UHJpdmF0ZS5jcHAKaW5kZXgg
YWJiZGZiZGI5ZTRmMjMwZDRkNjI1MGUxMDJjNjZkZjQzMDhlYjA2Ny4uNDY5NGMzOGUyMTAxYjA4
NDExMGM5ODdmYzgwZjA4OGNjNmIzOTczMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL2puaS92OC9KTklVdGlsaXR5UHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL2puaS92OC9KTklVdGlsaXR5UHJpdmF0ZS5jcHAKQEAgLTM2LDE2ICszNiwxNiBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogbmFtZXNwYWNlIEJpbmRpbmdzIHsKIAotanZhbHVlIGNvbnZlcnROUFZh
cmlhbnRUb0pWYWx1ZShOUFZhcmlhbnQgdmFsdWUsIGNvbnN0IFdURjo6U3RyaW5nJiBqYXZhVHlw
ZSkKK2p2YWx1ZSBjb252ZXJ0TlBWYXJpYW50VG9KVmFsdWUoTlBWYXJpYW50IHZhbHVlLCBjb25z
dCBXVEY6OlN0cmluZyYgamF2YUNsYXNzKQogewotICAgIENTdHJpbmcgamF2YUNsYXNzTmFtZSA9
IGphdmFUeXBlLnV0ZjgoKTsKLSAgICBKTklUeXBlIGpuaVR5cGUgPSBKTklUeXBlRnJvbUNsYXNz
TmFtZShqYXZhQ2xhc3NOYW1lLmRhdGEoKSk7CisgICAgQ1N0cmluZyBqYXZhQ2xhc3NOYW1lID0g
amF2YUNsYXNzLnV0ZjgoKTsKKyAgICBKYXZhVHlwZSBqYXZhVHlwZSA9IGphdmFUeXBlRnJvbUNs
YXNzTmFtZShqYXZhQ2xhc3NOYW1lLmRhdGEoKSk7CiAgICAganZhbHVlIHJlc3VsdDsKICAgICBO
UFZhcmlhbnRUeXBlIHR5cGUgPSB2YWx1ZS50eXBlOwogCi0gICAgc3dpdGNoIChqbmlUeXBlKSB7
Ci0gICAgY2FzZSBhcnJheV90eXBlOgotICAgIGNhc2Ugb2JqZWN0X3R5cGU6CisgICAgc3dpdGNo
IChqYXZhVHlwZSkgeworICAgIGNhc2UgSmF2YVR5cGVBcnJheToKKyAgICBjYXNlIEphdmFUeXBl
T2JqZWN0OgogICAgICAgICB7CiAgICAgICAgICAgICByZXN1bHQubCA9IHN0YXRpY19jYXN0PGpv
YmplY3Q+KDApOwogCkBAIC04MCw3ICs4MCw3IEBAIGp2YWx1ZSBjb252ZXJ0TlBWYXJpYW50VG9K
VmFsdWUoTlBWYXJpYW50IHZhbHVlLCBjb25zdCBXVEY6OlN0cmluZyYgamF2YVR5cGUpCiAgICAg
ICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIGJvb2xlYW5fdHlwZToKKyAgICBjYXNl
IEphdmFUeXBlQm9vbGVhbjoKICAgICAgICAgewogICAgICAgICAgICAgaWYgKHR5cGUgPT0gTlBW
YXJpYW50VHlwZV9Cb29sKQogICAgICAgICAgICAgICAgIHJlc3VsdC56ID0gTlBWQVJJQU5UX1RP
X0JPT0xFQU4odmFsdWUpOwpAQCAtODksNyArODksNyBAQCBqdmFsdWUgY29udmVydE5QVmFyaWFu
dFRvSlZhbHVlKE5QVmFyaWFudCB2YWx1ZSwgY29uc3QgV1RGOjpTdHJpbmcmIGphdmFUeXBlKQog
ICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBieXRlX3R5cGU6CisgICAgY2Fz
ZSBKYXZhVHlwZUJ5dGU6CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh0eXBlID09IE5QVmFy
aWFudFR5cGVfSW50MzIpCiAgICAgICAgICAgICAgICAgcmVzdWx0LmIgPSBzdGF0aWNfY2FzdDxq
Ynl0ZT4oTlBWQVJJQU5UX1RPX0lOVDMyKHZhbHVlKSk7CkBAIC0xMDAsNyArMTAwLDcgQEAganZh
bHVlIGNvbnZlcnROUFZhcmlhbnRUb0pWYWx1ZShOUFZhcmlhbnQgdmFsdWUsIGNvbnN0IFdURjo6
U3RyaW5nJiBqYXZhVHlwZSkKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAotICAgIGNhc2Ug
Y2hhcl90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVDaGFyOgogICAgICAgICB7CiAgICAgICAgICAg
ICBpZiAodHlwZSA9PSBOUFZhcmlhbnRUeXBlX0ludDMyKQogICAgICAgICAgICAgICAgIHJlc3Vs
dC5jID0gc3RhdGljX2Nhc3Q8Y2hhcj4oTlBWQVJJQU5UX1RPX0lOVDMyKHZhbHVlKSk7CkBAIC0x
MDksNyArMTA5LDcgQEAganZhbHVlIGNvbnZlcnROUFZhcmlhbnRUb0pWYWx1ZShOUFZhcmlhbnQg
dmFsdWUsIGNvbnN0IFdURjo6U3RyaW5nJiBqYXZhVHlwZSkKICAgICAgICAgfQogICAgICAgICBi
cmVhazsKIAotICAgIGNhc2Ugc2hvcnRfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlU2hvcnQ6CiAg
ICAgICAgIHsKICAgICAgICAgICAgIGlmICh0eXBlID09IE5QVmFyaWFudFR5cGVfSW50MzIpCiAg
ICAgICAgICAgICAgICAgcmVzdWx0LnMgPSBzdGF0aWNfY2FzdDxqc2hvcnQ+KE5QVkFSSUFOVF9U
T19JTlQzMih2YWx1ZSkpOwpAQCAtMTIwLDcgKzEyMCw3IEBAIGp2YWx1ZSBjb252ZXJ0TlBWYXJp
YW50VG9KVmFsdWUoTlBWYXJpYW50IHZhbHVlLCBjb25zdCBXVEY6OlN0cmluZyYgamF2YVR5cGUp
CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIGludF90eXBlOgorICAgIGNh
c2UgSmF2YVR5cGVJbnQ6CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh0eXBlID09IE5QVmFy
aWFudFR5cGVfSW50MzIpCiAgICAgICAgICAgICAgICAgcmVzdWx0LmkgPSBzdGF0aWNfY2FzdDxq
aW50PihOUFZBUklBTlRfVE9fSU5UMzIodmFsdWUpKTsKQEAgLTEzMSw3ICsxMzEsNyBAQCBqdmFs
dWUgY29udmVydE5QVmFyaWFudFRvSlZhbHVlKE5QVmFyaWFudCB2YWx1ZSwgY29uc3QgV1RGOjpT
dHJpbmcmIGphdmFUeXBlKQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBs
b25nX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUxvbmc6CiAgICAgICAgIHsKICAgICAgICAgICAg
IGlmICh0eXBlID09IE5QVmFyaWFudFR5cGVfSW50MzIpCiAgICAgICAgICAgICAgICAgcmVzdWx0
LmogPSBzdGF0aWNfY2FzdDxqbG9uZz4oTlBWQVJJQU5UX1RPX0lOVDMyKHZhbHVlKSk7CkBAIC0x
NDIsNyArMTQyLDcgQEAganZhbHVlIGNvbnZlcnROUFZhcmlhbnRUb0pWYWx1ZShOUFZhcmlhbnQg
dmFsdWUsIGNvbnN0IFdURjo6U3RyaW5nJiBqYXZhVHlwZSkKICAgICAgICAgfQogICAgICAgICBi
cmVhazsKIAotICAgIGNhc2UgZmxvYXRfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlRmxvYXQ6CiAg
ICAgICAgIHsKICAgICAgICAgICAgIGlmICh0eXBlID09IE5QVmFyaWFudFR5cGVfSW50MzIpCiAg
ICAgICAgICAgICAgICAgcmVzdWx0LmYgPSBzdGF0aWNfY2FzdDxqZmxvYXQ+KE5QVkFSSUFOVF9U
T19JTlQzMih2YWx1ZSkpOwpAQCAtMTUzLDcgKzE1Myw3IEBAIGp2YWx1ZSBjb252ZXJ0TlBWYXJp
YW50VG9KVmFsdWUoTlBWYXJpYW50IHZhbHVlLCBjb25zdCBXVEY6OlN0cmluZyYgamF2YVR5cGUp
CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIGRvdWJsZV90eXBlOgorICAg
IGNhc2UgSmF2YVR5cGVEb3VibGU6CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh0eXBlID09
IE5QVmFyaWFudFR5cGVfSW50MzIpCiAgICAgICAgICAgICAgICAgcmVzdWx0LmQgPSBzdGF0aWNf
Y2FzdDxqZG91YmxlPihOUFZBUklBTlRfVE9fSU5UMzIodmFsdWUpKTsKQEAgLTE2Niw5ICsxNjYs
OSBAQCBqdmFsdWUgY29udmVydE5QVmFyaWFudFRvSlZhbHVlKE5QVmFyaWFudCB2YWx1ZSwgY29u
c3QgV1RGOjpTdHJpbmcmIGphdmFUeXBlKQogCiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBp
bnZhbGlkX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUludmFsaWQ6CiAgICAgZGVmYXVsdDoKLSAg
ICBjYXNlIHZvaWRfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlVm9pZDoKICAgICAgICAgewogICAg
ICAgICAgICAgbWVtc2V0KCZyZXN1bHQsIDAsIHNpemVvZihqdmFsdWUpKTsKICAgICAgICAgfQpA
QCAtMTc4LDE2ICsxNzgsMTYgQEAganZhbHVlIGNvbnZlcnROUFZhcmlhbnRUb0pWYWx1ZShOUFZh
cmlhbnQgdmFsdWUsIGNvbnN0IFdURjo6U3RyaW5nJiBqYXZhVHlwZSkKIH0KIAogCi12b2lkIGNv
bnZlcnRKVmFsdWVUb05QVmFyaWFudChqdmFsdWUgdmFsdWUsIEpOSVR5cGUgam5pVHlwZSwgY29u
c3QgY2hhciogamF2YVR5cGVOYW1lLCBOUFZhcmlhbnQqIHJlc3VsdCkKK3ZvaWQgY29udmVydEpW
YWx1ZVRvTlBWYXJpYW50KGp2YWx1ZSB2YWx1ZSwgSmF2YVR5cGUgamF2YVR5cGUsIGNvbnN0IGNo
YXIqIGphdmFUeXBlTmFtZSwgTlBWYXJpYW50KiByZXN1bHQpCiB7Ci0gICAgc3dpdGNoIChqbmlU
eXBlKSB7Ci0gICAgY2FzZSB2b2lkX3R5cGU6CisgICAgc3dpdGNoIChqYXZhVHlwZSkgeworICAg
IGNhc2UgSmF2YVR5cGVWb2lkOgogICAgICAgICB7CiAgICAgICAgICAgICBWT0lEX1RPX05QVkFS
SUFOVCgqcmVzdWx0KTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAotICAgIGNhc2Ugb2Jq
ZWN0X3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZU9iamVjdDoKICAgICAgICAgewogICAgICAgICAg
ICAgaWYgKHZhbHVlLmwpIHsKICAgICAgICAgICAgICAgICBpZiAoIXN0cmNtcChqYXZhVHlwZU5h
bWUsICJqYXZhLmxhbmcuU3RyaW5nIikpIHsKQEAgLTIwMyw1NiArMjAzLDU2IEBAIHZvaWQgY29u
dmVydEpWYWx1ZVRvTlBWYXJpYW50KGp2YWx1ZSB2YWx1ZSwgSk5JVHlwZSBqbmlUeXBlLCBjb25z
dCBjaGFyKiBqYXZhVHlwCiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIGJv
b2xlYW5fdHlwZToKKyAgICBjYXNlIEphdmFUeXBlQm9vbGVhbjoKICAgICAgICAgewogICAgICAg
ICAgICAgQk9PTEVBTl9UT19OUFZBUklBTlQodmFsdWUueiwgKnJlc3VsdCk7CiAgICAgICAgIH0K
ICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIGJ5dGVfdHlwZToKKyAgICBjYXNlIEphdmFUeXBl
Qnl0ZToKICAgICAgICAgewogICAgICAgICAgICAgSU5UMzJfVE9fTlBWQVJJQU5UKHZhbHVlLmIs
ICpyZXN1bHQpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBjaGFyX3R5
cGU6CisgICAgY2FzZSBKYXZhVHlwZUNoYXI6CiAgICAgICAgIHsKICAgICAgICAgICAgIElOVDMy
X1RPX05QVkFSSUFOVCh2YWx1ZS5jLCAqcmVzdWx0KTsKICAgICAgICAgfQogICAgICAgICBicmVh
azsKIAotICAgIGNhc2Ugc2hvcnRfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlU2hvcnQ6CiAgICAg
ICAgIHsKICAgICAgICAgICAgIElOVDMyX1RPX05QVkFSSUFOVCh2YWx1ZS5zLCAqcmVzdWx0KTsK
ICAgICAgICAgfQogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgaW50X3R5cGU6CisgICAgY2Fz
ZSBKYXZhVHlwZUludDoKICAgICAgICAgewogICAgICAgICAgICAgSU5UMzJfVE9fTlBWQVJJQU5U
KHZhbHVlLmksICpyZXN1bHQpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCiAgICAgICAg
IC8vIFRPRE86IENoZWNrIGlmIGNhc3QgdG8gZG91YmxlIGlzIG5lZWRlZC4KLSAgICBjYXNlIGxv
bmdfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlTG9uZzoKICAgICAgICAgewogICAgICAgICAgICAg
RE9VQkxFX1RPX05QVkFSSUFOVCh2YWx1ZS5qLCAqcmVzdWx0KTsKICAgICAgICAgfQogICAgICAg
ICBicmVhazsKIAotICAgIGNhc2UgZmxvYXRfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlRmxvYXQ6
CiAgICAgICAgIHsKICAgICAgICAgICAgIERPVUJMRV9UT19OUFZBUklBTlQodmFsdWUuZiwgKnJl
c3VsdCk7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIGRvdWJsZV90eXBl
OgorICAgIGNhc2UgSmF2YVR5cGVEb3VibGU6CiAgICAgICAgIHsKICAgICAgICAgICAgIERPVUJM
RV9UT19OUFZBUklBTlQodmFsdWUuZCwgKnJlc3VsdCk7CiAgICAgICAgIH0KICAgICAgICAgYnJl
YWs7CiAKLSAgICBjYXNlIGludmFsaWRfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlSW52YWxpZDoK
ICAgICBkZWZhdWx0OgogICAgICAgICB7CiAgICAgICAgICAgICBWT0lEX1RPX05QVkFSSUFOVCgq
cmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgvSk5JVXRp
bGl0eVByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgvSk5JVXRpbGl0eVBy
aXZhdGUuaAppbmRleCBkZjczYTllNDZjNzBlZjRlYjRjM2FlMWU0OGM2NGVhMjIyODFlMDg1Li43
OTE1OTM5NjMzZTdhODc4MWZmNTMxMTE2OTVmN2QxN2U3OGFlZmZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvam5pL3Y4L0pOSVV0aWxpdHlQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL2puaS92OC9KTklVdGlsaXR5UHJpdmF0ZS5oCkBAIC0zNiw4ICszNiw4
IEBAIG5hbWVzcGFjZSBKU0MgewogCiBuYW1lc3BhY2UgQmluZGluZ3MgewogCi1qdmFsdWUgY29u
dmVydE5QVmFyaWFudFRvSlZhbHVlKE5QVmFyaWFudCwgY29uc3QgV1RGOjpTdHJpbmcmIGphdmFU
eXBlKTsKLXZvaWQgY29udmVydEpWYWx1ZVRvTlBWYXJpYW50KGp2YWx1ZSwgSk5JVHlwZSwgY29u
c3QgY2hhciogamF2YUNsYXNzTmFtZSwgTlBWYXJpYW50Kik7CitqdmFsdWUgY29udmVydE5QVmFy
aWFudFRvSlZhbHVlKE5QVmFyaWFudCwgY29uc3QgV1RGOjpTdHJpbmcmIGphdmFDbGFzcyk7Cit2
b2lkIGNvbnZlcnRKVmFsdWVUb05QVmFyaWFudChqdmFsdWUsIEphdmFUeXBlLCBjb25zdCBjaGFy
KiBqYXZhQ2xhc3NOYW1lLCBOUFZhcmlhbnQqKTsKIAogfSAvLyBuYW1lc3BhY2UgQmluZGluZ3MK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9KYXZhRmllbGRWOC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL3Y4L0phdmFGaWVsZFY4LmNwcAppbmRleCA2
MjA4MWViMjQ4OWI1NGRjZmQxYzcwNTViZjYyZmZjZTgwZmE5NWZiLi4yYTZkZDBiYTA3MDVhNDli
Y2I1NDc5ZGRmMGVlNDc3ZjQ2MzU5OTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvam5pL3Y4L0phdmFGaWVsZFY4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5p
L3Y4L0phdmFGaWVsZFY4LmNwcApAQCAtMzUsOCArMzUsOCBAQCBKYXZhRmllbGQ6OkphdmFGaWVs
ZChKTklFbnYqIGVudiwgam9iamVjdCBhRmllbGQpCiAgICAgLy8gR2V0IGZpZWxkIHR5cGUKICAg
ICBqb2JqZWN0IGZpZWxkVHlwZSA9IGNhbGxKTklNZXRob2Q8am9iamVjdD4oYUZpZWxkLCAiZ2V0
VHlwZSIsICIoKUxqYXZhL2xhbmcvQ2xhc3M7Iik7CiAgICAganN0cmluZyBmaWVsZFR5cGVOYW1l
ID0gc3RhdGljX2Nhc3Q8anN0cmluZz4oY2FsbEpOSU1ldGhvZDxqb2JqZWN0PihmaWVsZFR5cGUs
ICJnZXROYW1lIiwgIigpTGphdmEvbGFuZy9TdHJpbmc7IikpOwotICAgIG1fdHlwZSA9IEphdmFT
dHJpbmcoZW52LCBmaWVsZFR5cGVOYW1lKTsKLSAgICBtX0pOSVR5cGUgPSBKTklUeXBlRnJvbUNs
YXNzTmFtZShtX3R5cGUudXRmOCgpKTsKKyAgICBtX3R5cGVDbGFzc05hbWUgPSBKYXZhU3RyaW5n
KGVudiwgZmllbGRUeXBlTmFtZSk7CisgICAgbV90eXBlID0gamF2YVR5cGVGcm9tQ2xhc3NOYW1l
KG1fdHlwZUNsYXNzTmFtZS51dGY4KCkpOwogCiAgICAgLy8gR2V0IGZpZWxkIG5hbWUKICAgICBq
c3RyaW5nIGZpZWxkTmFtZSA9IHN0YXRpY19jYXN0PGpzdHJpbmc+KGNhbGxKTklNZXRob2Q8am9i
amVjdD4oYUZpZWxkLCAiZ2V0TmFtZSIsICIoKUxqYXZhL2xhbmcvU3RyaW5nOyIpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgvSmF2YUZpZWxkVjguaCBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgvSmF2YUZpZWxkVjguaAppbmRleCBjYWYyOGJmYjg5ODgx
ZDRhMTU5MWY5ZWYxYWZkZDgxZDViMWZhMDE5Li5kZWZlZDYwZTJjMGVmNTQ3N2YzZTI3ZWExMDRm
MzZlYzEyZDQzYTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL3Y4L0ph
dmFGaWVsZFY4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9KYXZhRmllbGRW
OC5oCkBAIC00MCwxNCArNDAsMTMgQEAgcHVibGljOgogICAgIEphdmFGaWVsZChKTklFbnYqLCBq
b2JqZWN0IGFGaWVsZCk7CiAKICAgICBjb25zdCBKYXZhU3RyaW5nJiBuYW1lKCkgY29uc3QgeyBy
ZXR1cm4gbV9uYW1lOyB9Ci0gICAgY29uc3QgY2hhciogdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dHlwZS51dGY4KCk7IH0KLQotICAgIEpOSVR5cGUgZ2V0Sk5JVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fSk5JVHlwZTsgfQorICAgIGNvbnN0IGNoYXIqIHR5cGVDbGFzc05hbWUoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGVDbGFzc05hbWUudXRmOCgpOyB9CisgICAgSmF2YVR5cGUgdHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZTsgfQogCiBwcml2YXRlOgogICAgIEphdmFTdHJpbmcgbV9uYW1lOwot
ICAgIEphdmFTdHJpbmcgbV90eXBlOwotICAgIEpOSVR5cGUgbV9KTklUeXBlOworICAgIEphdmFT
dHJpbmcgbV90eXBlQ2xhc3NOYW1lOworICAgIEphdmFUeXBlIG1fdHlwZTsKICAgICBSZWZQdHI8
Sm9iamVjdFdyYXBwZXI+IG1fZmllbGQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvam5pL3Y4L0phdmFJbnN0YW5jZVY4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9qbmkvdjgvSmF2YUluc3RhbmNlVjguY3BwCmluZGV4IDAyNDEyMmNhYTJhMjBjYWY1MTcxYjI2
ZDk4MzE2MDMwMWE1YTNmNDAuLmEwNzI5NWM4ZmVhYTI4ZTA3NDc1MjI5MjEyMjA3NjhkMmRiZTJi
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgvSmF2YUluc3RhbmNl
VjguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgvSmF2YUluc3RhbmNlVjgu
Y3BwCkBAIC03MiwxMyArNzIsMTMgQEAgSmF2YUNsYXNzKiBKYXZhSW5zdGFuY2U6OmdldENsYXNz
KCkgY29uc3QKIGp2YWx1ZSBKYXZhSW5zdGFuY2U6Omludm9rZU1ldGhvZChjb25zdCBKYXZhTWV0
aG9kKiBtZXRob2QsIGp2YWx1ZSogYXJncykKIHsKICAgICBBU1NFUlQoZ2V0Q2xhc3MoKS0+bWV0
aG9kc05hbWVkKG1ldGhvZC0+bmFtZSgpLnV0ZjgoKSkuZmluZChtZXRob2QpICE9IG5vdEZvdW5k
KTsKLSAgICByZXR1cm4gY2FsbEpOSU1ldGhvZChqYXZhSW5zdGFuY2UoKSwgbWV0aG9kLT5KTklS
ZXR1cm5UeXBlKCksIG1ldGhvZC0+bmFtZSgpLnV0ZjgoKSwgbWV0aG9kLT5zaWduYXR1cmUoKSwg
YXJncyk7CisgICAgcmV0dXJuIGNhbGxKTklNZXRob2QoamF2YUluc3RhbmNlKCksIG1ldGhvZC0+
cmV0dXJuVHlwZSgpLCBtZXRob2QtPm5hbWUoKS51dGY4KCksIG1ldGhvZC0+c2lnbmF0dXJlKCks
IGFyZ3MpOwogfQogCiBqdmFsdWUgSmF2YUluc3RhbmNlOjpnZXRGaWVsZChjb25zdCBKYXZhRmll
bGQqIGZpZWxkKQogewogICAgIEFTU0VSVChnZXRDbGFzcygpLT5maWVsZE5hbWVkKGZpZWxkLT5u
YW1lKCkudXRmOCgpKSA9PSBmaWVsZCk7Ci0gICAgcmV0dXJuIGdldEpOSUZpZWxkKGphdmFJbnN0
YW5jZSgpLCBmaWVsZC0+Z2V0Sk5JVHlwZSgpLCBmaWVsZC0+bmFtZSgpLnV0ZjgoKSwgZmllbGQt
PnR5cGUoKSk7CisgICAgcmV0dXJuIGdldEpOSUZpZWxkKGphdmFJbnN0YW5jZSgpLCBmaWVsZC0+
dHlwZSgpLCBmaWVsZC0+bmFtZSgpLnV0ZjgoKSwgZmllbGQtPnR5cGVDbGFzc05hbWUoKSk7CiB9
CiAKICNlbmRpZiAvLyBFTkFCTEUoSkFWQV9CUklER0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvam5pL3Y4L0phdmFOUE9iamVjdFY4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9qbmkvdjgvSmF2YU5QT2JqZWN0VjguY3BwCmluZGV4IDJjMTU0MGIzZDdkMzY4MTQ5ODU5
ZGE5NWFhYzMyYzlhZTk3MzQzMzguLjA5MTc0MDcyOGJkZmYzMzFjNGEyYzZiMzIzMWJjM2RlNjVi
MzBiZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgvSmF2YU5QT2Jq
ZWN0VjguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgvSmF2YU5QT2JqZWN0
VjguY3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgYm9vbCBKYXZhTlBPYmplY3RJbnZva2UoTlBPYmpl
Y3QqIG9iaiwgTlBJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IE5QVmFyaWFudCoKICAgICBm
cmVlKGpBcmdzKTsKIAogICAgIFZPSURfVE9fTlBWQVJJQU5UKCpyZXN1bHQpOwotICAgIGNvbnZl
cnRKVmFsdWVUb05QVmFyaWFudChqUmVzdWx0LCBqTWV0aG9kLT5KTklSZXR1cm5UeXBlKCksIGpN
ZXRob2QtPnJldHVyblR5cGUoKSwgcmVzdWx0KTsKKyAgICBjb252ZXJ0SlZhbHVlVG9OUFZhcmlh
bnQoalJlc3VsdCwgak1ldGhvZC0+cmV0dXJuVHlwZSgpLCBqTWV0aG9kLT5yZXR1cm5UeXBlQ2xh
c3NOYW1lKCksIHJlc3VsdCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTE4OSw3ICsxODks
NyBAQCBib29sIEphdmFOUE9iamVjdEdldFByb3BlcnR5KE5QT2JqZWN0KiBvYmosIE5QSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBOUFZhcmlhbnQqCiAgICAganZhbHVlIHZhbHVlID0gaW5zdGFuY2Ut
PmdldEZpZWxkKGZpZWxkKTsKICAgICBpbnN0YW5jZS0+ZW5kKCk7CiAKLSAgICBjb252ZXJ0SlZh
bHVlVG9OUFZhcmlhbnQodmFsdWUsIGZpZWxkLT5nZXRKTklUeXBlKCksIGZpZWxkLT50eXBlKCks
IHJlc3VsdCk7CisgICAgY29udmVydEpWYWx1ZVRvTlBWYXJpYW50KHZhbHVlLCBmaWVsZC0+dHlw
ZSgpLCBmaWVsZC0+dHlwZUNsYXNzTmFtZSgpLCByZXN1bHQpOwogCiAgICAgcmV0dXJuIHRydWU7
CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86728</attachid>
            <date>2011-03-23 17:57:40 -0700</date>
            <delta_ts>2011-03-24 03:46:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56197-20110324005735.patch</filename>
            <type>text/plain</type>
            <size>64569</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODE4MzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NTFlMzJiYzJhZmQyNzhk
YzkxOTRjMWZlZTAxMTk0MzE5N2QzNjdjLi5iYjE0ZjVkMDM1MjZkODI2ZTFkZDZlMmRhM2I3NDAw
MDYxYWNiMjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMTEtMDMtMTEgIFN0ZXZl
IEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEpOSVR5cGUgaXMgbm90IHNwZWNpZmljIHRvIEpOSSBz
byBzaG91bGQgYmUgcmVuYW1lZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTYxOTcKKworICAgICAgICBUaGlzIHBhdGNoIHJlbmFtZXMgSk5JVHlwZSB0
byBKYXZhVHlwZSwgcmVuYW1lcyB0aGUgdmFsdWVzIG9mCisgICAgICAgIHRoZSBlbnVtLCBhbmQg
bW92ZXMgaXQgb3V0IG9mIEpOSVV0aWxpdHkuaCB0byBpdHMgb3duIGZpbGUuCisgICAgICAgIEFs
c28gcmVuYW1lcyB0aGUgY29ycmVzcG9uZGluZyBKYXZhRmllbGQgYW5kIEphdmFNZXRob2QgZ2V0
dGVycy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yaW5nIG9ubHkuCisKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJyaWRnZS9qbmkv
Sk5JVXRpbGl0eS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpqYXZhVHlwZUZyb21DbGFz
c05hbWUpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6c2lnbmF0dXJlRnJvbUphdmFUeXBlKToK
KyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmphdmFUeXBlRnJvbVByaW1pdGl2ZVR5cGUpOgorICAg
ICAgICAoSlNDOjpCaW5kaW5nczo6Z2V0Sk5JRmllbGQpOgorICAgICAgICAoSlNDOjpCaW5kaW5n
czo6Y2FsbEpOSU1ldGhvZCk6CisgICAgICAgICogYnJpZGdlL2puaS9KTklVdGlsaXR5Lmg6Cisg
ICAgICAgICogYnJpZGdlL2puaS9KYXZhTWV0aG9kLmNwcDoKKyAgICAgICAgKEphdmFNZXRob2Q6
OkphdmFNZXRob2QpOgorICAgICAgICAoSmF2YU1ldGhvZDo6c2lnbmF0dXJlKToKKyAgICAgICAg
KiBicmlkZ2Uvam5pL0phdmFNZXRob2QuaDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkphdmFN
ZXRob2Q6OnJldHVyblR5cGVDbGFzc05hbWUpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6SmF2
YU1ldGhvZDo6cmV0dXJuVHlwZSk6CisgICAgICAgICogYnJpZGdlL2puaS9KYXZhVHlwZS5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL0phdmFNZXRob2QuaC4KKyAgICAg
ICAgKiBicmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbToKKyAgICAgICAgKEphdmFKU09iamVjdDo6
dG9TdHJpbmcpOgorICAgICAgICAqIGJyaWRnZS9qbmkvam5pX29iamMubW06CisgICAgICAgIChK
U0M6OkJpbmRpbmdzOjpkaXNwYXRjaEpOSUNhbGwpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNj
L0pOSVV0aWxpdHlQcml2YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNvbnZlcnRB
cnJheUluc3RhbmNlVG9KYXZhQXJyYXkpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Y29udmVy
dFZhbHVlVG9KVmFsdWUpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0pOSVV0aWxpdHlQcml2
YXRlLmg6CisgICAgICAgICogYnJpZGdlL2puaS9qc2MvSmF2YUFycmF5SlNDLmNwcDoKKyAgICAg
ICAgKEphdmFBcnJheTo6c2V0VmFsdWVBdCk6CisgICAgICAgIChKYXZhQXJyYXk6OnZhbHVlQXQp
OgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0phdmFDbGFzc0pTQy5jcHA6CisgICAgICAgICog
YnJpZGdlL2puaS9qc2MvSmF2YUZpZWxkSlNDLmNwcDoKKyAgICAgICAgKEphdmFGaWVsZDo6SmF2
YUZpZWxkKToKKyAgICAgICAgKEphdmFGaWVsZDo6ZGlzcGF0Y2hWYWx1ZUZyb21JbnN0YW5jZSk6
CisgICAgICAgIChKYXZhRmllbGQ6OnZhbHVlRnJvbUluc3RhbmNlKToKKyAgICAgICAgKEphdmFG
aWVsZDo6ZGlzcGF0Y2hTZXRWYWx1ZVRvSW5zdGFuY2UpOgorICAgICAgICAoSmF2YUZpZWxkOjpz
ZXRWYWx1ZVRvSW5zdGFuY2UpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0phdmFGaWVsZEpT
Qy5oOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6SmF2YUZpZWxkOjp0eXBlQ2xhc3NOYW1lKToK
KyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkphdmFGaWVsZDo6dHlwZSk6CisgICAgICAgICogYnJp
ZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcDoKKyAgICAgICAgKEphdmFJbnN0YW5jZTo6
aW52b2tlTWV0aG9kKToKKyAgICAgICAgKiBicmlkZ2Uvam5pL3Y4L0pOSVV0aWxpdHlQcml2YXRl
LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNvbnZlcnROUFZhcmlhbnRUb0pWYWx1ZSk6
CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpjb252ZXJ0SlZhbHVlVG9OUFZhcmlhbnQpOgorICAg
ICAgICAqIGJyaWRnZS9qbmkvdjgvSk5JVXRpbGl0eVByaXZhdGUuaDoKKyAgICAgICAgKiBicmlk
Z2Uvam5pL3Y4L0phdmFGaWVsZFY4LmNwcDoKKyAgICAgICAgKEphdmFGaWVsZDo6SmF2YUZpZWxk
KToKKyAgICAgICAgKiBicmlkZ2Uvam5pL3Y4L0phdmFGaWVsZFY4Lmg6CisgICAgICAgIChKU0M6
OkJpbmRpbmdzOjpKYXZhRmllbGQ6OnR5cGVDbGFzc05hbWUpOgorICAgICAgICAoSlNDOjpCaW5k
aW5nczo6SmF2YUZpZWxkOjp0eXBlKToKKyAgICAgICAgKiBicmlkZ2Uvam5pL3Y4L0phdmFJbnN0
YW5jZVY4LmNwcDoKKyAgICAgICAgKEphdmFJbnN0YW5jZTo6aW52b2tlTWV0aG9kKToKKyAgICAg
ICAgKEphdmFJbnN0YW5jZTo6Z2V0RmllbGQpOgorICAgICAgICAqIGJyaWRnZS9qbmkvdjgvSmF2
YU5QT2JqZWN0VjguY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6SmF2YU5QT2JqZWN0SW52
b2tlKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkphdmFOUE9iamVjdEdldFByb3BlcnR5KToK
KwogMjAxMS0wMy0yMyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgQXR0ZW1wdCB0byBmaXggdGhlIGJ1aWxkIGZvciBwbGF0Zm9ybXMgdGhhdCBoYXZlIHRoZSBp
Y29uIGRhdGFiYXNlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0g
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA2Nzc4ZTU2ZTg3YWQ3NGFlZDli
ZWRhYzAzNWEwM2VjOTRhNDIzOTI3Li5hNDQ3M2I0MzVmYmY5ZGE5MjU5NDhlMWMzYmM1MzRjNmZj
NmQzMDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtOTQ5LDYgKzk0OSw3IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9KTklVdGlsaXR5LmggXAog
CVNvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvSmF2YU1ldGhvZC5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvam5pL0phdmFTdHJpbmcuaCBcCisJU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9K
YXZhVHlwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2puaV9qc29iamVjdC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhQXJyYXlKU0MuaCBcCiAJU291cmNl
L1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUNsYXNzSlNDLmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDliZjU3YjE0N2MyZGFkNTQ3M2I1ODRhYzhjZDI1NzY2YmZjMTY5MWUuLmQ1NDY0YjY3ZWI1
NTViMjZmYjc0ODI5ZjE5MzQ1YWU0YmVjY2UyMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIxNjYs
NiArMjE2Niw3IEBACiAgICAgICAgICAgICAnYnJpZGdlL2puaS9KYXZhTWV0aG9kLmNwcCcsCiAg
ICAgICAgICAgICAnYnJpZGdlL2puaS9KYXZhTWV0aG9kLmgnLAogICAgICAgICAgICAgJ2JyaWRn
ZS9qbmkvSmF2YVN0cmluZy5oJywKKyAgICAgICAgICAgICdicmlkZ2Uvam5pL0phdmFUeXBlLmgn
LAogICAgICAgICAgICAgJ2JyaWRnZS9qbmkvSm9iamVjdFdyYXBwZXIuY3BwJywKICAgICAgICAg
ICAgICdicmlkZ2Uvam5pL0pvYmplY3RXcmFwcGVyLmgnLAogICAgICAgICAgICAgJ2JyaWRnZS9q
bmkvam5pX2pzb2JqZWN0Lm1tJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ZDFiY2ViZmZkN2E3ZTI2ZjMxNDlhODY0ZWU4YTE2
MzU0YTdjM2I3Li4yYjE2NTI0OWQxOGE4ZDJlNzU4NDA2MDI2MjMzZDYwMDMzN2UwNGZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xNDIzLDYgKzE0MjMsNyBAQAogCQk1OUE4RjFEODExQTY5NTIwMDAxQUMzNEEgLyogRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU5QThGMUQ3MTFBNjk1MjAwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTU5QTlFN0IwMTEwNDc1ODgwMERGQjRDMSAvKiBKYXZhSW5zdGFuY2VKU0MuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTlBOUU3QUYxMTA0NzU4ODAw
REZCNEMxIC8qIEphdmFJbnN0YW5jZUpTQy5jcHAgKi87IH07CiAJCTU5QTlFN0IyMTEwNDc1OTQw
MERGQjRDMSAvKiBKYXZhSW5zdGFuY2VKU0MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU5QTlFN0IxMTEwNDc1OTQwMERGQjRDMSAvKiBKYXZhSW5zdGFu
Y2VKU0MuaCAqLzsgfTsKKwkJNTlCMEVFQTcxMzJBNkYyQTAwNDMzMUM3IC8qIEphdmFUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OUIwRUVBNjEz
MkE2RjJBMDA0MzMxQzcgLyogSmF2YVR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk1OUI1OTc3MzExMDg2NTZCMDA3MTU5RTggLyogQnJpZGdl
SlNDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5
QjU5NzcyMTEwODY1NkIwMDcxNTlFOCAvKiBCcmlkZ2VKU0MuY3BwICovOyB9OwogCQk1OUI1OTc3
NTExMDg2NTc5MDA3MTU5RTggLyogQnJpZGdlSlNDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OUI1OTc3NDExMDg2NTc5MDA3MTU5RTggLyogQnJpZGdl
SlNDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTlCQzM5M0YxMTA1NEExMzAwRkQ4NURCIC8qIEphdmFTdHJpbmdKU0MuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5QkMzOTNFMTEwNTRBMTMwMEZEODVE
QiAvKiBKYXZhU3RyaW5nSlNDLmggKi87IH07CkBAIC03OTM0LDYgKzc5MzUsNyBAQAogCQk1OUE4
RjFENzExQTY5NTIwMDAxQUMzNEEgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTlBOUU3QUYxMTA0NzU4ODAwREZCNEMxIC8qIEph
dmFJbnN0YW5jZUpTQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBK
YXZhSW5zdGFuY2VKU0MuY3BwOyBwYXRoID0ganNjL0phdmFJbnN0YW5jZUpTQy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5QTlFN0IxMTEwNDc1OTQwMERGQjRDMSAvKiBKYXZh
SW5zdGFuY2VKU0MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSmF2YUluc3Rh
bmNlSlNDLmg7IHBhdGggPSBqc2MvSmF2YUluc3RhbmNlSlNDLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTU5QjBFRUE2MTMyQTZGMkEwMDQzMzFDNyAvKiBKYXZhVHlwZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1OUI1OTc3MjExMDg2NTZCMDA3MTU5RTggLyogQnJpZGdlSlNDLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEJyaWRnZUpTQy5jcHA7IHBhdGgg
PSBicmlkZ2UvanNjL0JyaWRnZUpTQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU5QjU5Nzc0MTEwODY1NzkwMDcxNTlFOCAvKiBCcmlkZ2VKU0MuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gQnJpZGdlSlNDLmg7IHBhdGggPSBicmlkZ2UvanNjL0JyaWRnZUpT
Qy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OUJDMzkzRTExMDU0QTEzMDBGRDg1
REIgLyogSmF2YVN0cmluZ0pTQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBK
YXZhU3RyaW5nSlNDLmg7IHBhdGggPSBqc2MvSmF2YVN0cmluZ0pTQy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTI4MzYsNiArMTI4MzgsNyBAQAogCQkxQTU2OUNDRTBEN0UyQjgy
MDA3QzM5ODMgLyogam5pICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQk1OUIwRUVBNjEzMkE2RjJBMDA0MzMxQzcgLyogSmF2YVR5cGUuaCAqLywKIAkJCQk1
OTNEM0VCMDEzMjUzMjk1MDA1N0U3RUUgLyogSmF2YVN0cmluZy5oICovLAogCQkJCTU5M0QzRUFF
MTMyNTMyOEMwMDU3RTdFRSAvKiBKYXZhTWV0aG9kLmggKi8sCiAJCQkJNTkzRDNFQUMxMzI1MzI4
NDAwNTdFN0VFIC8qIEphdmFNZXRob2QuY3BwICovLApAQCAtMjI2OTQsNiArMjI2OTcsNyBAQAog
CQkJCTMxOUU2OUI2MTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzc3MkUxMzEzMzE2MjBDMDAxRUM5Q0UgLyogQ1NTTGluZUJveENv
bnRhaW5WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEYxNDQyMjkxMzM5RkQ2MjAwRTBENkY4
IC8qIERPTU5vZGVIaWdobGlnaHRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTlCMEVFQTcxMzJB
NkYyQTAwNDMzMUM3IC8qIEphdmFUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvSk5JVXRpbGl0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvam5pL0pOSVV0aWxpdHkuY3BwCmluZGV4IGZkNDRhMGMwMWEwZDY4Zjc3ZWFlN2RiYjhl
N2YwY2I4MzQ2N2E0NDkuLmMxZjFiOTQxZTA4YjdhMWU5Nzk0YjllNmQwODhkYWIxN2ZiNGI0NWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvSk5JVXRpbGl0eS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9KTklVdGlsaXR5LmNwcApAQCAtMTY2LDEyMiAr
MTY2LDEyMiBAQCB2b2lkIHJlbGVhc2VVQ2hhcmFjdGVyc0ZvckpTdHJpbmdJbkVudihKTklFbnYq
IGVudiwganN0cmluZyBhSlN0cmluZywgY29uc3QgamNoYQogICAgIGVudi0+UmVsZWFzZVN0cmlu
Z0NoYXJzKGFKU3RyaW5nLCBzKTsKIH0KIAotSk5JVHlwZSBKTklUeXBlRnJvbUNsYXNzTmFtZShj
b25zdCBjaGFyKiBuYW1lKQorSmF2YVR5cGUgamF2YVR5cGVGcm9tQ2xhc3NOYW1lKGNvbnN0IGNo
YXIqIG5hbWUpCiB7Ci0gICAgSk5JVHlwZSB0eXBlOworICAgIEphdmFUeXBlIHR5cGU7CiAKICAg
ICBpZiAoIXN0cmNtcCgiYnl0ZSIsIG5hbWUpKQotICAgICAgICB0eXBlID0gYnl0ZV90eXBlOwor
ICAgICAgICB0eXBlID0gSmF2YVR5cGVCeXRlOwogICAgIGVsc2UgaWYgKCFzdHJjbXAoInNob3J0
IiwgbmFtZSkpCi0gICAgICAgIHR5cGUgPSBzaG9ydF90eXBlOworICAgICAgICB0eXBlID0gSmF2
YVR5cGVTaG9ydDsKICAgICBlbHNlIGlmICghc3RyY21wKCJpbnQiLCBuYW1lKSkKLSAgICAgICAg
dHlwZSA9IGludF90eXBlOworICAgICAgICB0eXBlID0gSmF2YVR5cGVJbnQ7CiAgICAgZWxzZSBp
ZiAoIXN0cmNtcCgibG9uZyIsIG5hbWUpKQotICAgICAgICB0eXBlID0gbG9uZ190eXBlOworICAg
ICAgICB0eXBlID0gSmF2YVR5cGVMb25nOwogICAgIGVsc2UgaWYgKCFzdHJjbXAoImZsb2F0Iiwg
bmFtZSkpCi0gICAgICAgIHR5cGUgPSBmbG9hdF90eXBlOworICAgICAgICB0eXBlID0gSmF2YVR5
cGVGbG9hdDsKICAgICBlbHNlIGlmICghc3RyY21wKCJkb3VibGUiLCBuYW1lKSkKLSAgICAgICAg
dHlwZSA9IGRvdWJsZV90eXBlOworICAgICAgICB0eXBlID0gSmF2YVR5cGVEb3VibGU7CiAgICAg
ZWxzZSBpZiAoIXN0cmNtcCgiY2hhciIsIG5hbWUpKQotICAgICAgICB0eXBlID0gY2hhcl90eXBl
OworICAgICAgICB0eXBlID0gSmF2YVR5cGVDaGFyOwogICAgIGVsc2UgaWYgKCFzdHJjbXAoImJv
b2xlYW4iLCBuYW1lKSkKLSAgICAgICAgdHlwZSA9IGJvb2xlYW5fdHlwZTsKKyAgICAgICAgdHlw
ZSA9IEphdmFUeXBlQm9vbGVhbjsKICAgICBlbHNlIGlmICghc3RyY21wKCJ2b2lkIiwgbmFtZSkp
Ci0gICAgICAgIHR5cGUgPSB2b2lkX3R5cGU7CisgICAgICAgIHR5cGUgPSBKYXZhVHlwZVZvaWQ7
CiAgICAgZWxzZSBpZiAoJ1snID09IG5hbWVbMF0pCi0gICAgICAgIHR5cGUgPSBhcnJheV90eXBl
OworICAgICAgICB0eXBlID0gSmF2YVR5cGVBcnJheTsKICAgICBlbHNlCi0gICAgICAgIHR5cGUg
PSBvYmplY3RfdHlwZTsKKyAgICAgICAgdHlwZSA9IEphdmFUeXBlT2JqZWN0OwogCiAgICAgcmV0
dXJuIHR5cGU7CiB9CiAKLWNvbnN0IGNoYXIqIHNpZ25hdHVyZUZyb21QcmltaXRpdmVUeXBlKEpO
SVR5cGUgdHlwZSkKK2NvbnN0IGNoYXIqIHNpZ25hdHVyZUZyb21KYXZhVHlwZShKYXZhVHlwZSB0
eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNhc2Ugdm9pZF90eXBlOgorICAgIGNh
c2UgSmF2YVR5cGVWb2lkOgogICAgICAgICByZXR1cm4gIlYiOwogCi0gICAgY2FzZSBhcnJheV90
eXBlOgorICAgIGNhc2UgSmF2YVR5cGVBcnJheToKICAgICAgICAgcmV0dXJuICJbIjsKIAotICAg
IGNhc2Ugb2JqZWN0X3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZU9iamVjdDoKICAgICAgICAgcmV0
dXJuICJMIjsKIAotICAgIGNhc2UgYm9vbGVhbl90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVCb29s
ZWFuOgogICAgICAgICByZXR1cm4gIloiOwogCi0gICAgY2FzZSBieXRlX3R5cGU6CisgICAgY2Fz
ZSBKYXZhVHlwZUJ5dGU6CiAgICAgICAgIHJldHVybiAiQiI7CiAKLSAgICBjYXNlIGNoYXJfdHlw
ZToKKyAgICBjYXNlIEphdmFUeXBlQ2hhcjoKICAgICAgICAgcmV0dXJuICJDIjsKIAotICAgIGNh
c2Ugc2hvcnRfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlU2hvcnQ6CiAgICAgICAgIHJldHVybiAi
UyI7CiAKLSAgICBjYXNlIGludF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVJbnQ6CiAgICAgICAg
IHJldHVybiAiSSI7CiAKLSAgICBjYXNlIGxvbmdfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlTG9u
ZzoKICAgICAgICAgcmV0dXJuICJKIjsKIAotICAgIGNhc2UgZmxvYXRfdHlwZToKKyAgICBjYXNl
IEphdmFUeXBlRmxvYXQ6CiAgICAgICAgIHJldHVybiAiRiI7CiAKLSAgICBjYXNlIGRvdWJsZV90
eXBlOgorICAgIGNhc2UgSmF2YVR5cGVEb3VibGU6CiAgICAgICAgIHJldHVybiAiRCI7CiAKLSAg
ICBjYXNlIGludmFsaWRfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlSW52YWxpZDoKICAgICBkZWZh
dWx0OgogICAgICAgICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuICIiOwogfQogCi1KTklUeXBl
IEpOSVR5cGVGcm9tUHJpbWl0aXZlVHlwZShjaGFyIHR5cGUpCitKYXZhVHlwZSBqYXZhVHlwZUZy
b21QcmltaXRpdmVUeXBlKGNoYXIgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBj
YXNlICdWJzoKLSAgICAgICAgcmV0dXJuIHZvaWRfdHlwZTsKKyAgICAgICAgcmV0dXJuIEphdmFU
eXBlVm9pZDsKIAogICAgIGNhc2UgJ0wnOgotICAgICAgICByZXR1cm4gb2JqZWN0X3R5cGU7Cisg
ICAgICAgIHJldHVybiBKYXZhVHlwZU9iamVjdDsKIAogICAgIGNhc2UgJ1snOgotICAgICAgICBy
ZXR1cm4gYXJyYXlfdHlwZTsKKyAgICAgICAgcmV0dXJuIEphdmFUeXBlQXJyYXk7CiAKICAgICBj
YXNlICdaJzoKLSAgICAgICAgcmV0dXJuIGJvb2xlYW5fdHlwZTsKKyAgICAgICAgcmV0dXJuIEph
dmFUeXBlQm9vbGVhbjsKIAogICAgIGNhc2UgJ0InOgotICAgICAgICByZXR1cm4gYnl0ZV90eXBl
OworICAgICAgICByZXR1cm4gSmF2YVR5cGVCeXRlOwogCiAgICAgY2FzZSAnQyc6Ci0gICAgICAg
IHJldHVybiBjaGFyX3R5cGU7CisgICAgICAgIHJldHVybiBKYXZhVHlwZUNoYXI7CiAKICAgICBj
YXNlICdTJzoKLSAgICAgICAgcmV0dXJuIHNob3J0X3R5cGU7CisgICAgICAgIHJldHVybiBKYXZh
VHlwZVNob3J0OwogCiAgICAgY2FzZSAnSSc6Ci0gICAgICAgIHJldHVybiBpbnRfdHlwZTsKKyAg
ICAgICAgcmV0dXJuIEphdmFUeXBlSW50OwogCiAgICAgY2FzZSAnSic6Ci0gICAgICAgIHJldHVy
biBsb25nX3R5cGU7CisgICAgICAgIHJldHVybiBKYXZhVHlwZUxvbmc7CiAKICAgICBjYXNlICdG
JzoKLSAgICAgICAgcmV0dXJuIGZsb2F0X3R5cGU7CisgICAgICAgIHJldHVybiBKYXZhVHlwZUZs
b2F0OwogCiAgICAgY2FzZSAnRCc6Ci0gICAgICAgIHJldHVybiBkb3VibGVfdHlwZTsKKyAgICAg
ICAgcmV0dXJuIEphdmFUeXBlRG91YmxlOwogCiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7
CiAgICAgfQotICAgIHJldHVybiBpbnZhbGlkX3R5cGU7CisgICAgcmV0dXJuIEphdmFUeXBlSW52
YWxpZDsKIH0KIAotanZhbHVlIGdldEpOSUZpZWxkKGpvYmplY3Qgb2JqLCBKTklUeXBlIHR5cGUs
IGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHNpZ25hdHVyZSkKK2p2YWx1ZSBnZXRKTklG
aWVsZChqb2JqZWN0IG9iaiwgSmF2YVR5cGUgdHlwZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3Qg
Y2hhciogc2lnbmF0dXJlKQogewogICAgIEphdmFWTSoganZtID0gZ2V0SmF2YVZNKCk7CiAgICAg
Sk5JRW52KiBlbnYgPSBnZXRKTklFbnYoKTsKQEAgLTI5NCwzMiArMjk0LDMyIEBAIGp2YWx1ZSBn
ZXRKTklGaWVsZChqb2JqZWN0IG9iaiwgSk5JVHlwZSB0eXBlLCBjb25zdCBjaGFyKiBuYW1lLCBj
b25zdCBjaGFyKiBzaWduCiAgICAgICAgICAgICBqZmllbGRJRCBmaWVsZCA9IGVudi0+R2V0Rmll
bGRJRChjbHMsIG5hbWUsIHNpZ25hdHVyZSk7CiAgICAgICAgICAgICBpZiAoZmllbGQpIHsKICAg
ICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgICAgICAgICBjYXNlIGFycmF5
X3R5cGU6Ci0gICAgICAgICAgICAgICAgY2FzZSBvYmplY3RfdHlwZToKKyAgICAgICAgICAgICAg
ICBjYXNlIEphdmFUeXBlQXJyYXk6CisgICAgICAgICAgICAgICAgY2FzZSBKYXZhVHlwZU9iamVj
dDoKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmwgPSBlbnYtPmZ1bmN0aW9ucy0+R2V0T2Jq
ZWN0RmllbGQoZW52LCBvYmosIGZpZWxkKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgY2FzZSBib29sZWFuX3R5cGU6CisgICAgICAgICAgICAgICAgY2FzZSBK
YXZhVHlwZUJvb2xlYW46CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC56ID0gZW52LT5mdW5j
dGlvbnMtPkdldEJvb2xlYW5GaWVsZChlbnYsIG9iaiwgZmllbGQpOwogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIGJ5dGVfdHlwZToKKyAgICAgICAgICAg
ICAgICBjYXNlIEphdmFUeXBlQnl0ZToKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmIgPSBl
bnYtPmZ1bmN0aW9ucy0+R2V0Qnl0ZUZpZWxkKGVudiwgb2JqLCBmaWVsZCk7CiAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgY2hhcl90eXBlOgorICAgICAg
ICAgICAgICAgIGNhc2UgSmF2YVR5cGVDaGFyOgogICAgICAgICAgICAgICAgICAgICByZXN1bHQu
YyA9IGVudi0+ZnVuY3Rpb25zLT5HZXRDaGFyRmllbGQoZW52LCBvYmosIGZpZWxkKTsKICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBzaG9ydF90eXBlOgor
ICAgICAgICAgICAgICAgIGNhc2UgSmF2YVR5cGVTaG9ydDoKICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0LnMgPSBlbnYtPmZ1bmN0aW9ucy0+R2V0U2hvcnRGaWVsZChlbnYsIG9iaiwgZmllbGQp
OwogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIGludF90
eXBlOgorICAgICAgICAgICAgICAgIGNhc2UgSmF2YVR5cGVJbnQ6CiAgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdC5pID0gZW52LT5mdW5jdGlvbnMtPkdldEludEZpZWxkKGVudiwgb2JqLCBmaWVs
ZCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgbG9u
Z190eXBlOgorICAgICAgICAgICAgICAgIGNhc2UgSmF2YVR5cGVMb25nOgogICAgICAgICAgICAg
ICAgICAgICByZXN1bHQuaiA9IGVudi0+ZnVuY3Rpb25zLT5HZXRMb25nRmllbGQoZW52LCBvYmos
IGZpZWxkKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2Fz
ZSBmbG9hdF90eXBlOgorICAgICAgICAgICAgICAgIGNhc2UgSmF2YVR5cGVGbG9hdDoKICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0LmYgPSBlbnYtPmZ1bmN0aW9ucy0+R2V0RmxvYXRGaWVsZChl
bnYsIG9iaiwgZmllbGQpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICBjYXNlIGRvdWJsZV90eXBlOgorICAgICAgICAgICAgICAgIGNhc2UgSmF2YVR5cGVEb3Vi
bGU6CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5kID0gZW52LT5mdW5jdGlvbnMtPkdldERv
dWJsZUZpZWxkKGVudiwgb2JqLCBmaWVsZCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgIGRlZmF1bHQ6CkBAIC0zNDAsMzkgKzM0MCwzOSBAQCBqdmFsdWUgZ2V0
Sk5JRmllbGQoam9iamVjdCBvYmosIEpOSVR5cGUgdHlwZSwgY29uc3QgY2hhciogbmFtZSwgY29u
c3QgY2hhciogc2lnbgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWp2YWx1ZSBjYWxsSk5JTWV0
aG9kKGpvYmplY3Qgb2JqZWN0LCBKTklUeXBlIHJldHVyblR5cGUsIGNvbnN0IGNoYXIqIG5hbWUs
IGNvbnN0IGNoYXIqIHNpZ25hdHVyZSwganZhbHVlKiBhcmdzKQoranZhbHVlIGNhbGxKTklNZXRo
b2Qoam9iamVjdCBvYmplY3QsIEphdmFUeXBlIHJldHVyblR5cGUsIGNvbnN0IGNoYXIqIG5hbWUs
IGNvbnN0IGNoYXIqIHNpZ25hdHVyZSwganZhbHVlKiBhcmdzKQogewogICAgIGptZXRob2RJRCBt
ZXRob2RJZCA9IGdldE1ldGhvZElEKG9iamVjdCwgbmFtZSwgc2lnbmF0dXJlKTsKICAgICBqdmFs
dWUgcmVzdWx0OwogICAgIHN3aXRjaCAocmV0dXJuVHlwZSkgewotICAgIGNhc2Ugdm9pZF90eXBl
OgorICAgIGNhc2UgSmF2YVR5cGVWb2lkOgogICAgICAgICBjYWxsSk5JTWV0aG9kSURBPHZvaWQ+
KG9iamVjdCwgbWV0aG9kSWQsIGFyZ3MpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIG9iamVj
dF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVPYmplY3Q6CiAgICAgICAgIHJlc3VsdC5sID0gY2Fs
bEpOSU1ldGhvZElEQTxqb2JqZWN0PihvYmplY3QsIG1ldGhvZElkLCBhcmdzKTsKICAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBib29sZWFuX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUJvb2xlYW46
CiAgICAgICAgIHJlc3VsdC56ID0gY2FsbEpOSU1ldGhvZElEQTxqYm9vbGVhbj4ob2JqZWN0LCBt
ZXRob2RJZCwgYXJncyk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgYnl0ZV90eXBlOgorICAg
IGNhc2UgSmF2YVR5cGVCeXRlOgogICAgICAgICByZXN1bHQuYiA9IGNhbGxKTklNZXRob2RJREE8
amJ5dGU+KG9iamVjdCwgbWV0aG9kSWQsIGFyZ3MpOwogICAgICAgICBicmVhazsKLSAgICBjYXNl
IGNoYXJfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlQ2hhcjoKICAgICAgICAgcmVzdWx0LmMgPSBj
YWxsSk5JTWV0aG9kSURBPGpjaGFyPihvYmplY3QsIG1ldGhvZElkLCBhcmdzKTsKICAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBzaG9ydF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVTaG9ydDoKICAg
ICAgICAgcmVzdWx0LnMgPSBjYWxsSk5JTWV0aG9kSURBPGpzaG9ydD4ob2JqZWN0LCBtZXRob2RJ
ZCwgYXJncyk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgaW50X3R5cGU6CisgICAgY2FzZSBK
YXZhVHlwZUludDoKICAgICAgICAgcmVzdWx0LmkgPSBjYWxsSk5JTWV0aG9kSURBPGppbnQ+KG9i
amVjdCwgbWV0aG9kSWQsIGFyZ3MpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIGxvbmdfdHlw
ZToKKyAgICBjYXNlIEphdmFUeXBlTG9uZzoKICAgICAgICAgcmVzdWx0LmogPSBjYWxsSk5JTWV0
aG9kSURBPGpsb25nPihvYmplY3QsIG1ldGhvZElkLCBhcmdzKTsKICAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBmbG9hdF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVGbG9hdDoKICAgICAgICAgcmVz
dWx0LmYgPSBjYWxsSk5JTWV0aG9kSURBPGpmbG9hdD4ob2JqZWN0LCBtZXRob2RJZCwgYXJncyk7
CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgZG91YmxlX3R5cGU6CisgICAgY2FzZSBKYXZhVHlw
ZURvdWJsZToKICAgICAgICAgcmVzdWx0LmQgPSBjYWxsSk5JTWV0aG9kSURBPGpkb3VibGU+KG9i
amVjdCwgbWV0aG9kSWQsIGFyZ3MpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9KTklVdGlsaXR5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2Uvam5pL0pOSVV0aWxpdHkuaAppbmRleCA3MmI0MGRmMWE4OTQwMDc5Yjkx
MzA1MGY0MzExODA2YTM1NDkyNzMzLi41MDhhMmU1MjRkNmQ5MDcyYTdkYTA3NmJmNDFiYWU5ZTQw
N2U3Y2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL0pOSVV0aWxpdHku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL0pOSVV0aWxpdHkuaApAQCAtMjgsMzYg
KzI4LDE0IEBACiAKICNpZiBFTkFCTEUoSkFWQV9CUklER0UpCiAKKyNpbmNsdWRlICJKYXZhVHlw
ZS5oIgorCiAjaWYgT1MoTUFDX09TX1gpCiAjaW5jbHVkZSA8SmF2YVZNL2puaS5oPgogI2Vsc2UK
ICNpbmNsdWRlIDxqbmkuaD4KICNlbmRpZgogCi0vLyBUaGUgb3JkZXIgb2YgdGhlc2UgaXRlbXMg
Y2FuIG5vdCBiZSBtb2RpZmllZCBhcyB0aGV5IGFyZSB0aWdodGx5Ci0vLyBib3VuZCB3aXRoIHRo
ZSBKVk0gb24gTWFjIE9TWC4gSWYgbmV3IHR5cGVzIG5lZWQgdG8gYmUgYWRkZWQsIHRoZXkKLS8v
IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgZW5kLiBJdCBpcyB1c2VkIGluIGpuaV9vYmMubW0gd2hl
biBjYWxsaW5nCi0vLyB0aHJvdWdoIHRvIHRoZSBKVk0uIE5ld2x5IGFkZGVkIGl0ZW1zIG5lZWQg
dG8gYmUgbWFkZSBjb21wYXRpYmxlCi0vLyBpbiB0aGF0IGZpbGUuCi0vLwotLy8gVE9ETzogU3Ry
aWN0bHksIHRoZXNlIGFyZSBub3QgSk5JIHR5cGVzIGJ1dCBzaW1wbHkgSmF2YSB0eXBlcy4gVGhl
IHR5cGUKLS8vIGNvbnZlcnNpb24gbG9naWMgdXNlZCBoZXJlIG5lZWRzIGltcHJvdmluZyBhbmQg
dGhpcyBlbnVtIHdpbGwgbGlrZWx5IGJlCi0vLyBjaGFuZ2VkIGF0IHRoYXQgdGltZS4gU2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODc0NQotdHlwZWRlZiBlbnVt
IHsKLSAgICBpbnZhbGlkX3R5cGUgPSAwLAotICAgIHZvaWRfdHlwZSwKLSAgICBvYmplY3RfdHlw
ZSwKLSAgICBib29sZWFuX3R5cGUsCi0gICAgYnl0ZV90eXBlLAotICAgIGNoYXJfdHlwZSwKLSAg
ICBzaG9ydF90eXBlLAotICAgIGludF90eXBlLAotICAgIGxvbmdfdHlwZSwKLSAgICBmbG9hdF90
eXBlLAotICAgIGRvdWJsZV90eXBlLAotICAgIGFycmF5X3R5cGUKLX0gSk5JVHlwZTsKLQogbmFt
ZXNwYWNlIEpTQyB7CiAKIG5hbWVzcGFjZSBCaW5kaW5ncyB7CkBAIC03MCwxMiArNDgsMTIgQEAg
dm9pZCByZWxlYXNlQ2hhcmFjdGVyc0ZvckpTdHJpbmdJbkVudihKTklFbnYqLCBqc3RyaW5nLCBj
b25zdCBjaGFyKik7CiBjb25zdCBqY2hhciogZ2V0VUNoYXJhY3RlcnNGcm9tSlN0cmluZ0luRW52
KEpOSUVudiosIGpzdHJpbmcpOwogdm9pZCByZWxlYXNlVUNoYXJhY3RlcnNGb3JKU3RyaW5nSW5F
bnYoSk5JRW52KiwganN0cmluZywgY29uc3QgamNoYXIqKTsKIAotSk5JVHlwZSBKTklUeXBlRnJv
bUNsYXNzTmFtZShjb25zdCBjaGFyKiBuYW1lKTsKLUpOSVR5cGUgSk5JVHlwZUZyb21QcmltaXRp
dmVUeXBlKGNoYXIgdHlwZSk7Ci1jb25zdCBjaGFyKiBzaWduYXR1cmVGcm9tUHJpbWl0aXZlVHlw
ZShKTklUeXBlKTsKK0phdmFUeXBlIGphdmFUeXBlRnJvbUNsYXNzTmFtZShjb25zdCBjaGFyKiBu
YW1lKTsKK0phdmFUeXBlIGphdmFUeXBlRnJvbVByaW1pdGl2ZVR5cGUoY2hhciB0eXBlKTsKK2Nv
bnN0IGNoYXIqIHNpZ25hdHVyZUZyb21KYXZhVHlwZShKYXZhVHlwZSk7CiAKLWp2YWx1ZSBnZXRK
TklGaWVsZChqb2JqZWN0LCBKTklUeXBlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBz
aWduYXR1cmUpOwotanZhbHVlIGNhbGxKTklNZXRob2Qoam9iamVjdCwgSk5JVHlwZSByZXR1cm5U
eXBlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBzaWduYXR1cmUsIGp2YWx1ZSogYXJn
cyk7CitqdmFsdWUgZ2V0Sk5JRmllbGQoam9iamVjdCwgSmF2YVR5cGUsIGNvbnN0IGNoYXIqIG5h
bWUsIGNvbnN0IGNoYXIqIHNpZ25hdHVyZSk7CitqdmFsdWUgY2FsbEpOSU1ldGhvZChqb2JqZWN0
LCBKYXZhVHlwZSByZXR1cm5UeXBlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBzaWdu
YXR1cmUsIGp2YWx1ZSogYXJncyk7CiAKIGptZXRob2RJRCBnZXRNZXRob2RJRChqb2JqZWN0LCBj
b25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBzaWcpOwogSk5JRW52KiBnZXRKTklFbnYoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvSmF2YU1ldGhvZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL0phdmFNZXRob2QuY3BwCmluZGV4IGMwZThkMDc4ZWVj
NjZhYTNhZDA5NGQyOWJiODU2MTZmZjcyNmViMzIuLjg0YjgwYzUyODNlZDRjNGVjMzA0YzIyMDlh
ZGRkZGVlNWYzNTdjYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvSmF2
YU1ldGhvZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9KYXZhTWV0aG9kLmNw
cApAQCAtNTAsOCArNTAsOCBAQCBKYXZhTWV0aG9kOjpKYXZhTWV0aG9kKEpOSUVudiogZW52LCBq
b2JqZWN0IGFNZXRob2QpCiAgICAgICAgICAgICByZXR1cm5UeXBlTmFtZSA9IGVudi0+TmV3U3Ry
aW5nVVRGKCI8VW5rbm93bj4iKTsKICAgICAgICAgZW52LT5EZWxldGVMb2NhbFJlZihyZXR1cm5U
eXBlKTsKICAgICB9Ci0gICAgbV9yZXR1cm5UeXBlID0gSmF2YVN0cmluZyhlbnYsIHJldHVyblR5
cGVOYW1lKTsKLSAgICBtX0pOSVJldHVyblR5cGUgPSBKTklUeXBlRnJvbUNsYXNzTmFtZShtX3Jl
dHVyblR5cGUudXRmOCgpKTsKKyAgICBtX3JldHVyblR5cGVDbGFzc05hbWUgPSBKYXZhU3RyaW5n
KGVudiwgcmV0dXJuVHlwZU5hbWUpOworICAgIG1fcmV0dXJuVHlwZSA9IGphdmFUeXBlRnJvbUNs
YXNzTmFtZShtX3JldHVyblR5cGVDbGFzc05hbWUudXRmOCgpKTsKICAgICBlbnYtPkRlbGV0ZUxv
Y2FsUmVmKHJldHVyblR5cGVOYW1lKTsKIAogICAgIC8vIEdldCBtZXRob2QgbmFtZQpAQCAtMTI2
LDEyICsxMjYsMTIgQEAgY29uc3QgY2hhciogSmF2YU1ldGhvZDo6c2lnbmF0dXJlKCkgY29uc3QK
ICAgICAgICAgc2lnbmF0dXJlQnVpbGRlci5hcHBlbmQoJygnKTsKICAgICAgICAgZm9yICh1bnNp
Z25lZCBpbnQgaSA9IDA7IGkgPCBtX3BhcmFtZXRlcnMuc2l6ZSgpOyBpKyspIHsKICAgICAgICAg
ICAgIENTdHJpbmcgamF2YUNsYXNzTmFtZSA9IHBhcmFtZXRlckF0KGkpLnV0ZjgoKTsKLSAgICAg
ICAgICAgIEpOSVR5cGUgdHlwZSA9IEpOSVR5cGVGcm9tQ2xhc3NOYW1lKGphdmFDbGFzc05hbWUu
ZGF0YSgpKTsKLSAgICAgICAgICAgIGlmICh0eXBlID09IGFycmF5X3R5cGUpCisgICAgICAgICAg
ICBKYXZhVHlwZSB0eXBlID0gamF2YVR5cGVGcm9tQ2xhc3NOYW1lKGphdmFDbGFzc05hbWUuZGF0
YSgpKTsKKyAgICAgICAgICAgIGlmICh0eXBlID09IEphdmFUeXBlQXJyYXkpCiAgICAgICAgICAg
ICAgICAgYXBwZW5kQ2xhc3NOYW1lKHNpZ25hdHVyZUJ1aWxkZXIsIGphdmFDbGFzc05hbWUuZGF0
YSgpKTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIHNpZ25hdHVyZUJ1aWxk
ZXIuYXBwZW5kKHNpZ25hdHVyZUZyb21QcmltaXRpdmVUeXBlKHR5cGUpKTsKLSAgICAgICAgICAg
ICAgICBpZiAodHlwZSA9PSBvYmplY3RfdHlwZSkgeworICAgICAgICAgICAgICAgIHNpZ25hdHVy
ZUJ1aWxkZXIuYXBwZW5kKHNpZ25hdHVyZUZyb21KYXZhVHlwZSh0eXBlKSk7CisgICAgICAgICAg
ICAgICAgaWYgKHR5cGUgPT0gSmF2YVR5cGVPYmplY3QpIHsKICAgICAgICAgICAgICAgICAgICAg
YXBwZW5kQ2xhc3NOYW1lKHNpZ25hdHVyZUJ1aWxkZXIsIGphdmFDbGFzc05hbWUuZGF0YSgpKTsK
ICAgICAgICAgICAgICAgICAgICAgc2lnbmF0dXJlQnVpbGRlci5hcHBlbmQoJzsnKTsKICAgICAg
ICAgICAgICAgICB9CkBAIC0xMzksMTIgKzEzOSwxMiBAQCBjb25zdCBjaGFyKiBKYXZhTWV0aG9k
OjpzaWduYXR1cmUoKSBjb25zdAogICAgICAgICB9CiAgICAgICAgIHNpZ25hdHVyZUJ1aWxkZXIu
YXBwZW5kKCcpJyk7CiAKLSAgICAgICAgY29uc3QgY2hhciogcmV0dXJuVHlwZSA9IG1fcmV0dXJu
VHlwZS51dGY4KCk7Ci0gICAgICAgIGlmIChtX0pOSVJldHVyblR5cGUgPT0gYXJyYXlfdHlwZSkK
KyAgICAgICAgY29uc3QgY2hhciogcmV0dXJuVHlwZSA9IG1fcmV0dXJuVHlwZUNsYXNzTmFtZS51
dGY4KCk7CisgICAgICAgIGlmIChtX3JldHVyblR5cGUgPT0gSmF2YVR5cGVBcnJheSkKICAgICAg
ICAgICAgIGFwcGVuZENsYXNzTmFtZShzaWduYXR1cmVCdWlsZGVyLCByZXR1cm5UeXBlKTsKICAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBzaWduYXR1cmVCdWlsZGVyLmFwcGVuZChzaWduYXR1
cmVGcm9tUHJpbWl0aXZlVHlwZShtX0pOSVJldHVyblR5cGUpKTsKLSAgICAgICAgICAgIGlmICht
X0pOSVJldHVyblR5cGUgPT0gb2JqZWN0X3R5cGUpIHsKKyAgICAgICAgICAgIHNpZ25hdHVyZUJ1
aWxkZXIuYXBwZW5kKHNpZ25hdHVyZUZyb21KYXZhVHlwZShtX3JldHVyblR5cGUpKTsKKyAgICAg
ICAgICAgIGlmIChtX3JldHVyblR5cGUgPT0gSmF2YVR5cGVPYmplY3QpIHsKICAgICAgICAgICAg
ICAgICBhcHBlbmRDbGFzc05hbWUoc2lnbmF0dXJlQnVpbGRlciwgcmV0dXJuVHlwZSk7CiAgICAg
ICAgICAgICAgICAgc2lnbmF0dXJlQnVpbGRlci5hcHBlbmQoJzsnKTsKICAgICAgICAgICAgIH0K
QEAgLTE1NywxMSArMTU3LDYgQEAgY29uc3QgY2hhciogSmF2YU1ldGhvZDo6c2lnbmF0dXJlKCkg
Y29uc3QKICAgICByZXR1cm4gbV9zaWduYXR1cmU7CiB9CiAKLUpOSVR5cGUgSmF2YU1ldGhvZDo6
Sk5JUmV0dXJuVHlwZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fSk5JUmV0dXJuVHlwZTsKLX0K
LQogam1ldGhvZElEIEphdmFNZXRob2Q6Om1ldGhvZElEKGpvYmplY3Qgb2JqKSBjb25zdAogewog
ICAgIGlmICghbV9tZXRob2RJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9q
bmkvSmF2YU1ldGhvZC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9KYXZhTWV0aG9kLmgK
aW5kZXggMzlkMDRjOTkzNDRiYWI4N2I2MTIyZWQxYWY0Y2IwMjI5YTU0YzYxNC4uYTI3ZjQ3Yzkz
YWQxYjI5OWYwYzFkNDFkMDA5NTc5NzVmMGE1MjdmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL2puaS9KYXZhTWV0aG9kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2pu
aS9KYXZhTWV0aG9kLmgKQEAgLTMwLDkgKzMwLDggQEAKICNpZiBFTkFCTEUoSkFWQV9CUklER0Up
CiAKICNpbmNsdWRlICJCcmlkZ2UuaCIKLSNpbmNsdWRlICJKTklVdGlsaXR5LmgiCi0KICNpbmNs
dWRlICJKYXZhU3RyaW5nLmgiCisjaW5jbHVkZSAiSmF2YVR5cGUuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiAKQEAgLTQ2LDEyICs0NSwxMiBAQCBwdWJsaWM6CiAgICAgfkphdmFNZXRob2QoKTsKIAog
ICAgIGNvbnN0IEphdmFTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KLSAg
ICBSdW50aW1lVHlwZSByZXR1cm5UeXBlKCkgY29uc3QgeyByZXR1cm4gbV9yZXR1cm5UeXBlLnV0
ZjgoKTsgfQorICAgIFJ1bnRpbWVUeXBlIHJldHVyblR5cGVDbGFzc05hbWUoKSBjb25zdCB7IHJl
dHVybiBtX3JldHVyblR5cGVDbGFzc05hbWUudXRmOCgpOyB9CiAgICAgY29uc3QgV1RGOjpTdHJp
bmcmIHBhcmFtZXRlckF0KGludCBpKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnNbaV07IH0K
ICAgICBpbnQgbnVtUGFyYW1ldGVycygpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy5zaXpl
KCk7IH0KIAogICAgIGNvbnN0IGNoYXIqIHNpZ25hdHVyZSgpIGNvbnN0OwotICAgIEpOSVR5cGUg
Sk5JUmV0dXJuVHlwZSgpIGNvbnN0OworICAgIEphdmFUeXBlIHJldHVyblR5cGUoKSBjb25zdCB7
IHJldHVybiBtX3JldHVyblR5cGU7IH0KIAogICAgIGptZXRob2RJRCBtZXRob2RJRChqb2JqZWN0
IG9iaikgY29uc3Q7CiAKQEAgLTYxLDggKzYwLDggQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8V1RG
OjpTdHJpbmc+IG1fcGFyYW1ldGVyczsKICAgICBKYXZhU3RyaW5nIG1fbmFtZTsKICAgICBtdXRh
YmxlIGNoYXIqIG1fc2lnbmF0dXJlOwotICAgIEphdmFTdHJpbmcgbV9yZXR1cm5UeXBlOwotICAg
IEpOSVR5cGUgbV9KTklSZXR1cm5UeXBlOworICAgIEphdmFTdHJpbmcgbV9yZXR1cm5UeXBlQ2xh
c3NOYW1lOworICAgIEphdmFUeXBlIG1fcmV0dXJuVHlwZTsKICAgICBtdXRhYmxlIGptZXRob2RJ
RCBtX21ldGhvZElEOwogICAgIGJvb2wgbV9pc1N0YXRpYzsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvam5pL0phdmFUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
am5pL0phdmFUeXBlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGM5YWJlMTI3NTk0ZDg1OTk3ZmExNzAyZjRkYjRh
MWZkY2VlNDQ1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkv
SmF2YVR5cGUuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAy
MDA0LCAyMDA1LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEphdmFUeXBlX2gKKyNkZWZpbmUgSmF2YVR5cGVfaAorCisjaWYg
RU5BQkxFKEpBVkFfQlJJREdFKQorCituYW1lc3BhY2UgSlNDIHsKKworbmFtZXNwYWNlIEJpbmRp
bmdzIHsKKworLy8gVGhlIG9yZGVyIG9mIHRoZXNlIGl0ZW1zIGNhbiBub3QgYmUgbW9kaWZpZWQg
YXMgdGhleSBhcmUgdGlnaHRseQorLy8gYm91bmQgd2l0aCB0aGUgSlZNIG9uIE1hYyBPU1guIElm
IG5ldyB0eXBlcyBuZWVkIHRvIGJlIGFkZGVkLCB0aGV5CisvLyBzaG91bGQgYmUgYWRkZWQgdG8g
dGhlIGVuZC4gSXQgaXMgdXNlZCBpbiBqbmlfb2JjLm1tIHdoZW4gY2FsbGluZworLy8gdGhyb3Vn
aCB0byB0aGUgSlZNLiBOZXdseSBhZGRlZCBpdGVtcyBuZWVkIHRvIGJlIG1hZGUgY29tcGF0aWJs
ZQorLy8gaW4gdGhhdCBmaWxlLgorLy8KKy8vIFRoZSB0eXBlIGNvbnZlcnNpb24gbG9naWMgdXNl
ZCBoZXJlIG5lZWRzIGltcHJvdmluZyBhbmQgdGhpcyBlbnVtIHdpbGwgbGlrZWx5CisvLyBiZSBj
aGFuZ2VkIGF0IHRoYXQgdGltZS4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zODc0NQorZW51bSBKYXZhVHlwZSB7CisgICAgSmF2YVR5cGVJbnZhbGlkID0gMCwK
KyAgICBKYXZhVHlwZVZvaWQsCisgICAgSmF2YVR5cGVPYmplY3QsCisgICAgSmF2YVR5cGVCb29s
ZWFuLAorICAgIEphdmFUeXBlQnl0ZSwKKyAgICBKYXZhVHlwZUNoYXIsCisgICAgSmF2YVR5cGVT
aG9ydCwKKyAgICBKYXZhVHlwZUludCwKKyAgICBKYXZhVHlwZUxvbmcsCisgICAgSmF2YVR5cGVG
bG9hdCwKKyAgICBKYXZhVHlwZURvdWJsZSwKKyAgICBKYXZhVHlwZUFycmF5Cit9OworCit9IC8v
IG5hbWVzcGFjZSBCaW5kaW5ncworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVO
QUJMRShKQVZBX0JSSURHRSkKKworI2VuZGlmIC8vIEphdmFUeXBlX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvam5pX2pzb2JqZWN0Lm1tIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0KaW5kZXggMTcyNTU5ZWJhN2YzZWQ2Y2RmOTYzYzE0
YzBmZmIwODg5OTkxZGQ5NC4uMDNiOGZjMmI1YzRmN2M1MzA2ZjA5ODQwNzFkZTFhNDFkMGJhNzE5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0KQEAgLTQxOSw3
ICs0MTksNyBAQCBqc3RyaW5nIEphdmFKU09iamVjdDo6dG9TdHJpbmcoKSBjb25zdAogICAgIEpT
T2JqZWN0ICp0aGlzT2JqID0gY29uc3RfY2FzdDxKU09iamVjdCo+KF9pbXApOwogICAgIEV4ZWNT
dGF0ZSogZXhlYyA9IHJvb3RPYmplY3QtPmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CiAg
ICAgCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGpzdHJpbmc+KGNvbnZlcnRWYWx1ZVRvSlZhbHVl
KGV4ZWMsIHJvb3RPYmplY3QsIHRoaXNPYmosIG9iamVjdF90eXBlLCAiamF2YS5sYW5nLlN0cmlu
ZyIpLmwpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxqc3RyaW5nPihjb252ZXJ0VmFsdWVUb0pW
YWx1ZShleGVjLCByb290T2JqZWN0LCB0aGlzT2JqLCBKYXZhVHlwZU9iamVjdCwgImphdmEubGFu
Zy5TdHJpbmciKS5sKTsKIH0KIAogdm9pZCBKYXZhSlNPYmplY3Q6OmZpbmFsaXplKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvam5pX29iamMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvam5pL2puaV9vYmpjLm1tCmluZGV4IDhmYTJjM2YwOTBjM2YzMTc5
YWQ0MmI2NzYyNWFjNDhlMTk5ZDFiOTEuLjljOTQzZTgyODUxOWE5NmMyY2FjYTFiOWE5NTc1YmNh
NjI4ZTM4NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvam5pX29iamMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qbmlfb2JqYy5tbQpAQCAtMjgsMzEg
KzI4LDMxIEBACiAjaWYgRU5BQkxFKEpBVkFfQlJJREdFKQogCiAjaW1wb3J0IDxGb3VuZGF0aW9u
L0ZvdW5kYXRpb24uaD4KLSNpbXBvcnQgIkpOSVV0aWxpdHkuaCIKICNpbXBvcnQgIkpOSVV0aWxp
dHlQcml2YXRlLmgiCisjaW1wb3J0ICJKYXZhVHlwZS5oIgogI2ltcG9ydCAib2JqY191dGlsaXR5
LmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzo6
QmluZGluZ3M7CiAKIEBpbnRlcmZhY2UgTlNPYmplY3QgKFdlYlNjcmlwdGluZ1ByaXZhdGUpCi0t
IChqdmFsdWUpd2ViUGx1Z0luQ2FsbEphdmE6KGpvYmplY3Qpb2JqZWN0IG1ldGhvZDooam1ldGhv
ZElEKW1ldGhvZCByZXR1cm5UeXBlOihKTklUeXBlKXJldHVyblR5cGUgYXJndW1lbnRzOihqdmFs
dWUqKWFyZ3M7CistIChqdmFsdWUpd2ViUGx1Z0luQ2FsbEphdmE6KGpvYmplY3Qpb2JqZWN0IG1l
dGhvZDooam1ldGhvZElEKW1ldGhvZCByZXR1cm5UeXBlOihKYXZhVHlwZSlyZXR1cm5UeXBlIGFy
Z3VtZW50czooanZhbHVlKilhcmdzOwogLSAoanZhbHVlKXdlYlBsdWdJbkNhbGxKYXZhOihqb2Jq
ZWN0KW9iamVjdAogICAgICAgICAgICAgICAgICAgIGlzU3RhdGljOihCT09MKWlzU3RhdGljCi0g
ICAgICAgICAgICAgICAgIHJldHVyblR5cGU6KEpOSVR5cGUpcmV0dXJuVHlwZQorICAgICAgICAg
ICAgICAgICByZXR1cm5UeXBlOihKYXZhVHlwZSlyZXR1cm5UeXBlCiAgICAgICAgICAgICAgICAg
ICAgICBtZXRob2Q6KGptZXRob2RJRCltZXRob2QKICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50
czooanZhbHVlKilhcmdzCiAgICAgICAgICAgICAgICAgIGNhbGxpbmdVUkw6KE5TVVJMICopdXJs
CiAgICAgICAgZXhjZXB0aW9uRGVzY3JpcHRpb246KE5TU3RyaW5nICoqKWV4Y2VwdGlvblN0cmlu
ZzsKIEBlbmQKIAotYm9vbCBKU0M6OkJpbmRpbmdzOjpkaXNwYXRjaEpOSUNhbGwoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCB2b2lkKiB0YXJnZXRBcHBsZXRWaWV3LCBqb2JqZWN0IG9iaiwgYm9vbCBp
c1N0YXRpYywgSk5JVHlwZSByZXR1cm5UeXBlLCBqbWV0aG9kSUQgbWV0aG9kSUQsIGp2YWx1ZSog
YXJncywganZhbHVlICZyZXN1bHQsIGNvbnN0IGNoYXIqLCBKU1ZhbHVlJiBleGNlcHRpb25EZXNj
cmlwdGlvbikKK2Jvb2wgSlNDOjpCaW5kaW5nczo6ZGlzcGF0Y2hKTklDYWxsKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3Qgdm9pZCogdGFyZ2V0QXBwbGV0Vmlldywgam9iamVjdCBvYmosIGJvb2wgaXNT
dGF0aWMsIEphdmFUeXBlIHJldHVyblR5cGUsIGptZXRob2RJRCBtZXRob2RJRCwganZhbHVlKiBh
cmdzLCBqdmFsdWUgJnJlc3VsdCwgY29uc3QgY2hhciosIEpTVmFsdWUmIGV4Y2VwdGlvbkRlc2Ny
aXB0aW9uKQogewogICAgIGlkIHZpZXcgPSAoaWQpdGFyZ2V0QXBwbGV0VmlldzsKICAgICAKLSAg
ICAvLyBBcyBhcnJheV90eXBlIGlzIG5vdCBrbm93biBieSB0aGUgTWFjIEpWTSwgY2hhbmdlIGl0
IHRvIGEgY29tcGF0aWJsZSB0eXBlLgotICAgIGlmIChyZXR1cm5UeXBlID09IGFycmF5X3R5cGUp
Ci0gICAgICAgIHJldHVyblR5cGUgPSBvYmplY3RfdHlwZTsKKyAgICAvLyBBcyBKYXZhVHlwZUFy
cmF5IGlzIG5vdCBrbm93biBieSB0aGUgTWFjIEpWTSwgY2hhbmdlIGl0IHRvIGEgY29tcGF0aWJs
ZSB0eXBlLgorICAgIGlmIChyZXR1cm5UeXBlID09IEphdmFUeXBlQXJyYXkpCisgICAgICAgIHJl
dHVyblR5cGUgPSBKYXZhVHlwZU9iamVjdDsKICAgICAKICAgICBpZiAoW3ZpZXcgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJQbHVnSW5DYWxsSmF2YTppc1N0YXRpYzpyZXR1cm5UeXBl
Om1ldGhvZDphcmd1bWVudHM6Y2FsbGluZ1VSTDpleGNlcHRpb25EZXNjcmlwdGlvbjopXSkgewog
ICAgICAgICBOU1N0cmluZyAqX2V4Y2VwdGlvbkRlc2NyaXB0aW9uID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0pOSVV0aWxpdHlQcml2YXRlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0pOSVV0aWxpdHlQcml2YXRlLmNwcAppbmRleCBh
OGJlMGJkOTI5MDcxMzNmMDUxOWI3YjYxZmYxMjA3OThkOTQ4MmM2Li4yMzU2ZmUxMjU4MTBmNDRj
YWZhYTkzODM5NTkxNWMwMDFjMDBkY2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvam5pL2pzYy9KTklVdGlsaXR5UHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL2puaS9qc2MvSk5JVXRpbGl0eVByaXZhdGUuY3BwCkBAIC01Myw4ICs1Myw4IEBAIHN0YXRp
YyBqb2JqZWN0IGNvbnZlcnRBcnJheUluc3RhbmNlVG9KYXZhQXJyYXkoRXhlY1N0YXRlKiBleGVj
LCBKU0FycmF5KiBqc0FycmF5CiAgICAgam9iamVjdEFycmF5IGphcnJheSA9IDA7CiAKICAgICAv
LyBCdWlsZCB0aGUgY29ycmVjdCBhcnJheSB0eXBlCi0gICAgc3dpdGNoIChKTklUeXBlRnJvbVBy
aW1pdGl2ZVR5cGUoamF2YUNsYXNzTmFtZVsxXSkpIHsKLSAgICBjYXNlIG9iamVjdF90eXBlOgor
ICAgIHN3aXRjaCAoamF2YVR5cGVGcm9tUHJpbWl0aXZlVHlwZShqYXZhQ2xhc3NOYW1lWzFdKSkg
eworICAgIGNhc2UgSmF2YVR5cGVPYmplY3Q6CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAv
LyBPbmx5IHN1cHBvcnQgc3RyaW5nIG9iamVjdCB0eXBlcwogICAgICAgICAgICAgaWYgKCFzdHJj
bXAoIltMamF2YS5sYW5nLlN0cmluZzsiLCBqYXZhQ2xhc3NOYW1lKSkgewpAQCAtNzEsNyArNzEs
NyBAQCBzdGF0aWMgam9iamVjdCBjb252ZXJ0QXJyYXlJbnN0YW5jZVRvSmF2YUFycmF5KEV4ZWNT
dGF0ZSogZXhlYywgSlNBcnJheSoganNBcnJheQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KIAotICAgIGNhc2UgYm9vbGVhbl90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVCb29sZWFuOgog
ICAgICAgICB7CiAgICAgICAgICAgICBqYXJyYXkgPSAoam9iamVjdEFycmF5KWVudi0+TmV3Qm9v
bGVhbkFycmF5KGxlbmd0aCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bGVuZ3RoOyBpKyspIHsKQEAgLTgyLDcgKzgyLDcgQEAgc3RhdGljIGpvYmplY3QgY29udmVydEFy
cmF5SW5zdGFuY2VUb0phdmFBcnJheShFeGVjU3RhdGUqIGV4ZWMsIEpTQXJyYXkqIGpzQXJyYXkK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICBjYXNlIGJ5dGVfdHlwZToKKyAg
ICBjYXNlIEphdmFUeXBlQnl0ZToKICAgICAgICAgewogICAgICAgICAgICAgamFycmF5ID0gKGpv
YmplY3RBcnJheSllbnYtPk5ld0J5dGVBcnJheShsZW5ndGgpOwogICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CkBAIC05Myw3ICs5Myw3IEBAIHN0YXRp
YyBqb2JqZWN0IGNvbnZlcnRBcnJheUluc3RhbmNlVG9KYXZhQXJyYXkoRXhlY1N0YXRlKiBleGVj
LCBKU0FycmF5KiBqc0FycmF5CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAg
Y2FzZSBjaGFyX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUNoYXI6CiAgICAgICAgIHsKICAgICAg
ICAgICAgIGphcnJheSA9IChqb2JqZWN0QXJyYXkpZW52LT5OZXdDaGFyQXJyYXkobGVuZ3RoKTsK
ICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewpAQCAt
MTA3LDcgKzEwNyw3IEBAIHN0YXRpYyBqb2JqZWN0IGNvbnZlcnRBcnJheUluc3RhbmNlVG9KYXZh
QXJyYXkoRXhlY1N0YXRlKiBleGVjLCBKU0FycmF5KiBqc0FycmF5CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogCi0gICAgY2FzZSBzaG9ydF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVT
aG9ydDoKICAgICAgICAgewogICAgICAgICAgICAgamFycmF5ID0gKGpvYmplY3RBcnJheSllbnYt
Pk5ld1Nob3J0QXJyYXkobGVuZ3RoKTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBsZW5ndGg7IGkrKykgewpAQCAtMTE4LDcgKzExOCw3IEBAIHN0YXRpYyBqb2JqZWN0IGNv
bnZlcnRBcnJheUluc3RhbmNlVG9KYXZhQXJyYXkoRXhlY1N0YXRlKiBleGVjLCBKU0FycmF5KiBq
c0FycmF5CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgY2FzZSBpbnRfdHlw
ZToKKyAgICBjYXNlIEphdmFUeXBlSW50OgogICAgICAgICB7CiAgICAgICAgICAgICBqYXJyYXkg
PSAoam9iamVjdEFycmF5KWVudi0+TmV3SW50QXJyYXkobGVuZ3RoKTsKICAgICAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewpAQCAtMTI5LDcgKzEyOSw3IEBA
IHN0YXRpYyBqb2JqZWN0IGNvbnZlcnRBcnJheUluc3RhbmNlVG9KYXZhQXJyYXkoRXhlY1N0YXRl
KiBleGVjLCBKU0FycmF5KiBqc0FycmF5CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
Ci0gICAgY2FzZSBsb25nX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUxvbmc6CiAgICAgICAgIHsK
ICAgICAgICAgICAgIGphcnJheSA9IChqb2JqZWN0QXJyYXkpZW52LT5OZXdMb25nQXJyYXkobGVu
Z3RoKTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykg
ewpAQCAtMTQwLDcgKzE0MCw3IEBAIHN0YXRpYyBqb2JqZWN0IGNvbnZlcnRBcnJheUluc3RhbmNl
VG9KYXZhQXJyYXkoRXhlY1N0YXRlKiBleGVjLCBKU0FycmF5KiBqc0FycmF5CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogCi0gICAgY2FzZSBmbG9hdF90eXBlOgorICAgIGNhc2UgSmF2
YVR5cGVGbG9hdDoKICAgICAgICAgewogICAgICAgICAgICAgamFycmF5ID0gKGpvYmplY3RBcnJh
eSllbnYtPk5ld0Zsb2F0QXJyYXkobGVuZ3RoKTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewpAQCAtMTUxLDcgKzE1MSw3IEBAIHN0YXRpYyBqb2Jq
ZWN0IGNvbnZlcnRBcnJheUluc3RhbmNlVG9KYXZhQXJyYXkoRXhlY1N0YXRlKiBleGVjLCBKU0Fy
cmF5KiBqc0FycmF5CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgY2FzZSBk
b3VibGVfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlRG91YmxlOgogICAgICAgICB7CiAgICAgICAg
ICAgICBqYXJyYXkgPSAoam9iamVjdEFycmF5KWVudi0+TmV3RG91YmxlQXJyYXkobGVuZ3RoKTsK
ICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewpAQCAt
MTYyLDkgKzE2Miw5IEBAIHN0YXRpYyBqb2JqZWN0IGNvbnZlcnRBcnJheUluc3RhbmNlVG9KYXZh
QXJyYXkoRXhlY1N0YXRlKiBleGVjLCBKU0FycmF5KiBqc0FycmF5CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogCi0gICAgY2FzZSBhcnJheV90eXBlOiAvLyBkb24ndCBoYW5kbGUgZW1i
ZWRkZWQgYXJyYXlzCi0gICAgY2FzZSB2b2lkX3R5cGU6IC8vIERvbid0IGV4cGVjdCBhcnJheXMg
b2Ygdm9pZCBvYmplY3RzCi0gICAgY2FzZSBpbnZhbGlkX3R5cGU6IC8vIEFycmF5IG9mIHVua25v
d24gb2JqZWN0cworICAgIGNhc2UgSmF2YVR5cGVBcnJheTogLy8gZG9uJ3QgaGFuZGxlIGVtYmVk
ZGVkIGFycmF5cworICAgIGNhc2UgSmF2YVR5cGVWb2lkOiAvLyBEb24ndCBleHBlY3QgYXJyYXlz
IG9mIHZvaWQgb2JqZWN0cworICAgIGNhc2UgSmF2YVR5cGVJbnZhbGlkOiAvLyBBcnJheSBvZiB1
bmtub3duIG9iamVjdHMKICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC0xNzIsMTYgKzE3Miwx
NiBAQCBzdGF0aWMgam9iamVjdCBjb252ZXJ0QXJyYXlJbnN0YW5jZVRvSmF2YUFycmF5KEV4ZWNT
dGF0ZSogZXhlYywgSlNBcnJheSoganNBcnJheQogICAgIHJldHVybiBqYXJyYXk7CiB9CiAKLWp2
YWx1ZSBjb252ZXJ0VmFsdWVUb0pWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIFJvb3RPYmplY3QqIHJv
b3RPYmplY3QsIEpTVmFsdWUgdmFsdWUsIEpOSVR5cGUgam5pVHlwZSwgY29uc3QgY2hhciogamF2
YUNsYXNzTmFtZSkKK2p2YWx1ZSBjb252ZXJ0VmFsdWVUb0pWYWx1ZShFeGVjU3RhdGUqIGV4ZWMs
IFJvb3RPYmplY3QqIHJvb3RPYmplY3QsIEpTVmFsdWUgdmFsdWUsIEphdmFUeXBlIGphdmFUeXBl
LCBjb25zdCBjaGFyKiBqYXZhQ2xhc3NOYW1lKQogewogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VB
c3NlcnRpb25zT25seSk7CiAKICAgICBqdmFsdWUgcmVzdWx0OwogICAgIG1lbXNldCgmcmVzdWx0
LCAwLCBzaXplb2YoanZhbHVlKSk7CiAKLSAgICBzd2l0Y2ggKGpuaVR5cGUpIHsKLSAgICBjYXNl
IGFycmF5X3R5cGU6Ci0gICAgY2FzZSBvYmplY3RfdHlwZToKKyAgICBzd2l0Y2ggKGphdmFUeXBl
KSB7CisgICAgY2FzZSBKYXZhVHlwZUFycmF5OgorICAgIGNhc2UgSmF2YVR5cGVPYmplY3Q6CiAg
ICAgICAgIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBKYXZhSlNPYmplY3Q6OmNvbnZlcnRWYWx1
ZVRvSk9iamVjdCBmdW5jdGlvbmFsaXR5IGlzIGFsbW9zdCBleGFjdGx5IHRoZSBzYW1lLAogICAg
ICAgICAgICAgLy8gdGhlc2UgZnVuY3Rpb25zIHNob3VsZCB1c2UgY29tbW9uIGNvZGUuCkBAIC0y
NTgsNTYgKzI1OCw1NiBAQCBqdmFsdWUgY29udmVydFZhbHVlVG9KVmFsdWUoRXhlY1N0YXRlKiBl
eGVjLCBSb290T2JqZWN0KiByb290T2JqZWN0LCBKU1ZhbHVlIHZhbAogICAgICAgICB9CiAgICAg
ICAgIGJyZWFrOwogCi0gICAgY2FzZSBib29sZWFuX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUJv
b2xlYW46CiAgICAgICAgIHsKICAgICAgICAgICAgIHJlc3VsdC56ID0gKGpib29sZWFuKXZhbHVl
LnRvTnVtYmVyKGV4ZWMpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBi
eXRlX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUJ5dGU6CiAgICAgICAgIHsKICAgICAgICAgICAg
IHJlc3VsdC5iID0gKGpieXRlKXZhbHVlLnRvTnVtYmVyKGV4ZWMpOwogICAgICAgICB9CiAgICAg
ICAgIGJyZWFrOwogCi0gICAgY2FzZSBjaGFyX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUNoYXI6
CiAgICAgICAgIHsKICAgICAgICAgICAgIHJlc3VsdC5jID0gKGpjaGFyKXZhbHVlLnRvTnVtYmVy
KGV4ZWMpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBzaG9ydF90eXBl
OgorICAgIGNhc2UgSmF2YVR5cGVTaG9ydDoKICAgICAgICAgewogICAgICAgICAgICAgcmVzdWx0
LnMgPSAoanNob3J0KXZhbHVlLnRvTnVtYmVyKGV4ZWMpOwogICAgICAgICB9CiAgICAgICAgIGJy
ZWFrOwogCi0gICAgY2FzZSBpbnRfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlSW50OgogICAgICAg
ICB7CiAgICAgICAgICAgICByZXN1bHQuaSA9IChqaW50KXZhbHVlLnRvTnVtYmVyKGV4ZWMpOwog
ICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBsb25nX3R5cGU6CisgICAgY2Fz
ZSBKYXZhVHlwZUxvbmc6CiAgICAgICAgIHsKICAgICAgICAgICAgIHJlc3VsdC5qID0gKGpsb25n
KXZhbHVlLnRvTnVtYmVyKGV4ZWMpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAg
Y2FzZSBmbG9hdF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVGbG9hdDoKICAgICAgICAgewogICAg
ICAgICAgICAgcmVzdWx0LmYgPSAoamZsb2F0KXZhbHVlLnRvTnVtYmVyKGV4ZWMpOwogICAgICAg
ICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBkb3VibGVfdHlwZToKKyAgICBjYXNlIEph
dmFUeXBlRG91YmxlOgogICAgICAgICB7CiAgICAgICAgICAgICByZXN1bHQuZCA9IChqZG91Ymxl
KXZhbHVlLnRvTnVtYmVyKGV4ZWMpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAg
Y2FzZSBpbnZhbGlkX3R5cGU6Ci0gICAgY2FzZSB2b2lkX3R5cGU6CisgICAgY2FzZSBKYXZhVHlw
ZUludmFsaWQ6CisgICAgY2FzZSBKYXZhVHlwZVZvaWQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0K
ICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2pu
aS9qc2MvSk5JVXRpbGl0eVByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNj
L0pOSVV0aWxpdHlQcml2YXRlLmgKaW5kZXggMTI2NmFjZDlhODBmYmE1MGUzNjRkOTFkZTNlYzAx
ZTdkZmI3MWI2NS4uZWQwOWZkNjVkNzQ1NzIzOTEzOTE4ZDA4OTU0MGU4OTAyMzM1ZTY4OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSk5JVXRpbGl0eVByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KTklVdGlsaXR5UHJpdmF0ZS5o
CkBAIC00MSw4ICs0MSw4IEBAIG5hbWVzcGFjZSBCaW5kaW5ncyB7CiAKIGNsYXNzIFJvb3RPYmpl
Y3Q7CiAKLWp2YWx1ZSBjb252ZXJ0VmFsdWVUb0pWYWx1ZShFeGVjU3RhdGUqLCBSb290T2JqZWN0
KiwgSlNWYWx1ZSwgSk5JVHlwZSwgY29uc3QgY2hhciogamF2YUNsYXNzTmFtZSk7Ci1ib29sIGRp
c3BhdGNoSk5JQ2FsbChFeGVjU3RhdGUqLCBjb25zdCB2b2lkKiB0YXJnZXRBcHBsZXRWaWV3LCBq
b2JqZWN0IG9iaiwgYm9vbCBpc1N0YXRpYywgSk5JVHlwZSByZXR1cm5UeXBlLCBqbWV0aG9kSUQg
bWV0aG9kSUQsIGp2YWx1ZSogYXJncywganZhbHVlJiByZXN1bHQsIGNvbnN0IGNoYXIqIGNhbGxp
bmdVUkwsIEpTVmFsdWUmIGV4Y2VwdGlvbkRlc2NyaXB0aW9uKTsKK2p2YWx1ZSBjb252ZXJ0VmFs
dWVUb0pWYWx1ZShFeGVjU3RhdGUqLCBSb290T2JqZWN0KiwgSlNWYWx1ZSwgSmF2YVR5cGUsIGNv
bnN0IGNoYXIqIGphdmFDbGFzc05hbWUpOworYm9vbCBkaXNwYXRjaEpOSUNhbGwoRXhlY1N0YXRl
KiwgY29uc3Qgdm9pZCogdGFyZ2V0QXBwbGV0Vmlldywgam9iamVjdCwgYm9vbCBpc1N0YXRpYywg
SmF2YVR5cGUgcmV0dXJuVHlwZSwgam1ldGhvZElELCBqdmFsdWUqIGFyZ3MsIGp2YWx1ZSYgcmVz
dWx0LCBjb25zdCBjaGFyKiBjYWxsaW5nVVJMLCBKU1ZhbHVlJiBleGNlcHRpb25EZXNjcmlwdGlv
bik7CiAKIH0gLy8gbmFtZXNwYWNlIEJpbmRpbmdzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9qbmkvanNjL0phdmFBcnJheUpTQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvam5pL2pzYy9KYXZhQXJyYXlKU0MuY3BwCmluZGV4IGRiODdiYWE3NmJlZTYwZDEwYjQxZWM2
N2EzZDUwMjc0ODYyODcyN2QuLmNhYTg1NzliNzM1YTJjMTY4NTQ5M2Q2MmYwMjNmNTcwZjY0NWNi
YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFBcnJheUpT
Qy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUFycmF5SlNDLmNw
cApAQCAtNzUsNyArNzUsNyBAQCB2b2lkIEphdmFBcnJheTo6c2V0VmFsdWVBdChFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIGFWYWx1ZSkgY29ucwogICAgIEpOSUVudiog
ZW52ID0gZ2V0Sk5JRW52KCk7CiAgICAgY2hhciogamF2YUNsYXNzTmFtZSA9IDA7CiAKLSAgICBK
TklUeXBlIGFycmF5VHlwZSA9IEpOSVR5cGVGcm9tUHJpbWl0aXZlVHlwZShtX3R5cGVbMV0pOwor
ICAgIEphdmFUeXBlIGFycmF5VHlwZSA9IGphdmFUeXBlRnJvbVByaW1pdGl2ZVR5cGUobV90eXBl
WzFdKTsKICAgICBpZiAobV90eXBlWzFdID09ICdMJykgewogICAgICAgICAvLyBUaGUgdHlwZSBv
ZiB0aGUgYXJyYXkgd2lsbCBiZSBzb21ldGhpbmcgbGlrZToKICAgICAgICAgLy8gIltMamF2YS5s
YW5nLnN0cmluZzsiLiBUaGlzIGlzIGd1YXJhbnRlZWQsIHNvIG5vIG5lZWQKQEAgLTg2LDU0ICs4
Niw1NCBAQCB2b2lkIEphdmFBcnJheTo6c2V0VmFsdWVBdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2ln
bmVkIGluZGV4LCBKU1ZhbHVlIGFWYWx1ZSkgY29ucwogICAgIGp2YWx1ZSBhSlZhbHVlID0gY29u
dmVydFZhbHVlVG9KVmFsdWUoZXhlYywgbV9yb290T2JqZWN0LmdldCgpLCBhVmFsdWUsIGFycmF5
VHlwZSwgamF2YUNsYXNzTmFtZSk7CiAKICAgICBzd2l0Y2ggKGFycmF5VHlwZSkgewotICAgIGNh
c2Ugb2JqZWN0X3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZU9iamVjdDoKICAgICAgICAgewogICAg
ICAgICAgICAgZW52LT5TZXRPYmplY3RBcnJheUVsZW1lbnQoc3RhdGljX2Nhc3Q8am9iamVjdEFy
cmF5PihqYXZhQXJyYXkoKSksIGluZGV4LCBhSlZhbHVlLmwpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KIAotICAgIGNhc2UgYm9vbGVhbl90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVC
b29sZWFuOgogICAgICAgICB7CiAgICAgICAgICAgICBlbnYtPlNldEJvb2xlYW5BcnJheVJlZ2lv
bihzdGF0aWNfY2FzdDxqYm9vbGVhbkFycmF5PihqYXZhQXJyYXkoKSksIGluZGV4LCAxLCAmYUpW
YWx1ZS56KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICBjYXNlIGJ5dGVf
dHlwZToKKyAgICBjYXNlIEphdmFUeXBlQnl0ZToKICAgICAgICAgewogICAgICAgICAgICAgZW52
LT5TZXRCeXRlQXJyYXlSZWdpb24oc3RhdGljX2Nhc3Q8amJ5dGVBcnJheT4oamF2YUFycmF5KCkp
LCBpbmRleCwgMSwgJmFKVmFsdWUuYik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
Ci0gICAgY2FzZSBjaGFyX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUNoYXI6CiAgICAgICAgIHsK
ICAgICAgICAgICAgIGVudi0+U2V0Q2hhckFycmF5UmVnaW9uKHN0YXRpY19jYXN0PGpjaGFyQXJy
YXk+KGphdmFBcnJheSgpKSwgaW5kZXgsIDEsICZhSlZhbHVlLmMpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KIAotICAgIGNhc2Ugc2hvcnRfdHlwZToKKyAgICBjYXNlIEphdmFUeXBl
U2hvcnQ6CiAgICAgICAgIHsKICAgICAgICAgICAgIGVudi0+U2V0U2hvcnRBcnJheVJlZ2lvbihz
dGF0aWNfY2FzdDxqc2hvcnRBcnJheT4oamF2YUFycmF5KCkpLCBpbmRleCwgMSwgJmFKVmFsdWUu
cyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgY2FzZSBpbnRfdHlwZToK
KyAgICBjYXNlIEphdmFUeXBlSW50OgogICAgICAgICB7CiAgICAgICAgICAgICBlbnYtPlNldElu
dEFycmF5UmVnaW9uKHN0YXRpY19jYXN0PGppbnRBcnJheT4oamF2YUFycmF5KCkpLCBpbmRleCwg
MSwgJmFKVmFsdWUuaSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgY2Fz
ZSBsb25nX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUxvbmc6CiAgICAgICAgIHsKICAgICAgICAg
ICAgIGVudi0+U2V0TG9uZ0FycmF5UmVnaW9uKHN0YXRpY19jYXN0PGpsb25nQXJyYXk+KGphdmFB
cnJheSgpKSwgaW5kZXgsIDEsICZhSlZhbHVlLmopOwogICAgICAgICB9CiAKLSAgICBjYXNlIGZs
b2F0X3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUZsb2F0OgogICAgICAgICB7CiAgICAgICAgICAg
ICBlbnYtPlNldEZsb2F0QXJyYXlSZWdpb24oc3RhdGljX2Nhc3Q8amZsb2F0QXJyYXk+KGphdmFB
cnJheSgpKSwgaW5kZXgsIDEsICZhSlZhbHVlLmYpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KIAotICAgIGNhc2UgZG91YmxlX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZURvdWJsZToK
ICAgICAgICAgewogICAgICAgICAgICAgZW52LT5TZXREb3VibGVBcnJheVJlZ2lvbihzdGF0aWNf
Y2FzdDxqZG91YmxlQXJyYXk+KGphdmFBcnJheSgpKSwgaW5kZXgsIDEsICZhSlZhbHVlLmQpOwog
ICAgICAgICAgICAgYnJlYWs7CkBAIC0xNDksOSArMTQ5LDkgQEAgdm9pZCBKYXZhQXJyYXk6OnNl
dFZhbHVlQXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSBhVmFsdWUp
IGNvbnMKIEpTVmFsdWUgSmF2YUFycmF5Ojp2YWx1ZUF0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQgaW5kZXgpIGNvbnN0CiB7CiAgICAgSk5JRW52KiBlbnYgPSBnZXRKTklFbnYoKTsKLSAgICBK
TklUeXBlIGFycmF5VHlwZSA9IEpOSVR5cGVGcm9tUHJpbWl0aXZlVHlwZShtX3R5cGVbMV0pOwor
ICAgIEphdmFUeXBlIGFycmF5VHlwZSA9IGphdmFUeXBlRnJvbVByaW1pdGl2ZVR5cGUobV90eXBl
WzFdKTsKICAgICBzd2l0Y2ggKGFycmF5VHlwZSkgewotICAgIGNhc2Ugb2JqZWN0X3R5cGU6Cisg
ICAgY2FzZSBKYXZhVHlwZU9iamVjdDoKICAgICAgICAgewogICAgICAgICAgICAgam9iamVjdEFy
cmF5IG9iamVjdEFycmF5ID0gc3RhdGljX2Nhc3Q8am9iamVjdEFycmF5PihqYXZhQXJyYXkoKSk7
CiAgICAgICAgICAgICBqb2JqZWN0IGFuT2JqZWN0OwpAQCAtMTY4LDcgKzE2OCw3IEBAIEpTVmFs
dWUgSmF2YUFycmF5Ojp2YWx1ZUF0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgpIGNv
bnN0CiAgICAgICAgICAgICByZXR1cm4gSmF2YUluc3RhbmNlOjpjcmVhdGUoYW5PYmplY3QsIHJv
b3RPYmplY3QoKSktPmNyZWF0ZVJ1bnRpbWVPYmplY3QoZXhlYyk7CiAgICAgICAgIH0KIAotICAg
IGNhc2UgYm9vbGVhbl90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVCb29sZWFuOgogICAgICAgICB7
CiAgICAgICAgICAgICBqYm9vbGVhbkFycmF5IGJvb2xlYW5BcnJheSA9IHN0YXRpY19jYXN0PGpi
b29sZWFuQXJyYXk+KGphdmFBcnJheSgpKTsKICAgICAgICAgICAgIGpib29sZWFuIGFCb29sZWFu
OwpAQCAtMTc2LDcgKzE3Niw3IEBAIEpTVmFsdWUgSmF2YUFycmF5Ojp2YWx1ZUF0KEV4ZWNTdGF0
ZSogZXhlYywgdW5zaWduZWQgaW5kZXgpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4ganNCb29s
ZWFuKGFCb29sZWFuKTsKICAgICAgICAgfQogCi0gICAgY2FzZSBieXRlX3R5cGU6CisgICAgY2Fz
ZSBKYXZhVHlwZUJ5dGU6CiAgICAgICAgIHsKICAgICAgICAgICAgIGpieXRlQXJyYXkgYnl0ZUFy
cmF5ID0gc3RhdGljX2Nhc3Q8amJ5dGVBcnJheT4oamF2YUFycmF5KCkpOwogICAgICAgICAgICAg
amJ5dGUgYUJ5dGU7CkBAIC0xODQsNyArMTg0LDcgQEAgSlNWYWx1ZSBKYXZhQXJyYXk6OnZhbHVl
QXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpbmRleCkgY29uc3QKICAgICAgICAgICAgIHJl
dHVybiBqc051bWJlcihhQnl0ZSk7CiAgICAgICAgIH0KIAotICAgIGNhc2UgY2hhcl90eXBlOgor
ICAgIGNhc2UgSmF2YVR5cGVDaGFyOgogICAgICAgICB7CiAgICAgICAgICAgICBqY2hhckFycmF5
IGNoYXJBcnJheSA9IHN0YXRpY19jYXN0PGpjaGFyQXJyYXk+KGphdmFBcnJheSgpKTsKICAgICAg
ICAgICAgIGpjaGFyIGFDaGFyOwpAQCAtMTkzLDcgKzE5Myw3IEBAIEpTVmFsdWUgSmF2YUFycmF5
Ojp2YWx1ZUF0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgpIGNvbnN0CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgY2FzZSBzaG9ydF90eXBlOgorICAgIGNhc2Ug
SmF2YVR5cGVTaG9ydDoKICAgICAgICAgewogICAgICAgICAgICAganNob3J0QXJyYXkgc2hvcnRB
cnJheSA9IHN0YXRpY19jYXN0PGpzaG9ydEFycmF5PihqYXZhQXJyYXkoKSk7CiAgICAgICAgICAg
ICBqc2hvcnQgYVNob3J0OwpAQCAtMjAxLDcgKzIwMSw3IEBAIEpTVmFsdWUgSmF2YUFycmF5Ojp2
YWx1ZUF0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgpIGNvbnN0CiAgICAgICAgICAg
ICByZXR1cm4ganNOdW1iZXIoYVNob3J0KTsKICAgICAgICAgfQogCi0gICAgY2FzZSBpbnRfdHlw
ZToKKyAgICBjYXNlIEphdmFUeXBlSW50OgogICAgICAgICB7CiAgICAgICAgICAgICBqaW50QXJy
YXkgaW50QXJyYXkgPSBzdGF0aWNfY2FzdDxqaW50QXJyYXk+KGphdmFBcnJheSgpKTsKICAgICAg
ICAgICAgIGppbnQgYW5JbnQ7CkBAIC0yMDksNyArMjA5LDcgQEAgSlNWYWx1ZSBKYXZhQXJyYXk6
OnZhbHVlQXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpbmRleCkgY29uc3QKICAgICAgICAg
ICAgIHJldHVybiBqc051bWJlcihhbkludCk7CiAgICAgICAgIH0KIAotICAgIGNhc2UgbG9uZ190
eXBlOgorICAgIGNhc2UgSmF2YVR5cGVMb25nOgogICAgICAgICB7CiAgICAgICAgICAgICBqbG9u
Z0FycmF5IGxvbmdBcnJheSA9IHN0YXRpY19jYXN0PGpsb25nQXJyYXk+KGphdmFBcnJheSgpKTsK
ICAgICAgICAgICAgIGpsb25nIGFMb25nOwpAQCAtMjE3LDcgKzIxNyw3IEBAIEpTVmFsdWUgSmF2
YUFycmF5Ojp2YWx1ZUF0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgpIGNvbnN0CiAg
ICAgICAgICAgICByZXR1cm4ganNOdW1iZXIoYUxvbmcpOwogICAgICAgICB9CiAKLSAgICBjYXNl
IGZsb2F0X3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUZsb2F0OgogICAgICAgICB7CiAgICAgICAg
ICAgICBqZmxvYXRBcnJheSBmbG9hdEFycmF5ID0gc3RhdGljX2Nhc3Q8amZsb2F0QXJyYXk+KGph
dmFBcnJheSgpKTsKICAgICAgICAgICAgIGpmbG9hdCBhRmxvYXQ7CkBAIC0yMjUsNyArMjI1LDcg
QEAgSlNWYWx1ZSBKYXZhQXJyYXk6OnZhbHVlQXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBp
bmRleCkgY29uc3QKICAgICAgICAgICAgIHJldHVybiBqc051bWJlcihhRmxvYXQpOwogICAgICAg
ICB9CiAKLSAgICBjYXNlIGRvdWJsZV90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVEb3VibGU6CiAg
ICAgICAgIHsKICAgICAgICAgICAgIGpkb3VibGVBcnJheSBkb3VibGVBcnJheSA9IHN0YXRpY19j
YXN0PGpkb3VibGVBcnJheT4oamF2YUFycmF5KCkpOwogICAgICAgICAgICAgamRvdWJsZSBhRG91
YmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUNsYXNz
SlNDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFDbGFzc0pTQy5jcHAK
aW5kZXggMThjZDFhZjNlMDhmMjVjMzhiODYwMmYyMzkxYjAwYmRkZDVkOGEwYi4uYTgyMWZmZjI2
NGU1ZTY3OWMzYTQ0Mjk5ZDVkOTBkYzFmNjQxMTMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL2puaS9qc2MvSmF2YUNsYXNzSlNDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvam5pL2pzYy9KYXZhQ2xhc3NKU0MuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpZiBF
TkFCTEUoSkFWQV9CUklER0UpCiAKLSNpbmNsdWRlICJKTklVdGlsaXR5LmgiCiAjaW5jbHVkZSAi
SlNET01XaW5kb3cuaCIKICNpbmNsdWRlICJKYXZhRmllbGRKU0MuaCIKICNpbmNsdWRlICJKYXZh
TWV0aG9kLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZh
RmllbGRKU0MuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUZpZWxkSlND
LmNwcAppbmRleCBkM2JhMDZhYzhiYzllNzQ1YzlhNWIwOTg0Mjc4ZDMxOTJkYmI3MWIxLi5iN2M2
NjRlNDI4MmZhYTUyZmMzOTkzMTMyZDQxMTFlZjcxNjUyYWY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhRmllbGRKU0MuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9qbmkvanNjL0phdmFGaWVsZEpTQy5jcHAKQEAgLTQ4LDkgKzQ4LDkgQEAgSmF2
YUZpZWxkOjpKYXZhRmllbGQoSk5JRW52KiBlbnYsIGpvYmplY3QgYUZpZWxkKQogICAgICAgICBm
aWVsZFR5cGVOYW1lID0gc3RhdGljX2Nhc3Q8anN0cmluZz4oY2FsbEpOSU1ldGhvZDxqb2JqZWN0
PihmaWVsZFR5cGUsICJnZXROYW1lIiwgIigpTGphdmEvbGFuZy9TdHJpbmc7IikpOwogICAgIGlm
ICghZmllbGRUeXBlTmFtZSkKICAgICAgICAgZmllbGRUeXBlTmFtZSA9IGVudi0+TmV3U3RyaW5n
VVRGKCI8VW5rbm93bj4iKTsKLSAgICBtX3R5cGUgPSBKYXZhU3RyaW5nKGVudiwgZmllbGRUeXBl
TmFtZSk7CisgICAgbV90eXBlQ2xhc3NOYW1lID0gSmF2YVN0cmluZyhlbnYsIGZpZWxkVHlwZU5h
bWUpOwogCi0gICAgbV9KTklUeXBlID0gSk5JVHlwZUZyb21DbGFzc05hbWUobV90eXBlLnV0Zjgo
KSk7CisgICAgbV90eXBlID0gamF2YVR5cGVGcm9tQ2xhc3NOYW1lKG1fdHlwZUNsYXNzTmFtZS51
dGY4KCkpOwogCiAgICAgLy8gR2V0IGZpZWxkIG5hbWUKICAgICBqc3RyaW5nIGZpZWxkTmFtZSA9
IHN0YXRpY19jYXN0PGpzdHJpbmc+KGNhbGxKTklNZXRob2Q8am9iamVjdD4oYUZpZWxkLCAiZ2V0
TmFtZSIsICIoKUxqYXZhL2xhbmcvU3RyaW5nOyIpKTsKQEAgLTYxLDcgKzYxLDcgQEAgSmF2YUZp
ZWxkOjpKYXZhRmllbGQoSk5JRW52KiBlbnYsIGpvYmplY3QgYUZpZWxkKQogICAgIG1fZmllbGQg
PSBuZXcgSm9iamVjdFdyYXBwZXIoYUZpZWxkKTsKIH0KIAotanZhbHVlIEphdmFGaWVsZDo6ZGlz
cGF0Y2hWYWx1ZUZyb21JbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEphdmFJbnN0YW5j
ZSogaW5zdGFuY2UsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHNpZywgSk5JVHlwZSBy
ZXR1cm5UeXBlKSBjb25zdAoranZhbHVlIEphdmFGaWVsZDo6ZGlzcGF0Y2hWYWx1ZUZyb21JbnN0
YW5jZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEphdmFJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0
IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHNpZywgSmF2YVR5cGUgcmV0dXJuVHlwZSkgY29uc3QK
IHsKICAgICBqb2JqZWN0IGppbnN0YW5jZSA9IGluc3RhbmNlLT5qYXZhSW5zdGFuY2UoKTsKICAg
ICBqb2JqZWN0IGZpZWxkSkluc3RhbmNlID0gbV9maWVsZC0+bV9pbnN0YW5jZTsKQEAgLTk0LDE3
ICs5NCwxNyBAQCBKU1ZhbHVlIEphdmFGaWVsZDo6dmFsdWVGcm9tSW5zdGFuY2UoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJbnN0YW5jZSogaSkgY29uc3QKIAogICAgIEpTVmFsdWUganNyZXN1bHQg
PSBqc1VuZGVmaW5lZCgpOwogCi0gICAgc3dpdGNoIChtX0pOSVR5cGUpIHsKLSAgICBjYXNlIGFy
cmF5X3R5cGU6Ci0gICAgY2FzZSBvYmplY3RfdHlwZToKKyAgICBzd2l0Y2ggKG1fdHlwZSkgewor
ICAgIGNhc2UgSmF2YVR5cGVBcnJheToKKyAgICBjYXNlIEphdmFUeXBlT2JqZWN0OgogICAgICAg
ICB7Ci0gICAgICAgICAgICBqdmFsdWUgcmVzdWx0ID0gZGlzcGF0Y2hWYWx1ZUZyb21JbnN0YW5j
ZShleGVjLCBpbnN0YW5jZSwgImdldCIsICIoTGphdmEvbGFuZy9PYmplY3Q7KUxqYXZhL2xhbmcv
T2JqZWN0OyIsIG9iamVjdF90eXBlKTsKKyAgICAgICAgICAgIGp2YWx1ZSByZXN1bHQgPSBkaXNw
YXRjaFZhbHVlRnJvbUluc3RhbmNlKGV4ZWMsIGluc3RhbmNlLCAiZ2V0IiwgIihMamF2YS9sYW5n
L09iamVjdDspTGphdmEvbGFuZy9PYmplY3Q7IiwgSmF2YVR5cGVPYmplY3QpOwogICAgICAgICAg
ICAgam9iamVjdCBhbk9iamVjdCA9IHJlc3VsdC5sOwogCiAgICAgICAgICAgICBpZiAoIWFuT2Jq
ZWN0KQogICAgICAgICAgICAgICAgIHJldHVybiBqc051bGwoKTsKIAotICAgICAgICAgICAgY29u
c3QgY2hhciogYXJyYXlUeXBlID0gdHlwZSgpOworICAgICAgICAgICAgY29uc3QgY2hhciogYXJy
YXlUeXBlID0gdHlwZUNsYXNzTmFtZSgpOwogICAgICAgICAgICAgaWYgKGFycmF5VHlwZVswXSA9
PSAnWycpCiAgICAgICAgICAgICAgICAganNyZXN1bHQgPSBKYXZhQXJyYXk6OmNvbnZlcnRKT2Jq
ZWN0VG9BcnJheShleGVjLCBhbk9iamVjdCwgYXJyYXlUeXBlLCBpbnN0YW5jZS0+cm9vdE9iamVj
dCgpKTsKICAgICAgICAgICAgIGVsc2UgaWYgKGFuT2JqZWN0KQpAQCAtMTEyLDI5ICsxMTIsMjkg
QEAgSlNWYWx1ZSBKYXZhRmllbGQ6OnZhbHVlRnJvbUluc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSW5zdGFuY2UqIGkpIGNvbnN0CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAg
ICBjYXNlIGJvb2xlYW5fdHlwZToKLSAgICAgICAganNyZXN1bHQgPSBqc0Jvb2xlYW4oZGlzcGF0
Y2hWYWx1ZUZyb21JbnN0YW5jZShleGVjLCBpbnN0YW5jZSwgImdldEJvb2xlYW4iLCAiKExqYXZh
L2xhbmcvT2JqZWN0OylaIiwgYm9vbGVhbl90eXBlKS56KTsKKyAgICBjYXNlIEphdmFUeXBlQm9v
bGVhbjoKKyAgICAgICAganNyZXN1bHQgPSBqc0Jvb2xlYW4oZGlzcGF0Y2hWYWx1ZUZyb21JbnN0
YW5jZShleGVjLCBpbnN0YW5jZSwgImdldEJvb2xlYW4iLCAiKExqYXZhL2xhbmcvT2JqZWN0Oyla
IiwgSmF2YVR5cGVCb29sZWFuKS56KTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIGJ5dGVf
dHlwZToKLSAgICBjYXNlIGNoYXJfdHlwZToKLSAgICBjYXNlIHNob3J0X3R5cGU6CisgICAgY2Fz
ZSBKYXZhVHlwZUJ5dGU6CisgICAgY2FzZSBKYXZhVHlwZUNoYXI6CisgICAgY2FzZSBKYXZhVHlw
ZVNob3J0OgogCi0gICAgY2FzZSBpbnRfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlSW50OgogICAg
ICAgICB7CiAgICAgICAgICAgICBqaW50IHZhbHVlOwotICAgICAgICAgICAganZhbHVlIHJlc3Vs
dCA9IGRpc3BhdGNoVmFsdWVGcm9tSW5zdGFuY2UoZXhlYywgaW5zdGFuY2UsICJnZXRJbnQiLCAi
KExqYXZhL2xhbmcvT2JqZWN0OylJIiwgaW50X3R5cGUpOworICAgICAgICAgICAganZhbHVlIHJl
c3VsdCA9IGRpc3BhdGNoVmFsdWVGcm9tSW5zdGFuY2UoZXhlYywgaW5zdGFuY2UsICJnZXRJbnQi
LCAiKExqYXZhL2xhbmcvT2JqZWN0OylJIiwgSmF2YVR5cGVJbnQpOwogICAgICAgICAgICAgdmFs
dWUgPSByZXN1bHQuaTsKICAgICAgICAgICAgIGpzcmVzdWx0ID0ganNOdW1iZXIoc3RhdGljX2Nh
c3Q8aW50Pih2YWx1ZSkpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBs
b25nX3R5cGU6Ci0gICAgY2FzZSBmbG9hdF90eXBlOgotICAgIGNhc2UgZG91YmxlX3R5cGU6Cisg
ICAgY2FzZSBKYXZhVHlwZUxvbmc6CisgICAgY2FzZSBKYXZhVHlwZUZsb2F0OgorICAgIGNhc2Ug
SmF2YVR5cGVEb3VibGU6CiAgICAgICAgIHsKICAgICAgICAgICAgIGpkb3VibGUgdmFsdWU7Ci0g
ICAgICAgICAgICBqdmFsdWUgcmVzdWx0ID0gZGlzcGF0Y2hWYWx1ZUZyb21JbnN0YW5jZShleGVj
LCBpbnN0YW5jZSwgImdldERvdWJsZSIsICIoTGphdmEvbGFuZy9PYmplY3Q7KUQiLCBkb3VibGVf
dHlwZSk7CisgICAgICAgICAgICBqdmFsdWUgcmVzdWx0ID0gZGlzcGF0Y2hWYWx1ZUZyb21JbnN0
YW5jZShleGVjLCBpbnN0YW5jZSwgImdldERvdWJsZSIsICIoTGphdmEvbGFuZy9PYmplY3Q7KUQi
LCBKYXZhVHlwZURvdWJsZSk7CiAgICAgICAgICAgICB2YWx1ZSA9IHJlc3VsdC5pOwogICAgICAg
ICAgICAganNyZXN1bHQgPSBqc051bWJlcihzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSk7CiAg
ICAgICAgIH0KQEAgLTE2Niw3ICsxNjYsNyBAQCB2b2lkIEphdmFGaWVsZDo6ZGlzcGF0Y2hTZXRW
YWx1ZVRvSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBKYXZhSW5zdGFuY2UqCiAKICAg
ICAgICAgICAgICAgICBhcmdzWzBdLmwgPSBqaW5zdGFuY2U7CiAgICAgICAgICAgICAgICAgYXJn
c1sxXSA9IGphdmFWYWx1ZTsKLSAgICAgICAgICAgICAgICBkaXNwYXRjaEpOSUNhbGwoZXhlYywg
cm9vdE9iamVjdC0+bmF0aXZlSGFuZGxlKCksIGZpZWxkSkluc3RhbmNlLCBmYWxzZSwgdm9pZF90
eXBlLCBtaWQsIGFyZ3MsIHJlc3VsdCwgMCwgZXhjZXB0aW9uRGVzY3JpcHRpb24pOworICAgICAg
ICAgICAgICAgIGRpc3BhdGNoSk5JQ2FsbChleGVjLCByb290T2JqZWN0LT5uYXRpdmVIYW5kbGUo
KSwgZmllbGRKSW5zdGFuY2UsIGZhbHNlLCBKYXZhVHlwZVZvaWQsIG1pZCwgYXJncywgcmVzdWx0
LCAwLCBleGNlcHRpb25EZXNjcmlwdGlvbik7CiAgICAgICAgICAgICAgICAgaWYgKGV4Y2VwdGlv
bkRlc2NyaXB0aW9uKQogICAgICAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0
ZUVycm9yKGV4ZWMsIGV4Y2VwdGlvbkRlc2NyaXB0aW9uLnRvU3RyaW5nKGV4ZWMpKSk7CiAgICAg
ICAgICAgICB9CkBAIC0xNzcsNjEgKzE3Nyw2MSBAQCB2b2lkIEphdmFGaWVsZDo6ZGlzcGF0Y2hT
ZXRWYWx1ZVRvSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBKYXZhSW5zdGFuY2UqCiB2
b2lkIEphdmFGaWVsZDo6c2V0VmFsdWVUb0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SW5zdGFuY2UqIGksIEpTVmFsdWUgYVZhbHVlKSBjb25zdAogewogICAgIGNvbnN0IEphdmFJbnN0
YW5jZSogaW5zdGFuY2UgPSBzdGF0aWNfY2FzdDxjb25zdCBKYXZhSW5zdGFuY2UqPihpKTsKLSAg
ICBqdmFsdWUgamF2YVZhbHVlID0gY29udmVydFZhbHVlVG9KVmFsdWUoZXhlYywgaS0+cm9vdE9i
amVjdCgpLCBhVmFsdWUsIG1fSk5JVHlwZSwgdHlwZSgpKTsKKyAgICBqdmFsdWUgamF2YVZhbHVl
ID0gY29udmVydFZhbHVlVG9KVmFsdWUoZXhlYywgaS0+cm9vdE9iamVjdCgpLCBhVmFsdWUsIG1f
dHlwZSwgdHlwZUNsYXNzTmFtZSgpKTsKIAogICAgIExPRyhMaXZlQ29ubmVjdCwgIkphdmFGaWVs
ZDo6c2V0VmFsdWVUb0luc3RhbmNlIHNldHRpbmcgdmFsdWUgJXMgdG8gJXMiLCBVU3RyaW5nKG5h
bWUoKS5pbXBsKCkpLnV0ZjgoKS5kYXRhKCksIGFWYWx1ZS50b1N0cmluZyhleGVjKS5hc2NpaSgp
LmRhdGEoKSk7CiAKLSAgICBzd2l0Y2ggKG1fSk5JVHlwZSkgewotICAgIGNhc2UgYXJyYXlfdHlw
ZToKLSAgICBjYXNlIG9iamVjdF90eXBlOgorICAgIHN3aXRjaCAobV90eXBlKSB7CisgICAgY2Fz
ZSBKYXZhVHlwZUFycmF5OgorICAgIGNhc2UgSmF2YVR5cGVPYmplY3Q6CiAgICAgICAgIHsKICAg
ICAgICAgICAgIGRpc3BhdGNoU2V0VmFsdWVUb0luc3RhbmNlKGV4ZWMsIGluc3RhbmNlLCBqYXZh
VmFsdWUsICJzZXQiLCAiKExqYXZhL2xhbmcvT2JqZWN0O0xqYXZhL2xhbmcvT2JqZWN0OylWIik7
CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIGJvb2xlYW5fdHlwZToKKyAg
ICBjYXNlIEphdmFUeXBlQm9vbGVhbjoKICAgICAgICAgewogICAgICAgICAgICAgZGlzcGF0Y2hT
ZXRWYWx1ZVRvSW5zdGFuY2UoZXhlYywgaW5zdGFuY2UsIGphdmFWYWx1ZSwgInNldEJvb2xlYW4i
LCAiKExqYXZhL2xhbmcvT2JqZWN0O1opViIpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwog
Ci0gICAgY2FzZSBieXRlX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUJ5dGU6CiAgICAgICAgIHsK
ICAgICAgICAgICAgIGRpc3BhdGNoU2V0VmFsdWVUb0luc3RhbmNlKGV4ZWMsIGluc3RhbmNlLCBq
YXZhVmFsdWUsICJzZXRCeXRlIiwgIihMamF2YS9sYW5nL09iamVjdDtCKVYiKTsKICAgICAgICAg
fQogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgY2hhcl90eXBlOgorICAgIGNhc2UgSmF2YVR5
cGVDaGFyOgogICAgICAgICB7CiAgICAgICAgICAgICBkaXNwYXRjaFNldFZhbHVlVG9JbnN0YW5j
ZShleGVjLCBpbnN0YW5jZSwgamF2YVZhbHVlLCAic2V0Q2hhciIsICIoTGphdmEvbGFuZy9PYmpl
Y3Q7QylWIik7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIHNob3J0X3R5
cGU6CisgICAgY2FzZSBKYXZhVHlwZVNob3J0OgogICAgICAgICB7CiAgICAgICAgICAgICBkaXNw
YXRjaFNldFZhbHVlVG9JbnN0YW5jZShleGVjLCBpbnN0YW5jZSwgamF2YVZhbHVlLCAic2V0U2hv
cnQiLCAiKExqYXZhL2xhbmcvT2JqZWN0O1MpViIpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFr
OwogCi0gICAgY2FzZSBpbnRfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlSW50OgogICAgICAgICB7
CiAgICAgICAgICAgICBkaXNwYXRjaFNldFZhbHVlVG9JbnN0YW5jZShleGVjLCBpbnN0YW5jZSwg
amF2YVZhbHVlLCAic2V0SW50IiwgIihMamF2YS9sYW5nL09iamVjdDtJKVYiKTsKICAgICAgICAg
fQogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgbG9uZ190eXBlOgorICAgIGNhc2UgSmF2YVR5
cGVMb25nOgogICAgICAgICB7CiAgICAgICAgICAgICBkaXNwYXRjaFNldFZhbHVlVG9JbnN0YW5j
ZShleGVjLCBpbnN0YW5jZSwgamF2YVZhbHVlLCAic2V0TG9uZyIsICIoTGphdmEvbGFuZy9PYmpl
Y3Q7SilWIik7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIGZsb2F0X3R5
cGU6CisgICAgY2FzZSBKYXZhVHlwZUZsb2F0OgogICAgICAgICB7CiAgICAgICAgICAgICBkaXNw
YXRjaFNldFZhbHVlVG9JbnN0YW5jZShleGVjLCBpbnN0YW5jZSwgamF2YVZhbHVlLCAic2V0Rmxv
YXQiLCAiKExqYXZhL2xhbmcvT2JqZWN0O0YpViIpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFr
OwogCi0gICAgY2FzZSBkb3VibGVfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlRG91YmxlOgogICAg
ICAgICB7CiAgICAgICAgICAgICBkaXNwYXRjaFNldFZhbHVlVG9JbnN0YW5jZShleGVjLCBpbnN0
YW5jZSwgamF2YVZhbHVlLCAic2V0RG91YmxlIiwgIihMamF2YS9sYW5nL09iamVjdDtEKVYiKTsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2
YUZpZWxkSlNDLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhRmllbGRKU0Mu
aAppbmRleCBhNjcyNjRhZTE1YjhlZTQ2ZjdiYjk0ZmM3ZmJiYWZlNWJjYWNjMDdkLi45Yjk1MTMy
ODY2ZDBhNmNjZGNkYjVmMjZjMzVhYmEwMWZiNGNjOTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhRmllbGRKU0MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvam5pL2pzYy9KYXZhRmllbGRKU0MuaApAQCAtNDcsMTcgKzQ3LDE2IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVUb0luc3RhbmNlKEV4ZWNTdGF0ZSosIGNvbnN0IElu
c3RhbmNlKiwgSlNWYWx1ZSkgY29uc3Q7CiAKICAgICBjb25zdCBKYXZhU3RyaW5nJiBuYW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9uYW1lOyB9Ci0gICAgdmlydHVhbCBSdW50aW1lVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlLnV0ZjgoKTsgfQotCi0gICAgSk5JVHlwZSBnZXRKTklUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV9KTklUeXBlOyB9CisgICAgdmlydHVhbCBSdW50aW1lVHlwZSB0
eXBlQ2xhc3NOYW1lKCkgY29uc3QgeyByZXR1cm4gbV90eXBlQ2xhc3NOYW1lLnV0ZjgoKTsgfQor
ICAgIEphdmFUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAogcHJpdmF0ZToK
ICAgICB2b2lkIGRpc3BhdGNoU2V0VmFsdWVUb0luc3RhbmNlKEV4ZWNTdGF0ZSosIGNvbnN0IEph
dmFJbnN0YW5jZSosIGp2YWx1ZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogc2lnKSBj
b25zdDsKLSAgICBqdmFsdWUgZGlzcGF0Y2hWYWx1ZUZyb21JbnN0YW5jZShFeGVjU3RhdGUqLCBj
b25zdCBKYXZhSW5zdGFuY2UqLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBzaWcsIEpO
SVR5cGUgcmV0dXJuVHlwZSkgY29uc3Q7CisgICAganZhbHVlIGRpc3BhdGNoVmFsdWVGcm9tSW5z
dGFuY2UoRXhlY1N0YXRlKiwgY29uc3QgSmF2YUluc3RhbmNlKiwgY29uc3QgY2hhciogbmFtZSwg
Y29uc3QgY2hhciogc2lnLCBKYXZhVHlwZSByZXR1cm5UeXBlKSBjb25zdDsKIAogICAgIEphdmFT
dHJpbmcgbV9uYW1lOwotICAgIEphdmFTdHJpbmcgbV90eXBlOwotICAgIEpOSVR5cGUgbV9KTklU
eXBlOworICAgIEphdmFTdHJpbmcgbV90eXBlQ2xhc3NOYW1lOworICAgIEphdmFUeXBlIG1fdHlw
ZTsKICAgICBSZWZQdHI8Sm9iamVjdFdyYXBwZXI+IG1fZmllbGQ7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcAppbmRleCBiMzEx
NDFlNGI5MWJiODA0N2NkNDQzNmVhYjliMjRmODM1YWI0MTc0Li5mMWRhZDFlYTdhYjhlMmY2ZmUz
ZGQzZDc3N2Y1NDY5YTYzZDIwNzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
am5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9q
bmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBFTkFCTEUo
SkFWQV9CUklER0UpCiAKICNpbmNsdWRlICJKYXZhUnVudGltZU9iamVjdC5oIgotI2luY2x1ZGUg
IkpOSVV0aWxpdHkuaCIKICNpbmNsdWRlICJKTklVdGlsaXR5UHJpdmF0ZS5oIgogI2luY2x1ZGUg
IkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkphdmFBcnJheUpTQy5oIgpAQCAtMTc4LDcgKzE3
Nyw3IEBAIEpTVmFsdWUgSmF2YUluc3RhbmNlOjppbnZva2VNZXRob2QoRXhlY1N0YXRlKiBleGVj
LCBSdW50aW1lTWV0aG9kKiBydW50aW1lTWV0aG9kCiAKICAgICBmb3IgKGkgPSAwOyBpIDwgY291
bnQ7IGkrKykgewogICAgICAgICBDU3RyaW5nIGphdmFDbGFzc05hbWUgPSBqTWV0aG9kLT5wYXJh
bWV0ZXJBdChpKS51dGY4KCk7Ci0gICAgICAgIGpBcmdzW2ldID0gY29udmVydFZhbHVlVG9KVmFs
dWUoZXhlYywgbV9yb290T2JqZWN0LmdldCgpLCBleGVjLT5hcmd1bWVudChpKSwgSk5JVHlwZUZy
b21DbGFzc05hbWUoamF2YUNsYXNzTmFtZS5kYXRhKCkpLCBqYXZhQ2xhc3NOYW1lLmRhdGEoKSk7
CisgICAgICAgIGpBcmdzW2ldID0gY29udmVydFZhbHVlVG9KVmFsdWUoZXhlYywgbV9yb290T2Jq
ZWN0LmdldCgpLCBleGVjLT5hcmd1bWVudChpKSwgamF2YVR5cGVGcm9tQ2xhc3NOYW1lKGphdmFD
bGFzc05hbWUuZGF0YSgpKSwgamF2YUNsYXNzTmFtZS5kYXRhKCkpOwogICAgICAgICBMT0coTGl2
ZUNvbm5lY3QsICJKYXZhSW5zdGFuY2U6Omludm9rZU1ldGhvZCBhcmdbJWRdID0gJXMiLCBpLCBl
eGVjLT5hcmd1bWVudChpKS50b1N0cmluZyhleGVjKS5hc2NpaSgpLmRhdGEoKSk7CiAgICAgfQog
CkBAIC0xOTYsNyArMTk1LDcgQEAgSlNWYWx1ZSBKYXZhSW5zdGFuY2U6Omludm9rZU1ldGhvZChF
eGVjU3RhdGUqIGV4ZWMsIFJ1bnRpbWVNZXRob2QqIHJ1bnRpbWVNZXRob2QKICAgICAgICAgam9i
amVjdCBvYmogPSBtX2luc3RhbmNlLT5tX2luc3RhbmNlOwogICAgICAgICBKU1ZhbHVlIGV4Y2Vw
dGlvbkRlc2NyaXB0aW9uOwogICAgICAgICBjb25zdCBjaGFyICpjYWxsaW5nVVJMID0gMDsgLy8g
RklYTUUsIG5lZWQgdG8gcHJvcGFnYXRlIGNhbGxpbmcgVVJMIHRvIEphdmEKLSAgICAgICAgaGFu
ZGxlZCA9IGRpc3BhdGNoSk5JQ2FsbChleGVjLCByb290T2JqZWN0LT5uYXRpdmVIYW5kbGUoKSwg
b2JqLCBqTWV0aG9kLT5pc1N0YXRpYygpLCBqTWV0aG9kLT5KTklSZXR1cm5UeXBlKCksIGpNZXRo
b2QtPm1ldGhvZElEKG9iaiksIGpBcmdzLmRhdGEoKSwgcmVzdWx0LCBjYWxsaW5nVVJMLCBleGNl
cHRpb25EZXNjcmlwdGlvbik7CisgICAgICAgIGhhbmRsZWQgPSBkaXNwYXRjaEpOSUNhbGwoZXhl
Yywgcm9vdE9iamVjdC0+bmF0aXZlSGFuZGxlKCksIG9iaiwgak1ldGhvZC0+aXNTdGF0aWMoKSwg
ak1ldGhvZC0+cmV0dXJuVHlwZSgpLCBqTWV0aG9kLT5tZXRob2RJRChvYmopLCBqQXJncy5kYXRh
KCksIHJlc3VsdCwgY2FsbGluZ1VSTCwgZXhjZXB0aW9uRGVzY3JpcHRpb24pOwogICAgICAgICBp
ZiAoZXhjZXB0aW9uRGVzY3JpcHRpb24pIHsKICAgICAgICAgICAgIHRocm93RXJyb3IoZXhlYywg
Y3JlYXRlRXJyb3IoZXhlYywgZXhjZXB0aW9uRGVzY3JpcHRpb24udG9TdHJpbmcoZXhlYykpKTsK
ICAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtMjA3LDIxICsyMDYsMjEgQEAg
SlNWYWx1ZSBKYXZhSW5zdGFuY2U6Omludm9rZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIFJ1bnRp
bWVNZXRob2QqIHJ1bnRpbWVNZXRob2QKIC8vIFJlbW92ZSB0aGlzIGd1YXJkIG9uY2UgQnVnIDM5
NDc2IGlzIGZpeGVkLgogI2lmIFBMQVRGT1JNKEFORFJPSUQpIHx8IGRlZmluZWQoQlVJTERJTkdf
T05fVElHRVIpCiAgICAgaWYgKCFoYW5kbGVkKQotICAgICAgICByZXN1bHQgPSBjYWxsSk5JTWV0
aG9kKG1faW5zdGFuY2UtPm1faW5zdGFuY2UsIGpNZXRob2QtPkpOSVJldHVyblR5cGUoKSwgak1l
dGhvZC0+bmFtZSgpLnV0ZjgoKS5kYXRhKCksIGpNZXRob2QtPnNpZ25hdHVyZSgpLCBqQXJncy5k
YXRhKCkpOworICAgICAgICByZXN1bHQgPSBjYWxsSk5JTWV0aG9kKG1faW5zdGFuY2UtPm1faW5z
dGFuY2UsIGpNZXRob2QtPnJldHVyblR5cGUoKSwgak1ldGhvZC0+bmFtZSgpLnV0ZjgoKS5kYXRh
KCksIGpNZXRob2QtPnNpZ25hdHVyZSgpLCBqQXJncy5kYXRhKCkpOwogI2VuZGlmCiAKLSAgICBz
d2l0Y2ggKGpNZXRob2QtPkpOSVJldHVyblR5cGUoKSkgewotICAgIGNhc2Ugdm9pZF90eXBlOgor
ICAgIHN3aXRjaCAoak1ldGhvZC0+cmV0dXJuVHlwZSgpKSB7CisgICAgY2FzZSBKYXZhVHlwZVZv
aWQ6CiAgICAgICAgIHsKICAgICAgICAgICAgIHJlc3VsdFZhbHVlID0ganNVbmRlZmluZWQoKTsK
ICAgICAgICAgfQogICAgICAgICBicmVhazsKIAotICAgIGNhc2Ugb2JqZWN0X3R5cGU6CisgICAg
Y2FzZSBKYXZhVHlwZU9iamVjdDoKICAgICAgICAgewogICAgICAgICAgICAgaWYgKHJlc3VsdC5s
KSB7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IGFycmF5X3R5cGUgcmV0dXJuIHR5cGUgaXMg
aGFuZGxlZCBiZWxvdywgY2FuIHdlIGFjdHVhbGx5IGdldCBhbiBhcnJheSBoZXJlPwotICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIqIGFycmF5VHlwZSA9IGpNZXRob2QtPnJldHVyblR5cGUoKTsK
KyAgICAgICAgICAgICAgICAvLyBGSVhNRTogSmF2YVR5cGVBcnJheSByZXR1cm4gdHlwZSBpcyBo
YW5kbGVkIGJlbG93LCBjYW4gd2UgYWN0dWFsbHkgZ2V0IGFuIGFycmF5IGhlcmU/CisgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciogYXJyYXlUeXBlID0gak1ldGhvZC0+cmV0dXJuVHlwZUNsYXNz
TmFtZSgpOwogICAgICAgICAgICAgICAgIGlmIChhcnJheVR5cGVbMF0gPT0gJ1snKQogICAgICAg
ICAgICAgICAgICAgICByZXN1bHRWYWx1ZSA9IEphdmFBcnJheTo6Y29udmVydEpPYmplY3RUb0Fy
cmF5KGV4ZWMsIHJlc3VsdC5sLCBhcnJheVR5cGUsIHJvb3RPYmplY3QpOwogICAgICAgICAgICAg
ICAgIGVsc2UgewpAQCAtMjQ1LDYzICsyNDQsNjMgQEAgSlNWYWx1ZSBKYXZhSW5zdGFuY2U6Omlu
dm9rZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIFJ1bnRpbWVNZXRob2QqIHJ1bnRpbWVNZXRob2QK
ICAgICAgICAgfQogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgYm9vbGVhbl90eXBlOgorICAg
IGNhc2UgSmF2YVR5cGVCb29sZWFuOgogICAgICAgICB7CiAgICAgICAgICAgICByZXN1bHRWYWx1
ZSA9IGpzQm9vbGVhbihyZXN1bHQueik7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAg
ICBjYXNlIGJ5dGVfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlQnl0ZToKICAgICAgICAgewogICAg
ICAgICAgICAgcmVzdWx0VmFsdWUgPSBqc051bWJlcihyZXN1bHQuYik7CiAgICAgICAgIH0KICAg
ICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIGNoYXJfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlQ2hh
cjoKICAgICAgICAgewogICAgICAgICAgICAgcmVzdWx0VmFsdWUgPSBqc051bWJlcihyZXN1bHQu
Yyk7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIHNob3J0X3R5cGU6Cisg
ICAgY2FzZSBKYXZhVHlwZVNob3J0OgogICAgICAgICB7CiAgICAgICAgICAgICByZXN1bHRWYWx1
ZSA9IGpzTnVtYmVyKHJlc3VsdC5zKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAotICAg
IGNhc2UgaW50X3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUludDoKICAgICAgICAgewogICAgICAg
ICAgICAgcmVzdWx0VmFsdWUgPSBqc051bWJlcihyZXN1bHQuaSk7CiAgICAgICAgIH0KICAgICAg
ICAgYnJlYWs7CiAKLSAgICBjYXNlIGxvbmdfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlTG9uZzoK
ICAgICAgICAgewogICAgICAgICAgICAgcmVzdWx0VmFsdWUgPSBqc051bWJlcihyZXN1bHQuaik7
CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIGZsb2F0X3R5cGU6CisgICAg
Y2FzZSBKYXZhVHlwZUZsb2F0OgogICAgICAgICB7CiAgICAgICAgICAgICByZXN1bHRWYWx1ZSA9
IGpzTnVtYmVyKHJlc3VsdC5mKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAotICAgIGNh
c2UgZG91YmxlX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZURvdWJsZToKICAgICAgICAgewogICAg
ICAgICAgICAgcmVzdWx0VmFsdWUgPSBqc051bWJlcihyZXN1bHQuZCk7CiAgICAgICAgIH0KICAg
ICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIGFycmF5X3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUFy
cmF5OgogICAgICAgICB7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiBhcnJheVR5cGUgPSBqTWV0
aG9kLT5yZXR1cm5UeXBlKCk7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBhcnJheVR5cGUgPSBq
TWV0aG9kLT5yZXR1cm5UeXBlQ2xhc3NOYW1lKCk7CiAgICAgICAgICAgICBBU1NFUlQoYXJyYXlU
eXBlWzBdID09ICdbJyk7CiAgICAgICAgICAgICByZXN1bHRWYWx1ZSA9IEphdmFBcnJheTo6Y29u
dmVydEpPYmplY3RUb0FycmF5KGV4ZWMsIHJlc3VsdC5sLCBhcnJheVR5cGUsIHJvb3RPYmplY3Qp
OwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBpbnZhbGlkX3R5cGU6Cisg
ICAgY2FzZSBKYXZhVHlwZUludmFsaWQ6CiAgICAgICAgIHsKICAgICAgICAgICAgIHJlc3VsdFZh
bHVlID0ganNVbmRlZmluZWQoKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL2puaS92OC9KTklVdGlsaXR5UHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvam5pL3Y4L0pOSVV0aWxpdHlQcml2YXRlLmNwcAppbmRleCBhYmJkZmJkYjllNGYyMzBk
NGQ2MjUwZTEwMmM2NmRmNDMwOGViMDY3Li40Njk0YzM4ZTIxMDFiMDg0MTEwYzk4N2ZjODBmMDg4
Y2M2YjM5NzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL3Y4L0pOSVV0
aWxpdHlQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL3Y4L0pOSVV0
aWxpdHlQcml2YXRlLmNwcApAQCAtMzYsMTYgKzM2LDE2IEBAIG5hbWVzcGFjZSBKU0MgewogCiBu
YW1lc3BhY2UgQmluZGluZ3MgewogCi1qdmFsdWUgY29udmVydE5QVmFyaWFudFRvSlZhbHVlKE5Q
VmFyaWFudCB2YWx1ZSwgY29uc3QgV1RGOjpTdHJpbmcmIGphdmFUeXBlKQoranZhbHVlIGNvbnZl
cnROUFZhcmlhbnRUb0pWYWx1ZShOUFZhcmlhbnQgdmFsdWUsIGNvbnN0IFdURjo6U3RyaW5nJiBq
YXZhQ2xhc3MpCiB7Ci0gICAgQ1N0cmluZyBqYXZhQ2xhc3NOYW1lID0gamF2YVR5cGUudXRmOCgp
OwotICAgIEpOSVR5cGUgam5pVHlwZSA9IEpOSVR5cGVGcm9tQ2xhc3NOYW1lKGphdmFDbGFzc05h
bWUuZGF0YSgpKTsKKyAgICBDU3RyaW5nIGphdmFDbGFzc05hbWUgPSBqYXZhQ2xhc3MudXRmOCgp
OworICAgIEphdmFUeXBlIGphdmFUeXBlID0gamF2YVR5cGVGcm9tQ2xhc3NOYW1lKGphdmFDbGFz
c05hbWUuZGF0YSgpKTsKICAgICBqdmFsdWUgcmVzdWx0OwogICAgIE5QVmFyaWFudFR5cGUgdHlw
ZSA9IHZhbHVlLnR5cGU7CiAKLSAgICBzd2l0Y2ggKGpuaVR5cGUpIHsKLSAgICBjYXNlIGFycmF5
X3R5cGU6Ci0gICAgY2FzZSBvYmplY3RfdHlwZToKKyAgICBzd2l0Y2ggKGphdmFUeXBlKSB7Cisg
ICAgY2FzZSBKYXZhVHlwZUFycmF5OgorICAgIGNhc2UgSmF2YVR5cGVPYmplY3Q6CiAgICAgICAg
IHsKICAgICAgICAgICAgIHJlc3VsdC5sID0gc3RhdGljX2Nhc3Q8am9iamVjdD4oMCk7CiAKQEAg
LTgwLDcgKzgwLDcgQEAganZhbHVlIGNvbnZlcnROUFZhcmlhbnRUb0pWYWx1ZShOUFZhcmlhbnQg
dmFsdWUsIGNvbnN0IFdURjo6U3RyaW5nJiBqYXZhVHlwZSkKICAgICAgICAgfQogICAgICAgICBi
cmVhazsKIAotICAgIGNhc2UgYm9vbGVhbl90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVCb29sZWFu
OgogICAgICAgICB7CiAgICAgICAgICAgICBpZiAodHlwZSA9PSBOUFZhcmlhbnRUeXBlX0Jvb2wp
CiAgICAgICAgICAgICAgICAgcmVzdWx0LnogPSBOUFZBUklBTlRfVE9fQk9PTEVBTih2YWx1ZSk7
CkBAIC04OSw3ICs4OSw3IEBAIGp2YWx1ZSBjb252ZXJ0TlBWYXJpYW50VG9KVmFsdWUoTlBWYXJp
YW50IHZhbHVlLCBjb25zdCBXVEY6OlN0cmluZyYgamF2YVR5cGUpCiAgICAgICAgIH0KICAgICAg
ICAgYnJlYWs7CiAKLSAgICBjYXNlIGJ5dGVfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlQnl0ZToK
ICAgICAgICAgewogICAgICAgICAgICAgaWYgKHR5cGUgPT0gTlBWYXJpYW50VHlwZV9JbnQzMikK
ICAgICAgICAgICAgICAgICByZXN1bHQuYiA9IHN0YXRpY19jYXN0PGpieXRlPihOUFZBUklBTlRf
VE9fSU5UMzIodmFsdWUpKTsKQEAgLTEwMCw3ICsxMDAsNyBAQCBqdmFsdWUgY29udmVydE5QVmFy
aWFudFRvSlZhbHVlKE5QVmFyaWFudCB2YWx1ZSwgY29uc3QgV1RGOjpTdHJpbmcmIGphdmFUeXBl
KQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBjaGFyX3R5cGU6CisgICAg
Y2FzZSBKYXZhVHlwZUNoYXI6CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh0eXBlID09IE5Q
VmFyaWFudFR5cGVfSW50MzIpCiAgICAgICAgICAgICAgICAgcmVzdWx0LmMgPSBzdGF0aWNfY2Fz
dDxjaGFyPihOUFZBUklBTlRfVE9fSU5UMzIodmFsdWUpKTsKQEAgLTEwOSw3ICsxMDksNyBAQCBq
dmFsdWUgY29udmVydE5QVmFyaWFudFRvSlZhbHVlKE5QVmFyaWFudCB2YWx1ZSwgY29uc3QgV1RG
OjpTdHJpbmcmIGphdmFUeXBlKQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2Fz
ZSBzaG9ydF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVTaG9ydDoKICAgICAgICAgewogICAgICAg
ICAgICAgaWYgKHR5cGUgPT0gTlBWYXJpYW50VHlwZV9JbnQzMikKICAgICAgICAgICAgICAgICBy
ZXN1bHQucyA9IHN0YXRpY19jYXN0PGpzaG9ydD4oTlBWQVJJQU5UX1RPX0lOVDMyKHZhbHVlKSk7
CkBAIC0xMjAsNyArMTIwLDcgQEAganZhbHVlIGNvbnZlcnROUFZhcmlhbnRUb0pWYWx1ZShOUFZh
cmlhbnQgdmFsdWUsIGNvbnN0IFdURjo6U3RyaW5nJiBqYXZhVHlwZSkKICAgICAgICAgfQogICAg
ICAgICBicmVhazsKIAotICAgIGNhc2UgaW50X3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZUludDoK
ICAgICAgICAgewogICAgICAgICAgICAgaWYgKHR5cGUgPT0gTlBWYXJpYW50VHlwZV9JbnQzMikK
ICAgICAgICAgICAgICAgICByZXN1bHQuaSA9IHN0YXRpY19jYXN0PGppbnQ+KE5QVkFSSUFOVF9U
T19JTlQzMih2YWx1ZSkpOwpAQCAtMTMxLDcgKzEzMSw3IEBAIGp2YWx1ZSBjb252ZXJ0TlBWYXJp
YW50VG9KVmFsdWUoTlBWYXJpYW50IHZhbHVlLCBjb25zdCBXVEY6OlN0cmluZyYgamF2YVR5cGUp
CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIGxvbmdfdHlwZToKKyAgICBj
YXNlIEphdmFUeXBlTG9uZzoKICAgICAgICAgewogICAgICAgICAgICAgaWYgKHR5cGUgPT0gTlBW
YXJpYW50VHlwZV9JbnQzMikKICAgICAgICAgICAgICAgICByZXN1bHQuaiA9IHN0YXRpY19jYXN0
PGpsb25nPihOUFZBUklBTlRfVE9fSU5UMzIodmFsdWUpKTsKQEAgLTE0Miw3ICsxNDIsNyBAQCBq
dmFsdWUgY29udmVydE5QVmFyaWFudFRvSlZhbHVlKE5QVmFyaWFudCB2YWx1ZSwgY29uc3QgV1RG
OjpTdHJpbmcmIGphdmFUeXBlKQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2Fz
ZSBmbG9hdF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVGbG9hdDoKICAgICAgICAgewogICAgICAg
ICAgICAgaWYgKHR5cGUgPT0gTlBWYXJpYW50VHlwZV9JbnQzMikKICAgICAgICAgICAgICAgICBy
ZXN1bHQuZiA9IHN0YXRpY19jYXN0PGpmbG9hdD4oTlBWQVJJQU5UX1RPX0lOVDMyKHZhbHVlKSk7
CkBAIC0xNTMsNyArMTUzLDcgQEAganZhbHVlIGNvbnZlcnROUFZhcmlhbnRUb0pWYWx1ZShOUFZh
cmlhbnQgdmFsdWUsIGNvbnN0IFdURjo6U3RyaW5nJiBqYXZhVHlwZSkKICAgICAgICAgfQogICAg
ICAgICBicmVhazsKIAotICAgIGNhc2UgZG91YmxlX3R5cGU6CisgICAgY2FzZSBKYXZhVHlwZURv
dWJsZToKICAgICAgICAgewogICAgICAgICAgICAgaWYgKHR5cGUgPT0gTlBWYXJpYW50VHlwZV9J
bnQzMikKICAgICAgICAgICAgICAgICByZXN1bHQuZCA9IHN0YXRpY19jYXN0PGpkb3VibGU+KE5Q
VkFSSUFOVF9UT19JTlQzMih2YWx1ZSkpOwpAQCAtMTY2LDkgKzE2Niw5IEBAIGp2YWx1ZSBjb252
ZXJ0TlBWYXJpYW50VG9KVmFsdWUoTlBWYXJpYW50IHZhbHVlLCBjb25zdCBXVEY6OlN0cmluZyYg
amF2YVR5cGUpCiAKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIGludmFsaWRfdHlwZToKKyAg
ICBjYXNlIEphdmFUeXBlSW52YWxpZDoKICAgICBkZWZhdWx0OgotICAgIGNhc2Ugdm9pZF90eXBl
OgorICAgIGNhc2UgSmF2YVR5cGVWb2lkOgogICAgICAgICB7CiAgICAgICAgICAgICBtZW1zZXQo
JnJlc3VsdCwgMCwgc2l6ZW9mKGp2YWx1ZSkpOwogICAgICAgICB9CkBAIC0xNzgsMTYgKzE3OCwx
NiBAQCBqdmFsdWUgY29udmVydE5QVmFyaWFudFRvSlZhbHVlKE5QVmFyaWFudCB2YWx1ZSwgY29u
c3QgV1RGOjpTdHJpbmcmIGphdmFUeXBlKQogfQogCiAKLXZvaWQgY29udmVydEpWYWx1ZVRvTlBW
YXJpYW50KGp2YWx1ZSB2YWx1ZSwgSk5JVHlwZSBqbmlUeXBlLCBjb25zdCBjaGFyKiBqYXZhVHlw
ZU5hbWUsIE5QVmFyaWFudCogcmVzdWx0KQordm9pZCBjb252ZXJ0SlZhbHVlVG9OUFZhcmlhbnQo
anZhbHVlIHZhbHVlLCBKYXZhVHlwZSBqYXZhVHlwZSwgY29uc3QgY2hhciogamF2YVR5cGVOYW1l
LCBOUFZhcmlhbnQqIHJlc3VsdCkKIHsKLSAgICBzd2l0Y2ggKGpuaVR5cGUpIHsKLSAgICBjYXNl
IHZvaWRfdHlwZToKKyAgICBzd2l0Y2ggKGphdmFUeXBlKSB7CisgICAgY2FzZSBKYXZhVHlwZVZv
aWQ6CiAgICAgICAgIHsKICAgICAgICAgICAgIFZPSURfVE9fTlBWQVJJQU5UKCpyZXN1bHQpOwog
ICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBvYmplY3RfdHlwZToKKyAgICBj
YXNlIEphdmFUeXBlT2JqZWN0OgogICAgICAgICB7CiAgICAgICAgICAgICBpZiAodmFsdWUubCkg
ewogICAgICAgICAgICAgICAgIGlmICghc3RyY21wKGphdmFUeXBlTmFtZSwgImphdmEubGFuZy5T
dHJpbmciKSkgewpAQCAtMjAzLDU2ICsyMDMsNTYgQEAgdm9pZCBjb252ZXJ0SlZhbHVlVG9OUFZh
cmlhbnQoanZhbHVlIHZhbHVlLCBKTklUeXBlIGpuaVR5cGUsIGNvbnN0IGNoYXIqIGphdmFUeXAK
ICAgICAgICAgfQogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgYm9vbGVhbl90eXBlOgorICAg
IGNhc2UgSmF2YVR5cGVCb29sZWFuOgogICAgICAgICB7CiAgICAgICAgICAgICBCT09MRUFOX1RP
X05QVkFSSUFOVCh2YWx1ZS56LCAqcmVzdWx0KTsKICAgICAgICAgfQogICAgICAgICBicmVhazsK
IAotICAgIGNhc2UgYnl0ZV90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVCeXRlOgogICAgICAgICB7
CiAgICAgICAgICAgICBJTlQzMl9UT19OUFZBUklBTlQodmFsdWUuYiwgKnJlc3VsdCk7CiAgICAg
ICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIGNoYXJfdHlwZToKKyAgICBjYXNlIEph
dmFUeXBlQ2hhcjoKICAgICAgICAgewogICAgICAgICAgICAgSU5UMzJfVE9fTlBWQVJJQU5UKHZh
bHVlLmMsICpyZXN1bHQpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBz
aG9ydF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVTaG9ydDoKICAgICAgICAgewogICAgICAgICAg
ICAgSU5UMzJfVE9fTlBWQVJJQU5UKHZhbHVlLnMsICpyZXN1bHQpOwogICAgICAgICB9CiAgICAg
ICAgIGJyZWFrOwogCi0gICAgY2FzZSBpbnRfdHlwZToKKyAgICBjYXNlIEphdmFUeXBlSW50Ogog
ICAgICAgICB7CiAgICAgICAgICAgICBJTlQzMl9UT19OUFZBUklBTlQodmFsdWUuaSwgKnJlc3Vs
dCk7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgLy8gVE9ETzogQ2hlY2sg
aWYgY2FzdCB0byBkb3VibGUgaXMgbmVlZGVkLgotICAgIGNhc2UgbG9uZ190eXBlOgorICAgIGNh
c2UgSmF2YVR5cGVMb25nOgogICAgICAgICB7CiAgICAgICAgICAgICBET1VCTEVfVE9fTlBWQVJJ
QU5UKHZhbHVlLmosICpyZXN1bHQpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAg
Y2FzZSBmbG9hdF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVGbG9hdDoKICAgICAgICAgewogICAg
ICAgICAgICAgRE9VQkxFX1RPX05QVkFSSUFOVCh2YWx1ZS5mLCAqcmVzdWx0KTsKICAgICAgICAg
fQogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgZG91YmxlX3R5cGU6CisgICAgY2FzZSBKYXZh
VHlwZURvdWJsZToKICAgICAgICAgewogICAgICAgICAgICAgRE9VQkxFX1RPX05QVkFSSUFOVCh2
YWx1ZS5kLCAqcmVzdWx0KTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAotICAgIGNhc2Ug
aW52YWxpZF90eXBlOgorICAgIGNhc2UgSmF2YVR5cGVJbnZhbGlkOgogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIHsKICAgICAgICAgICAgIFZPSURfVE9fTlBWQVJJQU5UKCpyZXN1bHQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9KTklVdGlsaXR5UHJpdmF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9KTklVdGlsaXR5UHJpdmF0ZS5oCmluZGV4IGRm
NzNhOWU0NmM3MGVmNGViNGMzYWUxZTQ4YzY0ZWEyMjI4MWUwODUuLjc5MTU5Mzk2MzNlN2E4Nzgx
ZmY1MzExMTY5NWY3ZDE3ZTc4YWVmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9qbmkvdjgvSk5JVXRpbGl0eVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
am5pL3Y4L0pOSVV0aWxpdHlQcml2YXRlLmgKQEAgLTM2LDggKzM2LDggQEAgbmFtZXNwYWNlIEpT
QyB7CiAKIG5hbWVzcGFjZSBCaW5kaW5ncyB7CiAKLWp2YWx1ZSBjb252ZXJ0TlBWYXJpYW50VG9K
VmFsdWUoTlBWYXJpYW50LCBjb25zdCBXVEY6OlN0cmluZyYgamF2YVR5cGUpOwotdm9pZCBjb252
ZXJ0SlZhbHVlVG9OUFZhcmlhbnQoanZhbHVlLCBKTklUeXBlLCBjb25zdCBjaGFyKiBqYXZhQ2xh
c3NOYW1lLCBOUFZhcmlhbnQqKTsKK2p2YWx1ZSBjb252ZXJ0TlBWYXJpYW50VG9KVmFsdWUoTlBW
YXJpYW50LCBjb25zdCBXVEY6OlN0cmluZyYgamF2YUNsYXNzKTsKK3ZvaWQgY29udmVydEpWYWx1
ZVRvTlBWYXJpYW50KGp2YWx1ZSwgSmF2YVR5cGUsIGNvbnN0IGNoYXIqIGphdmFDbGFzc05hbWUs
IE5QVmFyaWFudCopOwogCiB9IC8vIG5hbWVzcGFjZSBCaW5kaW5ncwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL3Y4L0phdmFGaWVsZFY4LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9qbmkvdjgvSmF2YUZpZWxkVjguY3BwCmluZGV4IDYyMDgxZWIyNDg5YjU0ZGNm
ZDFjNzA1NWJmNjJmZmNlODBmYTk1ZmIuLjJhNmRkMGJhMDcwNWE0OWJjYjU0NzlkZGYwZWU0Nzdm
NDYzNTk5MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgvSmF2YUZp
ZWxkVjguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgvSmF2YUZpZWxkVjgu
Y3BwCkBAIC0zNSw4ICszNSw4IEBAIEphdmFGaWVsZDo6SmF2YUZpZWxkKEpOSUVudiogZW52LCBq
b2JqZWN0IGFGaWVsZCkKICAgICAvLyBHZXQgZmllbGQgdHlwZQogICAgIGpvYmplY3QgZmllbGRU
eXBlID0gY2FsbEpOSU1ldGhvZDxqb2JqZWN0PihhRmllbGQsICJnZXRUeXBlIiwgIigpTGphdmEv
bGFuZy9DbGFzczsiKTsKICAgICBqc3RyaW5nIGZpZWxkVHlwZU5hbWUgPSBzdGF0aWNfY2FzdDxq
c3RyaW5nPihjYWxsSk5JTWV0aG9kPGpvYmplY3Q+KGZpZWxkVHlwZSwgImdldE5hbWUiLCAiKClM
amF2YS9sYW5nL1N0cmluZzsiKSk7Ci0gICAgbV90eXBlID0gSmF2YVN0cmluZyhlbnYsIGZpZWxk
VHlwZU5hbWUpOwotICAgIG1fSk5JVHlwZSA9IEpOSVR5cGVGcm9tQ2xhc3NOYW1lKG1fdHlwZS51
dGY4KCkpOworICAgIG1fdHlwZUNsYXNzTmFtZSA9IEphdmFTdHJpbmcoZW52LCBmaWVsZFR5cGVO
YW1lKTsKKyAgICBtX3R5cGUgPSBqYXZhVHlwZUZyb21DbGFzc05hbWUobV90eXBlQ2xhc3NOYW1l
LnV0ZjgoKSk7CiAKICAgICAvLyBHZXQgZmllbGQgbmFtZQogICAgIGpzdHJpbmcgZmllbGROYW1l
ID0gc3RhdGljX2Nhc3Q8anN0cmluZz4oY2FsbEpOSU1ldGhvZDxqb2JqZWN0PihhRmllbGQsICJn
ZXROYW1lIiwgIigpTGphdmEvbGFuZy9TdHJpbmc7IikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL2puaS92OC9KYXZhRmllbGRWOC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L2puaS92OC9KYXZhRmllbGRWOC5oCmluZGV4IGNhZjI4YmZiODk4ODFkNGExNTkxZjllZjFhZmRk
ODFkNWIxZmEwMTkuLmRlZmVkNjBlMmMwZWY1NDc3ZjNlMjdlYTEwNGYzNmVjMTJkNDNhNjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgvSmF2YUZpZWxkVjguaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL3Y4L0phdmFGaWVsZFY4LmgKQEAgLTQwLDE0ICs0
MCwxMyBAQCBwdWJsaWM6CiAgICAgSmF2YUZpZWxkKEpOSUVudiosIGpvYmplY3QgYUZpZWxkKTsK
IAogICAgIGNvbnN0IEphdmFTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0K
LSAgICBjb25zdCBjaGFyKiB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlLnV0ZjgoKTsgfQot
Ci0gICAgSk5JVHlwZSBnZXRKTklUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9KTklUeXBlOyB9Cisg
ICAgY29uc3QgY2hhciogdHlwZUNsYXNzTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZUNsYXNz
TmFtZS51dGY4KCk7IH0KKyAgICBKYXZhVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBl
OyB9CiAKIHByaXZhdGU6CiAgICAgSmF2YVN0cmluZyBtX25hbWU7Ci0gICAgSmF2YVN0cmluZyBt
X3R5cGU7Ci0gICAgSk5JVHlwZSBtX0pOSVR5cGU7CisgICAgSmF2YVN0cmluZyBtX3R5cGVDbGFz
c05hbWU7CisgICAgSmF2YVR5cGUgbV90eXBlOwogICAgIFJlZlB0cjxKb2JqZWN0V3JhcHBlcj4g
bV9maWVsZDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgv
SmF2YUluc3RhbmNlVjguY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9KYXZhSW5z
dGFuY2VWOC5jcHAKaW5kZXggMDI0MTIyY2FhMmEyMGNhZjUxNzFiMjZkOTgzMTYwMzAxYTVhM2Y0
MC4uYTA3Mjk1YzhmZWFhMjhlMDc0NzUyMjkyMTIyMDc2OGQyZGJlMmI4ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9KYXZhSW5zdGFuY2VWOC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9KYXZhSW5zdGFuY2VWOC5jcHAKQEAgLTcyLDEzICs3
MiwxMyBAQCBKYXZhQ2xhc3MqIEphdmFJbnN0YW5jZTo6Z2V0Q2xhc3MoKSBjb25zdAoganZhbHVl
IEphdmFJbnN0YW5jZTo6aW52b2tlTWV0aG9kKGNvbnN0IEphdmFNZXRob2QqIG1ldGhvZCwganZh
bHVlKiBhcmdzKQogewogICAgIEFTU0VSVChnZXRDbGFzcygpLT5tZXRob2RzTmFtZWQobWV0aG9k
LT5uYW1lKCkudXRmOCgpKS5maW5kKG1ldGhvZCkgIT0gbm90Rm91bmQpOwotICAgIHJldHVybiBj
YWxsSk5JTWV0aG9kKGphdmFJbnN0YW5jZSgpLCBtZXRob2QtPkpOSVJldHVyblR5cGUoKSwgbWV0
aG9kLT5uYW1lKCkudXRmOCgpLCBtZXRob2QtPnNpZ25hdHVyZSgpLCBhcmdzKTsKKyAgICByZXR1
cm4gY2FsbEpOSU1ldGhvZChqYXZhSW5zdGFuY2UoKSwgbWV0aG9kLT5yZXR1cm5UeXBlKCksIG1l
dGhvZC0+bmFtZSgpLnV0ZjgoKSwgbWV0aG9kLT5zaWduYXR1cmUoKSwgYXJncyk7CiB9CiAKIGp2
YWx1ZSBKYXZhSW5zdGFuY2U6OmdldEZpZWxkKGNvbnN0IEphdmFGaWVsZCogZmllbGQpCiB7CiAg
ICAgQVNTRVJUKGdldENsYXNzKCktPmZpZWxkTmFtZWQoZmllbGQtPm5hbWUoKS51dGY4KCkpID09
IGZpZWxkKTsKLSAgICByZXR1cm4gZ2V0Sk5JRmllbGQoamF2YUluc3RhbmNlKCksIGZpZWxkLT5n
ZXRKTklUeXBlKCksIGZpZWxkLT5uYW1lKCkudXRmOCgpLCBmaWVsZC0+dHlwZSgpKTsKKyAgICBy
ZXR1cm4gZ2V0Sk5JRmllbGQoamF2YUluc3RhbmNlKCksIGZpZWxkLT50eXBlKCksIGZpZWxkLT5u
YW1lKCkudXRmOCgpLCBmaWVsZC0+dHlwZUNsYXNzTmFtZSgpKTsKIH0KIAogI2VuZGlmIC8vIEVO
QUJMRShKQVZBX0JSSURHRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkv
djgvSmF2YU5QT2JqZWN0VjguY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9KYXZh
TlBPYmplY3RWOC5jcHAKaW5kZXggMmMxNTQwYjNkN2QzNjgxNDk4NTlkYTk1YWFjMzJjOWFlOTcz
NDMzOC4uMDkxNzQwNzI4YmRmZjMzMWM0YTJjNmIzMjMxYmMzZGU2NWIzMGJkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9KYXZhTlBPYmplY3RWOC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9KYXZhTlBPYmplY3RWOC5jcHAKQEAgLTE1MSw3
ICsxNTEsNyBAQCBib29sIEphdmFOUE9iamVjdEludm9rZShOUE9iamVjdCogb2JqLCBOUElkZW50
aWZpZXIgaWRlbnRpZmllciwgY29uc3QgTlBWYXJpYW50KgogICAgIGZyZWUoakFyZ3MpOwogCiAg
ICAgVk9JRF9UT19OUFZBUklBTlQoKnJlc3VsdCk7Ci0gICAgY29udmVydEpWYWx1ZVRvTlBWYXJp
YW50KGpSZXN1bHQsIGpNZXRob2QtPkpOSVJldHVyblR5cGUoKSwgak1ldGhvZC0+cmV0dXJuVHlw
ZSgpLCByZXN1bHQpOworICAgIGNvbnZlcnRKVmFsdWVUb05QVmFyaWFudChqUmVzdWx0LCBqTWV0
aG9kLT5yZXR1cm5UeXBlKCksIGpNZXRob2QtPnJldHVyblR5cGVDbGFzc05hbWUoKSwgcmVzdWx0
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTg5LDcgKzE4OSw3IEBAIGJvb2wgSmF2YU5Q
T2JqZWN0R2V0UHJvcGVydHkoTlBPYmplY3QqIG9iaiwgTlBJZGVudGlmaWVyIGlkZW50aWZpZXIs
IE5QVmFyaWFudCoKICAgICBqdmFsdWUgdmFsdWUgPSBpbnN0YW5jZS0+Z2V0RmllbGQoZmllbGQp
OwogICAgIGluc3RhbmNlLT5lbmQoKTsKIAotICAgIGNvbnZlcnRKVmFsdWVUb05QVmFyaWFudCh2
YWx1ZSwgZmllbGQtPmdldEpOSVR5cGUoKSwgZmllbGQtPnR5cGUoKSwgcmVzdWx0KTsKKyAgICBj
b252ZXJ0SlZhbHVlVG9OUFZhcmlhbnQodmFsdWUsIGZpZWxkLT50eXBlKCksIGZpZWxkLT50eXBl
Q2xhc3NOYW1lKCksIHJlc3VsdCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
</data>
<flag name="commit-queue"
          id="79080"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>