<?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>123150</bug_id>
          
          <creation_ts>2013-10-22 04:47:01 -0700</creation_ts>
          <short_desc>Introduce RENDER_OBJECT_TYPE_CASTS to replace manual toFoo() in child render object</short_desc>
          <delta_ts>2013-10-23 18:28:42 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>942233</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-10-22 04:47:01 -0700</bug_when>
    <thetext>As a step to let toFoo use TYPE_CASTS_BASE, toRenderFoo() can use it for child render object. So, this patch introduces RENDER_OBJECT_TYPE_CASTS based on the TYPE_CASTS_BASE. This will generate plenty more helper functions for render object type cast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942237</commentid>
    <comment_count>1</comment_count>
      <attachid>214839</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-10-22 04:50:56 -0700</bug_when>
    <thetext>Created attachment 214839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942502</commentid>
    <comment_count>2</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-10-22 17:09:11 -0700</bug_when>
    <thetext>CC&apos;ing Kling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942607</commentid>
    <comment_count>3</comment_count>
      <attachid>214936</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-10-23 00:55:10 -0700</bug_when>
    <thetext>Created attachment 214936
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942943</commentid>
    <comment_count>4</comment_count>
      <attachid>214936</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-23 18:28:39 -0700</bug_when>
    <thetext>Comment on attachment 214936
Patch

Clearing flags on attachment: 214936

Committed r157907: &lt;http://trac.webkit.org/changeset/157907&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942944</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-23 18:28:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214839</attachid>
            <date>2013-10-22 04:50:56 -0700</date>
            <delta_ts>2013-10-23 00:55:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123150-20131022205054.patch</filename>
            <type>text/plain</type>
            <size>71402</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3NzgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjZhMTlkMGQzMjNiZDUy
ZDE0OGRlZTlhNmFiYTY0MDU3ZTQ0MzNlZC4uMmIxNzA3NjQ5ZTVmODdhYjBiZjM5MmE3ZjQ0YWE5
NTE3ZGRmMzYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDg3IEBACiAyMDEzLTEwLTIyICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKKyAgICAgICAgSW50cm9kdWNl
IFJFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyB0byByZXBsYWNlIG1hbnVhbCB0b0ZvbygpIGluIGNo
aWxkIHJlbmRlciBvYmplY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyMzE1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFzIGEgc3RlcCB0byBsZXQgdG9Gb28gdXNlIFRZUEVfQ0FTVFNfQkFTRSwgdG9S
ZW5kZXJGb28oKSBjYW4gdXNlIGl0IGZvciBjaGlsZCByZW5kZXIgb2JqZWN0LgorICAgICAgICBT
bywgdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIFJFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyBiYXNlZCBv
biB0aGUgVFlQRV9DQVNUU19CQVNFLiBUaGlzIHdpbGwKKyAgICAgICAgZ2VuZXJhdGUgcGxlbnR5
IG1vcmUgaGVscGVyIGZ1bmN0aW9ucyBmb3IgcmVuZGVyIG9iamVjdCB0eXBlIGNhc3QuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxv
dy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQnV0
dG9uLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVu
dDo6Z2VuZXJhdGluZ0VsZW1lbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRl
ZE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJGbGV4aWJsZUJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93
VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZyYW1lLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZ1
bGxTY3JlZW4uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJJRnJhbWUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGluZUJyZWFrLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTWVkaWEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3Qu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWV0ZXIuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJN
dWx0aUNvbHVtblNldC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFn
bWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclByb2dyZXNzLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclF1b3RlLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclBhcnQuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyU2VhcmNoRmllbGQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2xpZGVy
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ2FwdGlvbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGFibGVSb3cuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0
aW9uLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2xNdWx0aUxpbmUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdJbWFnZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4
dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUGF0aC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlOjpzdHlsZURpZENoYW5n
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290Lmg6CisgICAgICAgICog
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHVGV4dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dFBh
dGguaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVy
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVGbG93Qm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0lubGluZUZsb3dCb3g6OnBhaW50KToKKworMjAxMy0xMC0yMiAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCiAgICAgICAgIEludHJvZHVj
ZSBBQ0NFU1NJQklMSVRZX09CSkVDVF9UWVBFX0NBU1RTIHRvIHJlcGxhY2UgbWFudWFsIHRvRm9v
KCkgaW4gYWNjZXNzaWJpbGl0eSBjaGlsZCBjbGFzcwogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTQwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmgKaW5kZXggYTdiNjZhODBlMTk1NTUyNWYyZDFiNjEyOGMxNGQ1NDNkOWQyZWQ4
YS4uMjU0ZjE0ZGQ2MGQ1OTcxNTFlMmY4ZGYyMDQyYzIzNzA2MTcxNGNlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKQEAgLTc3NiwzMyArNzc2LDcgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgYm9vbCBzX2NhblByb3BhZ2F0ZUZsb2F0SW50b1NpYmxpbmc7CiB9OwogCi1p
bmxpbmUgUmVuZGVyQmxvY2smIHRvUmVuZGVyQmxvY2soUmVuZGVyT2JqZWN0JiBvYmplY3QpCi17
Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ob2JqZWN0LmlzUmVuZGVyQmxv
Y2soKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlckJsb2NrJj4ob2JqZWN0KTsKLX0K
LQotaW5saW5lIGNvbnN0IFJlbmRlckJsb2NrJiB0b1JlbmRlckJsb2NrKGNvbnN0IFJlbmRlck9i
amVjdCYgb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9i
amVjdC5pc1JlbmRlckJsb2NrKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5k
ZXJCbG9jayY+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBSZW5kZXJCbG9jayogdG9SZW5kZXJCbG9j
ayhSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsgCi0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyQmxvY2soKSk7Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PFJlbmRlckJsb2NrKj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNvbnN0IFJl
bmRlckJsb2NrKiB0b1JlbmRlckJsb2NrKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQoteyAK
LSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+
aXNSZW5kZXJCbG9jaygpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyQmxv
Y2sqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVu
bmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqKTsK
LXZvaWQgdG9SZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayYpOworUkVOREVSX09CSkVDVF9U
WVBFX0NBU1RTKFJlbmRlckJsb2NrLCBpc1JlbmRlckJsb2NrKCkpCiAKIExheW91dFVuaXQgYmxv
Y2tEaXJlY3Rpb25PZmZzZXQoUmVuZGVyQmxvY2sqIHJvb3RCbG9jaywgY29uc3QgTGF5b3V0U2l6
ZSYgb2Zmc2V0RnJvbVJvb3RCbG9jayk7CiBMYXlvdXRVbml0IGlubGluZURpcmVjdGlvbk9mZnNl
dChSZW5kZXJCbG9jayogcm9vdEJsb2NrLCBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXRGcm9tUm9v
dEJsb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAppbmRl
eCAxOWIxNzg3MWRiNjczYWMwNDI1ODQ0ZWQ5NzE2ODVjY2UyZTFmYzM4Li5jZTY3MTFjYmMwOWE4
YTZlZWEzNjQwMTA3NWVkNjUwMjgyZjA5NTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrRmxvdy5oCkBAIC00ODIsMzMgKzQ4Miw3IEBAIHByb3RlY3RlZDoKICAgICBm
cmllbmQgY2xhc3MgTGluZVdpZHRoOyAvLyBOZWVkcyB0byBrbm93IEZsb2F0aW5nT2JqZWN0CiB9
OwogCi1pbmxpbmUgUmVuZGVyQmxvY2tGbG93JiB0b1JlbmRlckJsb2NrRmxvdyhSZW5kZXJPYmpl
Y3QmIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmpl
Y3QuaXNSZW5kZXJCbG9ja0Zsb3coKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlckJs
b2NrRmxvdyY+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIHRv
UmVuZGVyQmxvY2tGbG93KGNvbnN0IFJlbmRlck9iamVjdCYgb2JqZWN0KQotewotICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9iamVjdC5pc1JlbmRlckJsb2NrRmxvdygpKTsK
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyQmxvY2tGbG93Jj4ob2JqZWN0KTsK
LX0KLQotaW5saW5lIFJlbmRlckJsb2NrRmxvdyogdG9SZW5kZXJCbG9ja0Zsb3coUmVuZGVyT2Jq
ZWN0KiBvYmplY3QpCi17IAotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFv
YmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlckJsb2NrRmxvdygpKTsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8UmVuZGVyQmxvY2tGbG93Kj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNvbnN0IFJlbmRl
ckJsb2NrRmxvdyogdG9SZW5kZXJCbG9ja0Zsb3coY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3Qp
Ci17IAotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2Jq
ZWN0LT5pc1JlbmRlckJsb2NrRmxvdygpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
UmVuZGVyQmxvY2tGbG93Kj4ob2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9u
ZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlckJsb2NrRmxvdyhjb25z
dCBSZW5kZXJCbG9ja0Zsb3cqKTsKLXZvaWQgdG9SZW5kZXJCbG9ja0Zsb3coY29uc3QgUmVuZGVy
QmxvY2tGbG93Jik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyQmxvY2tGbG93LCBp
c1JlbmRlckJsb2NrRmxvdygpKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBkZmQxNGJlMzY5YmMxYjg2NmYzYmJjYjJiMTQ1
ZDZmODEyN2E0OTIyLi42YmJjZTU3YzMxMGQ5ZWRkMWVhMTI3Y2FhZjBlZWVhNzBiZWNjZThmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC03MTIsMzMgKzcxMiw3IEBAIHBy
aXZhdGU6CiAgICAgc3RhdGljIGJvb2wgc19oYWRPdmVyZmxvd0NsaXA7CiB9OwogCi1pbmxpbmUg
UmVuZGVyQm94JiB0b1JlbmRlckJveChSZW5kZXJPYmplY3QmIG9iamVjdCkKLXsKLSAgICBBU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3QuaXNCb3goKSk7Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PFJlbmRlckJveCY+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5k
ZXJCb3gmIHRvUmVuZGVyQm94KGNvbnN0IFJlbmRlck9iamVjdCYgb2JqZWN0KQotewotICAgIEFT
U0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9iamVjdC5pc0JveCgpKTsKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyQm94Jj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIFJl
bmRlckJveCogdG9SZW5kZXJCb3goUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17IAotICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc0JveCgpKTsK
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyQm94Kj4ob2JqZWN0KTsKLX0KLQotaW5saW5l
IGNvbnN0IFJlbmRlckJveCogdG9SZW5kZXJCb3goY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3Qp
Ci17IAotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2Jq
ZWN0LT5pc0JveCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyQm94Kj4o
b2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vz
c2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlckJveChjb25zdCBSZW5kZXJCb3gqKTsKLXZvaWQgdG9S
ZW5kZXJCb3goY29uc3QgUmVuZGVyQm94Jik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVu
ZGVyQm94LCBpc0JveCgpKQogCiBpbmxpbmUgUmVuZGVyQm94KiBSZW5kZXJCb3g6OnByZXZpb3Vz
U2libGluZ0JveCgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3hNb2RlbE9iamVjdC5oCmluZGV4IDk0NTg3NmZiOTYzZGYwZDE3OWY3NTA0M2EwODc1MmFk
NjBkZmFlMWQuLmZiM2E5Njc5MDFjNTU0ZDZiMjIxMGNmOTkwNTQ0ZDc3MTJiYzA5NjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCkBAIC0z
NDAsMzMgKzM0MCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29s
b3IsIEVCb3JkZXJTdHlsZSwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBib29sIGluY2x1ZGVM
b2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpOwogfTsKIAotaW5s
aW5lIFJlbmRlckJveE1vZGVsT2JqZWN0JiB0b1JlbmRlckJveE1vZGVsT2JqZWN0KFJlbmRlck9i
amVjdCYgb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9i
amVjdC5pc0JveE1vZGVsT2JqZWN0KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJC
b3hNb2RlbE9iamVjdCY+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJCb3hNb2Rl
bE9iamVjdCYgdG9SZW5kZXJCb3hNb2RlbE9iamVjdChjb25zdCBSZW5kZXJPYmplY3QmIG9iamVj
dCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3QuaXNCb3hN
b2RlbE9iamVjdCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyQm94TW9k
ZWxPYmplY3QmPihvYmplY3QpOwotfQotCi1pbmxpbmUgUmVuZGVyQm94TW9kZWxPYmplY3QqIHRv
UmVuZGVyQm94TW9kZWxPYmplY3QoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17IAotICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc0JveE1vZGVs
T2JqZWN0KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdCo+
KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCogdG9SZW5k
ZXJCb3hNb2RlbE9iamVjdChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsgCi0gICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzQm94TW9k
ZWxPYmplY3QoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlckJveE1vZGVs
T2JqZWN0Kj4ob2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBh
biB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlckJveE1vZGVsT2JqZWN0KGNvbnN0IFJl
bmRlckJveE1vZGVsT2JqZWN0Kik7Ci12b2lkIHRvUmVuZGVyQm94TW9kZWxPYmplY3QoY29uc3Qg
UmVuZGVyQm94TW9kZWxPYmplY3QmKTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJC
b3hNb2RlbE9iamVjdCwgaXNCb3hNb2RlbE9iamVjdCgpKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24u
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaAppbmRleCBiOTJiYmE1
MTM4ZWQzZGYwM2U2NTA0OWFmNDQyZGQxOGQ5ZDdkZjM1Li4yYjI3YzM0OTgzMGMwODRlYzFhNDE1
ODc2YmRlZWU3N2NlZDg5N2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQnV0dG9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRv
bi5oCkBAIC03OSwyMCArNzksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kZWZhdWx0OwogfTsK
IAotaW5saW5lIFJlbmRlckJ1dHRvbiogdG9SZW5kZXJCdXR0b24oUmVuZGVyT2JqZWN0KiBvYmpl
Y3QpCi17IAotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwg
b2JqZWN0LT5pc1JlbmRlckJ1dHRvbigpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVy
QnV0dG9uKj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNvbnN0IFJlbmRlckJ1dHRvbiogdG9SZW5k
ZXJCdXR0b24oY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17IAotICAgIEFTU0VSVF9XSVRI
X1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlckJ1dHRvbigp
KTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyQnV0dG9uKj4ob2JqZWN0KTsK
LX0KLQotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0
Lgotdm9pZCB0b1JlbmRlckJ1dHRvbihjb25zdCBSZW5kZXJCdXR0b24qKTsKK1JFTkRFUl9PQkpF
Q1RfVFlQRV9DQVNUUyhSZW5kZXJCdXR0b24sIGlzUmVuZGVyQnV0dG9uKCkpCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckNvdW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmgK
aW5kZXggZWFlMzlmMjJjZGNmYTkxMzY1NTZjZmMyMmM1MzU5MTFjM2I0ZjAyZC4uMDNkOGEyY2Ez
OWY2ZTgyNTY4N2Q3NTAwMWMyODg0NzE5YTIxNWVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQ291bnRlci5oCkBAIC02MiwxNCArNjIsNyBAQCBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBDb3VudGVyTm9kZTsKIH07CiAKLWlubGluZSBSZW5kZXJDb3VudGVyKiB0b1JlbmRl
ckNvdW50ZXIoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJ
VFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzQ291bnRlcigpKTsKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8UmVuZGVyQ291bnRlcio+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2ls
bCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJD
b3VudGVyKGNvbnN0IFJlbmRlckNvdW50ZXIqKTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhS
ZW5kZXJDb3VudGVyLCBpc0NvdW50ZXIoKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAppbmRleCBhNGQyYmU2NzBjYjQ0
MDgzOWVmNGIwNGM5MDIzODJhZTkzNWVkM2Q1Li4xYTI3MjI5YTZmOWRmNmI5ZWM5Yjg1ODVkYjY2
ODFhYzBkZDMyNGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgK
QEAgLTIzNCw0MSArMjM0LDE1IEBAIGlubGluZSBib29sIFJlbmRlckVsZW1lbnQ6OmlzUmVuZGVy
SW5saW5lKCkgY29uc3QKICAgICByZXR1cm4gbV9iYXNlVHlwZUZsYWdzICYgUmVuZGVySW5saW5l
RmxhZzsKIH0KIAotaW5saW5lIFJlbmRlckVsZW1lbnQmIHRvUmVuZGVyRWxlbWVudChSZW5kZXJP
YmplY3QmIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihv
YmplY3QuaXNSZW5kZXJFbGVtZW50KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJF
bGVtZW50Jj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNvbnN0IFJlbmRlckVsZW1lbnQmIHRvUmVu
ZGVyRWxlbWVudChjb25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lU
SF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3QuaXNSZW5kZXJFbGVtZW50KCkpOwotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJFbGVtZW50Jj4ob2JqZWN0KTsKLX0KLQotaW5s
aW5lIFJlbmRlckVsZW1lbnQqIHRvUmVuZGVyRWxlbWVudChSZW5kZXJPYmplY3QqIG9iamVjdCkK
LXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVj
dC0+aXNSZW5kZXJFbGVtZW50KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJFbGVt
ZW50Kj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNvbnN0IFJlbmRlckVsZW1lbnQqIHRvUmVuZGVy
RWxlbWVudChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJFbGVtZW50KCkp
OwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJFbGVtZW50Kj4ob2JqZWN0KTsK
LX0KK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJFbGVtZW50LCBpc1JlbmRlckVsZW1l
bnQoKSkKIAogaW5saW5lIEVsZW1lbnQqIFJlbmRlckVsZW1lbnQ6OmdlbmVyYXRpbmdFbGVtZW50
KCkgY29uc3QKIHsKICAgICBpZiAoaXNSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCgpICYmIHBhcmVu
dCgpKQotICAgICAgICByZXR1cm4gdG9SZW5kZXJFbGVtZW50KHBhcmVudCgpKS0+Z2VuZXJhdGlu
Z0VsZW1lbnQoKTsKKyAgICAgICAgcmV0dXJuIHBhcmVudCgpLT5nZW5lcmF0aW5nRWxlbWVudCgp
OwogICAgIHJldHVybiB0b0VsZW1lbnQoUmVuZGVyT2JqZWN0OjpnZW5lcmF0aW5nTm9kZSgpKTsK
IH0KIAotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0
Lgotdm9pZCB0b1JlbmRlckVsZW1lbnQoY29uc3QgUmVuZGVyRWxlbWVudCopOwotdm9pZCB0b1Jl
bmRlckVsZW1lbnQoY29uc3QgUmVuZGVyRWxlbWVudCYpOwotCiBpbmxpbmUgYm9vbCBSZW5kZXJP
YmplY3Q6OmlzUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlz
UmVuZGVyRWxlbWVudCgpICYmIHRvUmVuZGVyRWxlbWVudCh0aGlzKS0+aXNSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RW1iZWRkZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRl
ZE9iamVjdC5oCmluZGV4IGUwNjA1NDA1ZTU2MTQ4NWE2NGMzYzczM2JjMjgyYWNhODk1MWMxNWQu
LjNhZWY5MjU1ZjNiYTEyOGU1Y2FlZmExYzc1ZWQ1Y2FkMzBjOWQyODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oCkBAIC0xMTMsMTQgKzEx
Myw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbjsK
IH07CiAKLWlubGluZSBSZW5kZXJFbWJlZGRlZE9iamVjdCogdG9SZW5kZXJFbWJlZGRlZE9iamVj
dChSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBM
SUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNFbWJlZGRlZE9iamVjdCgpKTsKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8UmVuZGVyRW1iZWRkZWRPYmplY3QqPihvYmplY3QpOwotfQotCi0vLyBU
aGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRv
UmVuZGVyRW1iZWRkZWRPYmplY3QoY29uc3QgUmVuZGVyRW1iZWRkZWRPYmplY3QqKTsKK1JFTkRF
Ul9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJFbWJlZGRlZE9iamVjdCwgaXNFbWJlZGRlZE9iamVj
dCgpKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZpZWxkc2V0LmgKaW5kZXggNDM5ZGE3Yjg0MWI3NGQxMDNhYWRmMDNkNDUyNDRjYzVm
MDQzZjE1MS4uYjJhMzAzM2RmZjg2NGZhNjdjZDk1ZGZiYmI4Y2IyMGYyMDVhNjU5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmgKQEAgLTU1LDE0ICs1NSw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50TWFzayhQYWludEluZm8mLCBjb25zdCBM
YXlvdXRQb2ludCYpIE9WRVJSSURFOwogfTsKIAotaW5saW5lIFJlbmRlckZpZWxkc2V0KiB0b1Jl
bmRlckZpZWxkc2V0KFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NF
Q1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc0ZpZWxkc2V0KCkpOwotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJGaWVsZHNldCo+KG9iamVjdCk7Ci19Ci0KLS8vIFRo
aXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9S
ZW5kZXJGaWVsZHNldChjb25zdCBSZW5kZXJGaWVsZHNldCopOworUkVOREVSX09CSkVDVF9UWVBF
X0NBU1RTKFJlbmRlckZpZWxkc2V0LCBpc0ZpZWxkc2V0KCkpCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVV
cGxvYWRDb250cm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wuaAppbmRleCBmNmIyNzQ0YzczMTAwMDUxZDZmZjc3ODdiNmJiYmQ5N2IyODYyYjRm
Li40MDQ3NTUzNGE4NGQ1MGM2N2U1NTljN2UwNWVlYWJhODg5MzM2OTczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaApAQCAtNjUs
MjAgKzY1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2FuUmVjZWl2ZURyb3BwZWRGaWxlczsK
IH07CiAKLWlubGluZSBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbCogdG9SZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbChSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNGaWxlVXBsb2FkQ29udHJvbCgpKTsK
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyRmlsZVVwbG9hZENvbnRyb2wqPihvYmplY3Qp
OwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wqIHRvUmVuZGVyRmls
ZVVwbG9hZENvbnRyb2woY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzRmlsZVVwbG9h
ZENvbnRyb2woKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlckZpbGVVcGxv
YWRDb250cm9sKj4ob2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2lu
ZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlckZpbGVVcGxvYWRDb250cm9sKGNv
bnN0IFJlbmRlckZpbGVVcGxvYWRDb250cm9sKik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMo
UmVuZGVyRmlsZVVwbG9hZENvbnRyb2wsIGlzRmlsZVVwbG9hZENvbnRyb2woKSkKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmxleGlibGVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4
aWJsZUJveC5oCmluZGV4IGRkMGUxNzJiNjU3MjY3M2VhN2EwN2I0ZGFiOThjMzFiZDY1MjRkODIu
LmRjYjExZmM0ZTViMTY5YjQzZWJkMTYzNDBkMWYwNWU0MzUwOGFjN2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCkBAIC0xNzcsMjAgKzE3Nyw3IEBA
IHByaXZhdGU6CiAgICAgaW50IG1fbnVtYmVyT2ZJbkZsb3dDaGlsZHJlbk9uRmlyc3RMaW5lOwog
fTsKIAotaW5saW5lIFJlbmRlckZsZXhpYmxlQm94KiB0b1JlbmRlckZsZXhpYmxlQm94KFJlbmRl
ck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9O
KCFvYmplY3QgfHwgb2JqZWN0LT5pc0ZsZXhpYmxlQm94KCkpOwotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxSZW5kZXJGbGV4aWJsZUJveCo+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5k
ZXJGbGV4aWJsZUJveCogdG9SZW5kZXJGbGV4aWJsZUJveChjb25zdCBSZW5kZXJPYmplY3QqIG9i
amVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8
IG9iamVjdC0+aXNGbGV4aWJsZUJveCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
UmVuZGVyRmxleGlibGVCb3gqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55
b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyRmxleGlibGVCb3go
Y29uc3QgUmVuZGVyRmxleGlibGVCb3gqKTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5k
ZXJGbGV4aWJsZUJveCwgaXNGbGV4aWJsZUJveCgpKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFk
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCmluZGV4IDg1
YjBkOWU3MmRmNjUwNDFlNTg1NjQzZGE3Y2JiNDYwNmNmNTUwYjIuLjgyNjU2MzRlZTE0YmZmNDU1
MWUwZmViYzRmMDU3NmRkNmE0MzU3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsb3dUaHJlYWQuaApAQCAtMzU1LDMzICszNTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9v
bCBtX2xheWVyc1RvUmVnaW9uTWFwcGluZ3NEaXJ0eSA6IDE7CiB9OwogCi1pbmxpbmUgUmVuZGVy
Rmxvd1RocmVhZCYgdG9SZW5kZXJGbG93VGhyZWFkKFJlbmRlck9iamVjdCYgb2JqZWN0KQotewot
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9iamVjdC5pc1JlbmRlckZsb3dU
aHJlYWQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlckZsb3dUaHJlYWQmPihvYmpl
Y3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyRmxvd1RocmVhZCYgdG9SZW5kZXJGbG93VGhy
ZWFkKGNvbnN0IFJlbmRlck9iamVjdCYgb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VS
SVRZX0lNUExJQ0FUSU9OKG9iamVjdC5pc1JlbmRlckZsb3dUaHJlYWQoKSk7Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlckZsb3dUaHJlYWQmPihvYmplY3QpOwotfQotCi1pbmxp
bmUgUmVuZGVyRmxvd1RocmVhZCogdG9SZW5kZXJGbG93VGhyZWFkKFJlbmRlck9iamVjdCogb2Jq
ZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwg
b2JqZWN0LT5pc1JlbmRlckZsb3dUaHJlYWQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJl
bmRlckZsb3dUaHJlYWQqPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyRmxvd1Ro
cmVhZCogdG9SZW5kZXJGbG93VGhyZWFkKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQotewot
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5p
c1JlbmRlckZsb3dUaHJlYWQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRl
ckZsb3dUaHJlYWQqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRv
aW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyRmxvd1RocmVhZChjb25zdCBS
ZW5kZXJGbG93VGhyZWFkKik7Ci12b2lkIHRvUmVuZGVyRmxvd1RocmVhZChjb25zdCBSZW5kZXJG
bG93VGhyZWFkJik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyRmxvd1RocmVhZCwg
aXNSZW5kZXJGbG93VGhyZWFkKCkpCiAKIGNsYXNzIEN1cnJlbnRSZW5kZXJGbG93VGhyZWFkTWFp
bnRhaW5lciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ3VycmVudFJlbmRlckZsb3dUaHJl
YWRNYWludGFpbmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lLmgKaW5kZXgg
MWE3MDQ5MmRhMmJiZDNmZTdiNDQ4ZDJiNzA4YmVhOGUyZmFhODViMi4uZjk5OTcyNmUzNjhkOWU2
NjM2M2E2MDljN2ZkM2VkMTc3MmFmMjlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZyYW1lLmgKQEAgLTQ3LDE0ICs0Nyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHZp
ZXdDbGVhcmVkKCkgT1ZFUlJJREU7CiB9OwogCi1pbmxpbmUgUmVuZGVyRnJhbWUqIHRvUmVuZGVy
RnJhbWUoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlf
SU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzRnJhbWUoKSk7Ci0gICAgcmV0dXJuIHN0
YXRpY19jYXN0PFJlbmRlckZyYW1lKj4ob2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNo
IGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlckZyYW1lKGNv
bnN0IFJlbmRlckZyYW1lKik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyRnJhbWUs
IGlzRnJhbWUoKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGcmFtZVNldC5oCmluZGV4IGU2ZWQzYzM4ZDBmOTA5ZTM3NjgxZjhiM2Zm
ZTFjMzJhNjU1MmVjMTkuLmY2YjQ0YWI4MjAwZWRjNDk0NDIwMjA5MWIxOTAzMjk0YmQwZDIxM2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5oCkBAIC0xMjYsMTUg
KzEyNiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQ2hpbGRSZXNpemluZzsKIH07CiAKLQot
aW5saW5lIFJlbmRlckZyYW1lU2V0KiB0b1JlbmRlckZyYW1lU2V0KFJlbmRlck9iamVjdCogb2Jq
ZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwg
b2JqZWN0LT5pc0ZyYW1lU2V0KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJGcmFt
ZVNldCo+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4g
dW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJGcmFtZVNldChjb25zdCBSZW5kZXJGcmFt
ZVNldCopOworUkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRlckZyYW1lU2V0LCBpc0ZyYW1l
U2V0KCkpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGdWxsU2NyZWVuLmgKaW5kZXggN2RiYTc4MDA0NDI1OGE2OWExMDg5ZWU0YTU2
ZmUxMzY4MDg0NzU4Mi4uZGVlNTY4OTkxNTE2NzJlZDMzOTljMjM1YzY4Y2I2OGI4MTRlMmNlNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oCkBAIC01Mywx
NSArNTMsOSBAQCBwcml2YXRlOgogcHJvdGVjdGVkOgogICAgIFJlbmRlckJsb2NrKiBtX3BsYWNl
aG9sZGVyOwogfTsKLSAgICAKLWlubGluZSBSZW5kZXJGdWxsU2NyZWVuKiB0b1JlbmRlckZ1bGxT
Y3JlZW4oUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlf
SU1QTElDQVRJT04ob2JqZWN0LT5pc1JlbmRlckZ1bGxTY3JlZW4oKSk7Ci0gICAgcmV0dXJuIHN0
YXRpY19jYXN0PFJlbmRlckZ1bGxTY3JlZW4qPihvYmplY3QpOwotfQotICAgIAotLy8gVGhpcyB3
aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Ogotdm9pZCB0b1JlbmRl
ckZ1bGxTY3JlZW4oUmVuZGVyRnVsbFNjcmVlbiopOworCitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FT
VFMoUmVuZGVyRnVsbFNjcmVlbiwgaXNSZW5kZXJGdWxsU2NyZWVuKCkpCisKIH0KIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuaAppbmRleCBlYjdi
N2ZjZjEyOWJjMTMxZWJlNDZhNmU2NmYzY2JkZDVhZWNmMGRmLi5kY2U2ZTkyYjA0NjFjYjE5YTE2
NzI1YWFiZmE0NGYwMWM0ZmU0YTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySFRNTENhbnZhcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJIVE1MQ2FudmFzLmgKQEAgLTQ5LDE0ICs0OSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGludHJpbnNpY1NpemVDaGFuZ2VkKCkgT1ZFUlJJREUgeyBjYW52YXNTaXplQ2hhbmdlZCgp
OyB9CiB9OwogCi1pbmxpbmUgUmVuZGVySFRNTENhbnZhcyogdG9SZW5kZXJIVE1MQ2FudmFzKFJl
bmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FU
SU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc0NhbnZhcygpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8UmVuZGVySFRNTENhbnZhcyo+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBh
bnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJIVE1MQ2FudmFz
KGNvbnN0IFJlbmRlckhUTUxDYW52YXMqKTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5k
ZXJIVE1MQ2FudmFzLCBpc0NhbnZhcygpKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuaAppbmRleCA3Yjc4NmFhMTQzYmU5ZjE2
MGY4MzFiMWM0ZDgxMzc0MzY5MDZjNGZhLi4wODM3ZjhmNjlhZDIwM2MyZGMzMmUwZjU3ZDZiNjIw
Y2RiZTNkMzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZy
YW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5oCkBAIC02
MywyMSArNjMsNyBAQCBwcml2YXRlOgogICAgIFJlbmRlclZpZXcqIGNvbnRlbnRSb290UmVuZGVy
ZXIoKSBjb25zdDsKIH07CiAKLWlubGluZSBSZW5kZXJJRnJhbWUqIHRvUmVuZGVySUZyYW1lKFJl
bmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FU
SU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlcklGcmFtZSgpKTsKLSAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8UmVuZGVySUZyYW1lKj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNvbnN0IFJlbmRl
cklGcmFtZSogdG9SZW5kZXJJRnJhbWUoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0g
ICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlz
UmVuZGVySUZyYW1lKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJJRnJh
bWUqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVu
bmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVySUZyYW1lKGNvbnN0IFJlbmRlcklGcmFtZSop
OwotCitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVySUZyYW1lLCBpc1JlbmRlcklGcmFt
ZSgpKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckltYWdlLmgKaW5kZXggMTM4MGFjYjRjYjI2ZDhlNjk5MDllMDMzZmRlNzg2OGM3MGQyNWFk
Zi4uZjUyN2JlNTRjZGNlOTcxYjJiYTFjN2M4YmFkZWQxMDU3YzQ3ZjEyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKQEAgLTExOCwzMyArMTE4LDcgQEAgcHJpdmF0ZToK
ICAgICBmcmllbmQgY2xhc3MgUmVuZGVySW1hZ2VTY2FsZU9ic2VydmVyOwogfTsKIAotaW5saW5l
IFJlbmRlckltYWdlJiB0b1JlbmRlckltYWdlKFJlbmRlck9iamVjdCYgb2JqZWN0KQotewotICAg
IEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9iamVjdC5pc1JlbmRlckltYWdlKCkp
OwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJJbWFnZSY+KG9iamVjdCk7Ci19Ci0KLWlu
bGluZSBjb25zdCBSZW5kZXJJbWFnZSYgdG9SZW5kZXJJbWFnZShjb25zdCBSZW5kZXJPYmplY3Qm
IG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3Qu
aXNSZW5kZXJJbWFnZSgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVySW1h
Z2UmPihvYmplY3QpOwotfQotCi1pbmxpbmUgUmVuZGVySW1hZ2UqIHRvUmVuZGVySW1hZ2UoUmVu
ZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVySW1hZ2UoKSk7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFJlbmRlckltYWdlKj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNvbnN0IFJlbmRlcklt
YWdlKiB0b1JlbmRlckltYWdlKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFT
U0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRl
ckltYWdlKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJJbWFnZSo+KG9i
amVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3Nh
cnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJJbWFnZShjb25zdCBSZW5kZXJJbWFnZSopOwotdm9pZCB0
b1JlbmRlckltYWdlKGNvbnN0IFJlbmRlckltYWdlJik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FT
VFMoUmVuZGVySW1hZ2UsIGlzUmVuZGVySW1hZ2UoKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKaW5kZXggY2I4MTU2ODcx
YTcxMzlhNzdjZDUwNjBjYjE5MGU0YmY2MzA1NmZjNy4uNzU4NmY1OWU2NzI1ODRmNzJlY2Q1YmRh
NWQyM2NiMzM2ZmEyN2Y2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
aApAQCAtMTc2LDMzICsxNzYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hbHdheXNDcmVhdGVM
aW5lQm94ZXMgOiAxOwogfTsKIAotaW5saW5lIFJlbmRlcklubGluZSYgdG9SZW5kZXJJbmxpbmUo
UmVuZGVyT2JqZWN0JiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElD
QVRJT04ob2JqZWN0LmlzUmVuZGVySW5saW5lKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxS
ZW5kZXJJbmxpbmUmPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVySW5saW5lJiB0
b1JlbmRlcklubGluZShjb25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCkKLXsKLSAgICBBU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3QuaXNSZW5kZXJJbmxpbmUoKSk7Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlcklubGluZSY+KG9iamVjdCk7Ci19Ci0KLWlu
bGluZSBSZW5kZXJJbmxpbmUqIHRvUmVuZGVySW5saW5lKFJlbmRlck9iamVjdCogb2JqZWN0KQot
eyAKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVj
dC0+aXNSZW5kZXJJbmxpbmUoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlcklubGlu
ZSo+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJJbmxpbmUqIHRvUmVuZGVySW5s
aW5lKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQoteyAKLSAgICBBU1NFUlRfV0lUSF9TRUNV
UklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJJbmxpbmUoKSk7Ci0g
ICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlcklubGluZSo+KG9iamVjdCk7Ci19Ci0K
LS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZv
aWQgdG9SZW5kZXJJbmxpbmUoY29uc3QgUmVuZGVySW5saW5lKik7Ci12b2lkIHRvUmVuZGVySW5s
aW5lKGNvbnN0IFJlbmRlcklubGluZSYpOworUkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRl
cklubGluZSwgaXNSZW5kZXJJbmxpbmUoKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaApp
bmRleCA1ZTRiMzMzODhmMjkwZWUxNTQ0NTUwMWNkYWI0OTMyMzZjYjE5OWRlLi5hZmY1ODhmZGUz
ODc3MzcwYjM1MGQxY2QxZjFjYTlhY2U4N2FhZTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKQEAgLTY3LDIwICs2Nyw3IEBAIHBy
aXZhdGU6CiAgICAgc3RhdGljIGJvb2wgc19sYXllcldhc1NlbGZQYWludGluZzsKIH07CiAKLWlu
bGluZSBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiB0b1JlbmRlckxheWVyTW9kZWxPYmplY3QoUmVu
ZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCgpKTsKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCo+KG9iamVjdCk7Ci19Ci0K
LWlubGluZSBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiB0b1JlbmRlckxheWVyTW9kZWxP
YmplY3QoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCo+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4g
dW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJMYXllck1vZGVsT2JqZWN0KGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqKTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJM
YXllck1vZGVsT2JqZWN0LCBpc1JlbmRlckxheWVyTW9kZWxPYmplY3QoKSkKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGluZUJyZWFrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFr
LmgKaW5kZXggOWI1ODkyN2Q1ZWVmYjA4NjA4MWY4MjM1Y2YzZjFiYTRlN2UxZTgzYS4uMGY4NDQ0
ODk2ZDc1OWFiZjg3MDAxOTVjN2NjZmRiMDQxZGMyNzE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaApAQCAtODksMzIgKzg5LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1faXNXQlI7CiB9OwogCi1pbmxpbmUgUmVuZGVyTGluZUJyZWFrJiB0b1JlbmRlckxp
bmVCcmVhayhSZW5kZXJPYmplY3QmIG9iamVjdCkKLXsgCi0gICAgQVNTRVJUX1dJVEhfU0VDVVJJ
VFlfSU1QTElDQVRJT04ob2JqZWN0LmlzTGluZUJyZWFrKCkpOwotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxSZW5kZXJMaW5lQnJlYWsmPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVy
TGluZUJyZWFrJiB0b1JlbmRlckxpbmVCcmVhayhjb25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCkK
LXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3QuaXNMaW5lQnJl
YWsoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlckxpbmVCcmVhayY+KG9i
amVjdCk7Ci19Ci0KLWlubGluZSBSZW5kZXJMaW5lQnJlYWsqIHRvUmVuZGVyTGluZUJyZWFrKFJl
bmRlck9iamVjdCogb2JqZWN0KQoteyAKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNB
VElPTihvYmplY3QtPmlzTGluZUJyZWFrKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5k
ZXJMaW5lQnJlYWsqPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyTGluZUJyZWFr
KiB0b1JlbmRlckxpbmVCcmVhayhjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3QtPmlzTGluZUJyZWFrKCkpOwot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJMaW5lQnJlYWsqPihvYmplY3QpOwot
fQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3Qu
Ci12b2lkIHRvUmVuZGVyTGluZUJyZWFrKGNvbnN0IFJlbmRlckxpbmVCcmVhayYpOworUkVOREVS
X09CSkVDVF9UWVBFX0NBU1RTKFJlbmRlckxpbmVCcmVhaywgaXNMaW5lQnJlYWsoKSkKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdEJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guaAppbmRleCBkYWEwNzc4OTU4MTYwOWQ0NjdhODEwMDA1MjI1Nzg5ZGE3Y2U0YzE5Li45NWIy
OTJjOTU0MTVjOWZlZjA3MWYxZGQxNmMyNWM3ZDUyZGQ1ZDJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKQEAgLTE1NCwxNCArMTU0LDcgQEAgcHJpdmF0ZToKICAg
ICBSZWZQdHI8U2Nyb2xsYmFyPiBtX3ZCYXI7CiB9OwogCi1pbmxpbmUgUmVuZGVyTGlzdEJveCog
dG9SZW5kZXJMaXN0Qm94KFJlbmRlck9iamVjdCogb2JqZWN0KQoteyAKLSAgICBBU1NFUlRfV0lU
SF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNMaXN0Qm94KCkpOwot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJMaXN0Qm94Kj4ob2JqZWN0KTsKLX0KLQotLy8g
VGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0
b1JlbmRlckxpc3RCb3goY29uc3QgUmVuZGVyTGlzdEJveCopOworUkVOREVSX09CSkVDVF9UWVBF
X0NBU1RTKFJlbmRlckxpc3RCb3gsIGlzTGlzdEJveCgpKQogCiB9IC8vIG5hbWVwYWNlIFdlYkNv
cmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVt
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaAppbmRleCBiMWZm
MjlkMjY1NDI2YTI0OTc1ZDMyNTcyN2U4NTk4ZWM1NTE1ZWNiLi4zNzFkNzhhMWNlZThiZGY0MTMy
NmFhNjJhNGE1MDc1YmYyNDI4OGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdEl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdEl0ZW0uaApAQCAtOTIsMTQgKzkyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbm90SW5M
aXN0IDogMTsKIH07CiAKLWlubGluZSBSZW5kZXJMaXN0SXRlbSogdG9SZW5kZXJMaXN0SXRlbShS
ZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNB
VElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNMaXN0SXRlbSgpKTsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8UmVuZGVyTGlzdEl0ZW0qPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2gg
YW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyTGlzdEl0ZW0o
Y29uc3QgUmVuZGVyTGlzdEl0ZW0qKTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJM
aXN0SXRlbSwgaXNMaXN0SXRlbSgpKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmgKaW5kZXggNGM4NDdhOWUyOGExY2ViN2VkMGYy
Y2U4YjE1YWYyM2Y3NGE2NmUyNS4uMjBlMjI5NzM0NTZlMzRiNjYzZmMzNGI2NDA1MGMzZmEwYzAz
NmNlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmgKQEAgLTU3LDE0ICs1
Nyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzRm9yY2VkU3R5bGVSZWNh
bGNQcm9wYWdhdGlvbigpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KIH07
CiAKLWlubGluZSBSZW5kZXJNZWRpYSogdG9SZW5kZXJNZWRpYShSZW5kZXJPYmplY3QqIG9iamVj
dCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9i
amVjdC0+aXNNZWRpYSgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyTWVkaWEqPihv
YmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNz
YXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyTWVkaWEoY29uc3QgUmVuZGVyTWVkaWEqKTsKK1JFTkRF
Ul9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJNZWRpYSwgaXNNZWRpYSgpKQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNZW51TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgK
aW5kZXggZmY5ZTJhZDNkMWVkNGEzOTdlNTZhNDIwOTU5MmMzZTEwZDhjM2M4NC4uY2IxZjI5OTA0
ZTdmNzFhMDIyYTYxODA1NTVkMTgxMmJlZTg0NjM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmgKQEAgLTE0OSwxNCArMTQ5LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fcG9wdXBJc1Zpc2libGU7CiB9OwogCi1pbmxpbmUgUmVuZGVyTWVudUxpc3QqIHRvUmVu
ZGVyTWVudUxpc3QoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzTWVudUxpc3QoKSk7Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlck1lbnVMaXN0Kj4ob2JqZWN0KTsKLX0KLQotLy8gVGhp
cyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1Jl
bmRlck1lbnVMaXN0KGNvbnN0IFJlbmRlck1lbnVMaXN0Kik7CitSRU5ERVJfT0JKRUNUX1RZUEVf
Q0FTVFMoUmVuZGVyTWVudUxpc3QsIGlzTWVudUxpc3QoKSkKIAogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZXRlci5oCmluZGV4IDM4MDBkZjQzZTI5YjdlMmEwOTVjZTAwZjEyNWUx
MTQ5ZGExOTBmMjAuLmM2NTVhZTc5ODgxZTI5ZjhjZWNhZTVkNmQwNzg2MDhkNDRkOTY3NTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5oCkBAIC00NywxNCArNDcsNyBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFn
YXRpb24oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiB9OwogCi1pbmxpbmUgUmVu
ZGVyTWV0ZXIqIHRvUmVuZGVyTWV0ZXIoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzTWV0ZXIo
KSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlck1ldGVyKj4ob2JqZWN0KTsKLX0KLQot
Ly8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9p
ZCB0b1JlbmRlck1ldGVyKGNvbnN0IFJlbmRlck1ldGVyKik7CitSRU5ERVJfT0JKRUNUX1RZUEVf
Q0FTVFMoUmVuZGVyTWV0ZXIsIGlzTWV0ZXIoKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5C
bG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2su
aAppbmRleCAyODk1YTlkOGM4ZWNlMTQ4NDA1M2NhYzAzMzY4N2Y0YzU1ZGUyNmFjLi5iMTkwMDAz
YzU5NmVjM2NmYjM0MTE1MjNjZWI1NWZjZDc0MGM1NjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmgKQEAgLTczLDIwICs3Myw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX2luQmFsYW5jaW5nUGFzczsgLy8gU2V0IHdoZW4gcmVsYXlv
dXRpbmcgZm9yIGNvbHVtbiBiYWxhbmNpbmcuCiB9OwogCi1pbmxpbmUgUmVuZGVyTXVsdGlDb2x1
bW5CbG9jayogdG9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrKFJlbmRlck9iamVjdCogb2JqZWN0KQot
ewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0
LT5pc1JlbmRlck11bHRpQ29sdW1uQmxvY2soKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJl
bmRlck11bHRpQ29sdW1uQmxvY2sqPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVy
TXVsdGlDb2x1bW5CbG9jayogdG9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrKGNvbnN0IFJlbmRlck9i
amVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFv
YmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlck11bHRpQ29sdW1uQmxvY2soKSk7Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlck11bHRpQ29sdW1uQmxvY2sqPihvYmplY3QpOwotfQot
Ci0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12
b2lkIHRvUmVuZGVyTXVsdGlDb2x1bW5CbG9jayhjb25zdCBSZW5kZXJNdWx0aUNvbHVtbkJsb2Nr
Kik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyTXVsdGlDb2x1bW5CbG9jaywgaXNS
ZW5kZXJNdWx0aUNvbHVtbkJsb2NrKCkpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaAppbmRleCBj
ZWFiMzdlZTc5MTRlZWEwMWVkZjA1ZmQ5N2YzYzQxMmM1YWQ1ZTk4Li5hMGYwMTdkMDc4MjFlY2Mx
M2Q3NGY1MTQwZWZjY2Y1ZTAwYWViMDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaApAQCAtMTUyLDIwICsxNTIsNyBAQCBwcml2YXRlOgog
ICAgIExheW91dFVuaXQgbV9mb3JjZWRCcmVha09mZnNldDsKIH07CiAKLWlubGluZSBSZW5kZXJN
dWx0aUNvbHVtblNldCogdG9SZW5kZXJNdWx0aUNvbHVtblNldChSZW5kZXJPYmplY3QqIG9iamVj
dCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9i
amVjdC0+aXNSZW5kZXJNdWx0aUNvbHVtblNldCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
UmVuZGVyTXVsdGlDb2x1bW5TZXQqPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVy
TXVsdGlDb2x1bW5TZXQqIHRvUmVuZGVyTXVsdGlDb2x1bW5TZXQoY29uc3QgUmVuZGVyT2JqZWN0
KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVj
dCB8fCBvYmplY3QtPmlzUmVuZGVyTXVsdGlDb2x1bW5TZXQoKSk7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGNvbnN0IFJlbmRlck11bHRpQ29sdW1uU2V0Kj4ob2JqZWN0KTsKLX0KLQotLy8gVGhp
cyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1Jl
bmRlck11bHRpQ29sdW1uU2V0KGNvbnN0IFJlbmRlck11bHRpQ29sdW1uU2V0Kik7CitSRU5ERVJf
T0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyTXVsdGlDb2x1bW5TZXQsIGlzUmVuZGVyTXVsdGlDb2x1
bW5TZXQoKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5oCmluZGV4IDE3YWQ2ODU2OTY0
MzQyZTJiNWZiMjg5Y2ZlMTNkMGY5NDVjMzVkNmYuLmMzOTE4YWI3ZDcwOGVhNjA1Yjg3YjZiMjc1
ODRkMzAwZmFkYmY5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJOYW1lZEZsb3dGcmFnbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJOYW1lZEZsb3dGcmFnbWVudC5oCkBAIC02NSwyMCArNjUsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJOYW1l
ZEZsb3dGcmFnbWVudCI7IH0KIH07CiAKLWlubGluZSBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCog
dG9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudChSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5k
ZXJOYW1lZEZsb3dGcmFnbWVudCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyTmFt
ZWRGbG93RnJhZ21lbnQqPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyTmFtZWRG
bG93RnJhZ21lbnQqIHRvUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoY29uc3QgUmVuZGVyT2JqZWN0
KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVj
dCB8fCBvYmplY3QtPmlzUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoKSk7Ci0gICAgcmV0dXJuIHN0
YXRpY19jYXN0PGNvbnN0IFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50Kj4ob2JqZWN0KTsKLX0KLQot
Ly8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9p
ZCB0b1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50KGNvbnN0IFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50
Kik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQsIGlz
UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFk
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgKaW5k
ZXggOTNhMDYyOGY1OGIzNmJiMWIyOGI4YTE0ZDA1NjAxNmNkNGZmMmRiMi4uNDI3ZTg5NzUzZjk3
NzUxNTZhYTZmMjk1Y2MyYWJmZTM1NjU1ZDRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaApAQCAtMTM4LDIwICsxMzgsNyBAQCBwcml2
YXRlOgogICAgIFRpbWVyPFJlbmRlck5hbWVkRmxvd1RocmVhZD4gbV9yZWdpb25PdmVyc2V0Q2hh
bmdlRXZlbnRUaW1lcjsKIH07CiAKLWlubGluZSBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIHRvUmVu
ZGVyTmFtZWRGbG93VGhyZWFkKFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlck5hbWVk
Rmxvd1RocmVhZCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyTmFtZWRGbG93VGhy
ZWFkKj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNvbnN0IFJlbmRlck5hbWVkRmxvd1RocmVhZCog
dG9SZW5kZXJOYW1lZEZsb3dUaHJlYWQoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0g
ICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlz
UmVuZGVyTmFtZWRGbG93VGhyZWFkKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBS
ZW5kZXJOYW1lZEZsb3dUaHJlYWQqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2gg
YW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyTmFtZWRGbG93
VGhyZWFkKGNvbnN0IFJlbmRlck5hbWVkRmxvd1RocmVhZCopOworUkVOREVSX09CSkVDVF9UWVBF
X0NBU1RTKFJlbmRlck5hbWVkRmxvd1RocmVhZCwgaXNSZW5kZXJOYW1lZEZsb3dUaHJlYWQoKSkK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmgKaW5kZXggYmY2MjQyNzk0NjgyNjI3OTNjNjAxZDVkYWNjZmFkYjZmMzAwYThiOC4u
YzJkM2Q5MTcwMDgxNGNmYzVkOTQ2NjAyYTdkNjRiNTJiMjMxZWY5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtMTE1OSw2ICsxMTU5LDkgQEAgaW5saW5lIExh
eW91dFVuaXQgYWRqdXN0TGF5b3V0VW5pdEZvckFic29sdXRlWm9vbShMYXlvdXRVbml0IHZhbHVl
LCBSZW5kZXJPYmplY3QKIH0KICNlbmRpZgogCisjZGVmaW5lIFJFTkRFUl9PQkpFQ1RfVFlQRV9D
QVNUUyhUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkgXAorICAgIFRZUEVfQ0FTVFNfQkFTRShU
b1ZhbHVlVHlwZU5hbWUsIFJlbmRlck9iamVjdCwgb2JqZWN0LCBvYmplY3QtPnByZWRpY2F0ZSwg
b2JqZWN0LnByZWRpY2F0ZSkKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjaWZuZGVmIE5E
RUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNz
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaAppbmRleCAzZGY1
NDlkYjI2NTExNDczNjBjNmUyNzFmYzZkNzU2ZjFiOThhZWEzLi5jNDE2YzZmOTA0ZWVjMDRiYzIy
YmIzMTdmNzE1MTZmNTQxYWVkNzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUHJvZ3Jlc3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UHJvZ3Jlc3MuaApAQCAtNjAsMTQgKzYwLDcgQEAgcHJpdmF0ZToKICAgICBUaW1lcjxSZW5kZXJQ
cm9ncmVzcz4gbV9hbmltYXRpb25UaW1lcjsKIH07CiAKLWlubGluZSBSZW5kZXJQcm9ncmVzcyog
dG9SZW5kZXJQcm9ncmVzcyhSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lU
SF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNQcm9ncmVzcygpKTsK
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyUHJvZ3Jlc3MqPihvYmplY3QpOwotfQotCi0v
LyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lk
IHRvUmVuZGVyUHJvZ3Jlc3MoY29uc3QgUmVuZGVyUHJvZ3Jlc3MqKTsKK1JFTkRFUl9PQkpFQ1Rf
VFlQRV9DQVNUUyhSZW5kZXJQcm9ncmVzcywgaXNQcm9ncmVzcygpKQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJR
dW90ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmgKaW5kZXggZjll
NDI4OWJiOTQ3YTM3OWY2MDAyMzQ3NWE3YzEyYjFiZTAzYWU5Yy4uNWU0NjY4MWE1MDUzOGUzNmQ4
OTUyNjllN2E4M2UyNTNjNmYxMmIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclF1b3RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1
b3RlLmgKQEAgLTUzLDE0ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQXR0YWNoZWQ7
CiB9OwogCi1pbmxpbmUgUmVuZGVyUXVvdGUqIHRvUmVuZGVyUXVvdGUoUmVuZGVyT2JqZWN0KiBv
YmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8
fCBvYmplY3QtPmlzUXVvdGUoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclF1b3Rl
Kj4ob2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5l
Y2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlclF1b3RlKGNvbnN0IFJlbmRlclF1b3RlKik7CitS
RU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyUXVvdGUsIGlzUXVvdGUoKSkKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgK
aW5kZXggZGU0MDdiODRmMjZmNzJiNWEwYmQ2NmJjNDFkZTdjZmQ4NmEyYjdhYi4uZTBmMWRiNmM2
YTUwMDJhZGQ4ZTAwNGFlMGU5NjM2ZmVhMDExZDdiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJSZWdpb24uaApAQCAtMjM1LDMzICsyMzUsNyBAQCBwcml2YXRlOgogICAgIExheW91
dFVuaXQgbV9jb21wdXRlZEF1dG9IZWlnaHQ7CiB9OwogCi1pbmxpbmUgUmVuZGVyUmVnaW9uKiB0
b1JlbmRlclJlZ2lvbihSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJSZWdpb24oKSk7
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclJlZ2lvbio+KG9iamVjdCk7Ci19Ci0KLWlu
bGluZSBjb25zdCBSZW5kZXJSZWdpb24qIHRvUmVuZGVyUmVnaW9uKGNvbnN0IFJlbmRlck9iamVj
dCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmpl
Y3QgfHwgb2JqZWN0LT5pc1JlbmRlclJlZ2lvbigpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Y29uc3QgUmVuZGVyUmVnaW9uKj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIFJlbmRlclJlZ2lvbiYg
dG9SZW5kZXJSZWdpb24oUmVuZGVyT2JqZWN0JiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04ob2JqZWN0LmlzUmVuZGVyUmVnaW9uKCkpOwotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxSZW5kZXJSZWdpb24mPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3Qg
UmVuZGVyUmVnaW9uJiB0b1JlbmRlclJlZ2lvbihjb25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCkK
LXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3QuaXNSZW5kZXJS
ZWdpb24oKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclJlZ2lvbiY+KG9i
amVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3Nh
cnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJSZWdpb24oY29uc3QgUmVuZGVyUmVnaW9uKik7Ci12b2lk
IHRvUmVuZGVyUmVnaW9uKGNvbnN0IFJlbmRlclJlZ2lvbiYpOworUkVOREVSX09CSkVDVF9UWVBF
X0NBU1RTKFJlbmRlclJlZ2lvbiwgaXNSZW5kZXJSZWdpb24oKSkKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVw
bGFjZWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCmluZGV4
IDVhZDQxMzc3Zjc0YWIzOTI4NzE0MmI0ZTZmNWY4YzJjM2UyYzRjZjAuLjIyZjNlMGNkYmYyZTJi
MjIzMmJiNjAwYWFlZjc0OTM0NTFiMGVhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5oCkBAIC04OSwyMCArODksNyBAQCBwcml2YXRlOgogICAgIG11dGFibGUg
TGF5b3V0U2l6ZSBtX2ludHJpbnNpY1NpemU7CiB9OwogCi1pbmxpbmUgUmVuZGVyUmVwbGFjZWQq
IHRvUmVuZGVyUmVwbGFjZWQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJ
VEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyUmVwbGFj
ZWQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclJlcGxhY2VkKj4ob2JqZWN0KTsK
LX0KLQotaW5saW5lIGNvbnN0IFJlbmRlclJlcGxhY2VkKiB0b1JlbmRlclJlcGxhY2VkKGNvbnN0
IFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlclJlcGxhY2VkKCkpOwotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJSZXBsYWNlZCo+KG9iamVjdCk7Ci19Ci0KLS8vIFRo
aXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9S
ZW5kZXJSZXBsYWNlZChjb25zdCBSZW5kZXJSZXBsYWNlZCopOworUkVOREVSX09CSkVDVF9UWVBF
X0NBU1RTKFJlbmRlclJlcGxhY2VkLCBpc1JlbmRlclJlcGxhY2VkKCkpCiAKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmgKaW5kZXggYmQ3NDNiYzYyNjg0NDM4YTIw
YzhjMmMwZGViMGM1MjdlM2EwZDE1NS4uYmFhMWVlY2VlNjg2ZjliNzM4MmQ3ODM5ZWVmMTFkNDc3
NGFlZTNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlS
dW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVJ1bi5oCkBAIC03
NywzMiArNzcsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVMZWZ0b3ZlckFu
b255bW91c0Jsb2NrKFJlbmRlckJsb2NrKikgeyB9CiB9OwogCi1pbmxpbmUgUmVuZGVyUnVieVJ1
biYgdG9SZW5kZXJSdWJ5UnVuKFJlbmRlck9iamVjdCYgb2JqZWN0KQotewotICAgIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9iamVjdC5pc1J1YnlSdW4oKSk7Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PFJlbmRlclJ1YnlSdW4mPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3Qg
UmVuZGVyUnVieVJ1biYgdG9SZW5kZXJSdWJ5UnVuKGNvbnN0IFJlbmRlck9iamVjdCYgb2JqZWN0
KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9iamVjdC5pc1J1YnlS
dW4oKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclJ1YnlSdW4mPihvYmpl
Y3QpOwotfQotCi1pbmxpbmUgUmVuZGVyUnVieVJ1biogdG9SZW5kZXJSdWJ5UnVuKFJlbmRlck9i
amVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFv
YmplY3QgfHwgb2JqZWN0LT5pc1J1YnlSdW4oKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJl
bmRlclJ1YnlSdW4qPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyUnVieVJ1biog
dG9SZW5kZXJSdWJ5UnVuKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc0JveCgpKTsK
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyUnVieVJ1bio+KG9iamVjdCk7Ci19
Ci0KLXZvaWQgdG9SZW5kZXJSdWJ5UnVuKGNvbnN0IFJlbmRlclJ1YnlSdW4qKTsKLXZvaWQgdG9S
ZW5kZXJSdWJ5UnVuKGNvbnN0IFJlbmRlclJ1YnlSdW4mKTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9D
QVNUUyhSZW5kZXJSdWJ5UnVuLCBpc1J1YnlSdW4oKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFy
UGFydC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclBhcnQuaApp
bmRleCBkMDFlYmY0MTNiNDUxZDM0MWY3NjgwM2Y0MTgxODBmZGE2ZWU2MDEyLi4xMmUzNjE0Nzdi
Yjg4NzIwZGFhZDIzNWYzYzgwYTc5MDlkOWVmMWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTY3JvbGxiYXJQYXJ0LmgKQEAgLTczLDIwICs3Myw3IEBAIHByaXZhdGU6
CiAgICAgU2Nyb2xsYmFyUGFydCBtX3BhcnQ7CiB9OwogCi1pbmxpbmUgUmVuZGVyU2Nyb2xsYmFy
UGFydCogdG9SZW5kZXJTY3JvbGxiYXJQYXJ0KFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAg
IEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1Jl
bmRlclNjcm9sbGJhclBhcnQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclNjcm9s
bGJhclBhcnQqPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyU2Nyb2xsYmFyUGFy
dCogdG9SZW5kZXJTY3JvbGxiYXJQYXJ0KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQotewot
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5p
c1JlbmRlclNjcm9sbGJhclBhcnQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJl
bmRlclNjcm9sbGJhclBhcnQqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55
b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyU2Nyb2xsYmFyUGFy
dChjb25zdCBSZW5kZXJTY3JvbGxiYXJQYXJ0Kik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMo
UmVuZGVyU2Nyb2xsYmFyUGFydCwgaXNSZW5kZXJTY3JvbGxiYXJQYXJ0KCkpCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNlYXJjaEZpZWxkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNo
RmllbGQuaAppbmRleCBkNDExNGQzOTU5YWNhOGE4ZGUyYzFlMGExMjFiMDE1YjVjNTdjZmI5Li43
ZmRjOTM4NWI5ZGEzNTQ2ZjA2ZjRlMWJjODZjOTZiNjAyZjQ3YzI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuaApAQCAtOTAsMTQgKzkwLDcgQEAgcHJp
dmF0ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX3JlY2VudFNlYXJjaGVzOwogfTsKIAotaW5saW5l
IFJlbmRlclNlYXJjaEZpZWxkKiB0b1JlbmRlclNlYXJjaEZpZWxkKFJlbmRlck9iamVjdCogb2Jq
ZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwg
b2JqZWN0LT5pc1RleHRGaWVsZCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyU2Vh
cmNoRmllbGQqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5n
IGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyU2VhcmNoRmllbGQoY29uc3QgUmVu
ZGVyU2VhcmNoRmllbGQqKTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJTZWFyY2hG
aWVsZCwgaXNUZXh0RmllbGQoKSkKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U2xpZGVyLmgKaW5kZXggMWM0N2MyMjA0ZTRmMzIxZjZjNWUwYzk1MDQ0M2Q5MmY3ZWQ3ODg5ZS4u
ZDY1MjkxMTA4ZDQ1NTlmNzI0NWE4MGNkYTJhNzE4MjZiYTdmNGRkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaApAQCAtNTIsMTQgKzUyLDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJREU7CiB9OwogCi1pbmxpbmUgUmVuZGVyU2xp
ZGVyKiB0b1JlbmRlclNsaWRlcihSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNTbGlkZXIoKSk7
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclNsaWRlcio+KG9iamVjdCk7Ci19Ci0KLS8v
IFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQg
dG9SZW5kZXJTbGlkZXIoY29uc3QgUmVuZGVyU2xpZGVyKik7CitSRU5ERVJfT0JKRUNUX1RZUEVf
Q0FTVFMoUmVuZGVyU2xpZGVyLCBpc1NsaWRlcigpKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1
Z0luLmgKaW5kZXggYzBjZjdjYWVkNzNmZWZjYjMzYmIxMzRmOWIyOGFlYzU3NjI4MjExZC4uODEz
OWJhOTgwYzFkMTU1YWQxYTlkY2QyNzc4MmQ0ZmExOTEyZmQ2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgKQEAgLTYzLDE0ICs2
Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzUG90ZW50aWFsTW91c2VBY3RpdmF0aW9uOwog
fTsKIAotaW5saW5lIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luKiB0b1JlbmRlclNuYXBzaG90dGVk
UGx1Z0luKFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1NuYXBzaG90dGVkUGx1Z0luKCkpOwot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbio+KG9iamVjdCk7
Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2Fz
dC4KLXZvaWQgdG9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbihjb25zdCBSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbiopOworUkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRlclNuYXBzaG90dGVkUGx1
Z0luLCBpc1NuYXBzaG90dGVkUGx1Z0luKCkpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaAppbmRleCBkMjQ1MTA2YWE5MGY3ZTk0
MDc1MzJiYTIxZTkzNTE3MmJlNTVkOGRlLi5kMTg4ODY5NDJlN2ZiNjBkOTcxODZkMDlmOGE0NmM4
NDE4NGI3ODc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaApAQCAtMzUw
LDIwICszNTAsNyBAQCBpbmxpbmUgUmVuZGVyVGFibGVTZWN0aW9uKiBSZW5kZXJUYWJsZTo6dG9w
U2VjdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIG1fZm9vdDsKIH0KIAotaW5saW5lIFJlbmRlclRh
YmxlKiB0b1JlbmRlclRhYmxlKFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1RhYmxlKCkpOwot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJUYWJsZSo+KG9iamVjdCk7Ci19Ci0KLWlubGlu
ZSBjb25zdCBSZW5kZXJUYWJsZSogdG9SZW5kZXJUYWJsZShjb25zdCBSZW5kZXJPYmplY3QqIG9i
amVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8
IG9iamVjdC0+aXNUYWJsZSgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVy
VGFibGUqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFu
IHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyVGFibGUoY29uc3QgUmVuZGVyVGFibGUq
KTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJUYWJsZSwgaXNUYWJsZSgpKQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZUNhcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZUNhcHRpb24uaAppbmRleCA2MTQwOTJhYTM4NThmYmY4ZjdiNjI2NjcxYzM3OWZmOGNk
Y2E3OWYwLi40ZmIwYjg5MzAzYWI0OTgyNTAwZDUxYjUzM2NjMDdmZDcxZDQyMjQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5oCkBAIC00NCwyMCAr
NDQsNyBAQCBwcml2YXRlOgogICAgIFJlbmRlclRhYmxlKiB0YWJsZSgpIGNvbnN0OwogfTsKIAot
aW5saW5lIFJlbmRlclRhYmxlQ2FwdGlvbiogdG9SZW5kZXJUYWJsZUNhcHRpb24oUmVuZGVyT2Jq
ZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9i
amVjdCB8fCBvYmplY3QtPmlzVGFibGVDYXB0aW9uKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxSZW5kZXJUYWJsZUNhcHRpb24qPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVy
VGFibGVDYXB0aW9uKiB0b1JlbmRlclRhYmxlQ2FwdGlvbihjb25zdCBSZW5kZXJPYmplY3QqIG9i
amVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8
IG9iamVjdC0+aXNUYWJsZUNhcHRpb24oKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0
IFJlbmRlclRhYmxlQ2FwdGlvbio+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBh
bnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJUYWJsZUNhcHRp
b24oY29uc3QgUmVuZGVyVGFibGVDYXB0aW9uKik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMo
UmVuZGVyVGFibGVDYXB0aW9uLCBpc1RhYmxlQ2FwdGlvbigpKQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZUNlbGwuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAppbmRl
eCAwN2U3ODNmNjA4YTE3M2I5NTA3MTRiYTIyZjRiY2UyMDk2MzczMzZiLi4wMTExNmIyYzUwY2Fi
OTA2YzM2NzQyNTc3MWQ1MzY3OTA0MzU0MDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlQ2VsbC5oCkBAIC0yOTYsMjAgKzI5Niw3IEBAIHByaXZhdGU6CiAgICAgaW50
IG1faW50cmluc2ljUGFkZGluZ0FmdGVyOwogfTsKIAotaW5saW5lIFJlbmRlclRhYmxlQ2VsbCog
dG9SZW5kZXJUYWJsZUNlbGwoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJ
VEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzVGFibGVDZWxsKCkp
OwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJUYWJsZUNlbGwqPihvYmplY3QpOwotfQot
Ci1pbmxpbmUgY29uc3QgUmVuZGVyVGFibGVDZWxsKiB0b1JlbmRlclRhYmxlQ2VsbChjb25zdCBS
ZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNB
VElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNUYWJsZUNlbGwoKSk7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGNvbnN0IFJlbmRlclRhYmxlQ2VsbCo+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2ls
bCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJU
YWJsZUNlbGwoY29uc3QgUmVuZGVyVGFibGVDZWxsKik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FT
VFMoUmVuZGVyVGFibGVDZWxsLCBpc1RhYmxlQ2VsbCgpKQogCiBpbmxpbmUgUmVuZGVyVGFibGVD
ZWxsKiBSZW5kZXJUYWJsZUNlbGw6Om5leHRDZWxsKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmgKaW5kZXggYjM2NzJmNmY0YWJjYjc5NGI0ZTYyYjc0
ZjQyMzkyMWRmMjVhNDZhZS4uNjQ0MTMxYmZlMjI0OTU4MmMwZDM1ODExNWI3NzMxZjRkMzE0Y2Yw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmgKQEAgLTk1LDIw
ICs5NSw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9zcGFuOwogfTsKIAotaW5saW5lIFJl
bmRlclRhYmxlQ29sKiB0b1JlbmRlclRhYmxlQ29sKFJlbmRlck9iamVjdCogb2JqZWN0KQotewot
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5p
c1JlbmRlclRhYmxlQ29sKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJUYWJsZUNv
bCo+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJUYWJsZUNvbCogdG9SZW5kZXJU
YWJsZUNvbChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJUYWJsZUNvbCgp
KTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyVGFibGVDb2wqPihvYmplY3Qp
OwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNh
c3QuCi12b2lkIHRvUmVuZGVyVGFibGVDb2woY29uc3QgUmVuZGVyVGFibGVDb2wqKTsKK1JFTkRF
Ul9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJUYWJsZUNvbCwgaXNSZW5kZXJUYWJsZUNvbCgpKQog
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJv
dy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKaW5kZXggNTI4
NjFmNmU3Y2QwMjIwODU0Y2Y0YWE2MmY5MDQ3ODE5NzA3ZGU1NC4uMzM4YWFhMjBiZjFmYjliNTMz
ZmZjMzZlY2M4NDBkMjE2OGYzZjI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlUm93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlUm93LmgKQEAgLTExOSwyNiArMTE5LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBt
X3Jvd0luZGV4IDogMzE7CiB9OwogCi1pbmxpbmUgUmVuZGVyVGFibGVSb3cmIHRvUmVuZGVyVGFi
bGVSb3coUmVuZGVyT2JqZWN0JiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlf
SU1QTElDQVRJT04ob2JqZWN0LmlzVGFibGVSb3coKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PFJlbmRlclRhYmxlUm93Jj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIFJlbmRlclRhYmxlUm93KiB0
b1JlbmRlclRhYmxlUm93KFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRI
X1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1RhYmxlUm93KCkpOwot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJUYWJsZVJvdyo+KG9iamVjdCk7Ci19Ci0KLWlu
bGluZSBjb25zdCBSZW5kZXJUYWJsZVJvdyogdG9SZW5kZXJUYWJsZVJvdyhjb25zdCBSZW5kZXJP
YmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTigh
b2JqZWN0IHx8IG9iamVjdC0+aXNUYWJsZVJvdygpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Y29uc3QgUmVuZGVyVGFibGVSb3cqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2gg
YW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyVGFibGVSb3co
Y29uc3QgUmVuZGVyVGFibGVSb3cqKTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJU
YWJsZVJvdywgaXNUYWJsZVJvdygpKQogCiBpbmxpbmUgUmVuZGVyVGFibGVSb3cqIFJlbmRlclRh
YmxlU2VjdGlvbjo6Zmlyc3RSb3coKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oCmluZGV4IDA0ZTUxYzQ2MmI2MGFkZWY3Yjc1MzQzZGMz
ZDU5NzFjY2VhZjU0MDUuLjJlNTUzNzIxZmNkNDQ0NWY4ZDhmODgxMjc0Y2E1NWI2MzNlMDI5YWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmgKQEAg
LTMwOSwyMCArMzA5LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPHBhaXI8Y29uc3QgUmVuZGVy
VGFibGVDZWxsKiwgaW50PiwgQ29sbGFwc2VkQm9yZGVyVmFsdWUgPiBtX2NlbGxzQ29sbGFwc2Vk
Qm9yZGVyczsKIH07CiAKLWlubGluZSBSZW5kZXJUYWJsZVNlY3Rpb24qIHRvUmVuZGVyVGFibGVT
ZWN0aW9uKFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1RhYmxlU2VjdGlvbigpKTsKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyVGFibGVTZWN0aW9uKj4ob2JqZWN0KTsKLX0KLQotaW5s
aW5lIGNvbnN0IFJlbmRlclRhYmxlU2VjdGlvbiogdG9SZW5kZXJUYWJsZVNlY3Rpb24oY29uc3Qg
UmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElD
QVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzVGFibGVTZWN0aW9uKCkpOwotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxjb25zdCBSZW5kZXJUYWJsZVNlY3Rpb24qPihvYmplY3QpOwotfQotCi0vLyBU
aGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRv
UmVuZGVyVGFibGVTZWN0aW9uKGNvbnN0IFJlbmRlclRhYmxlU2VjdGlvbiopOworUkVOREVSX09C
SkVDVF9UWVBFX0NBU1RTKFJlbmRlclRhYmxlU2VjdGlvbiwgaXNUYWJsZVNlY3Rpb24oKSkKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQu
aAppbmRleCA3MzEwNmNjNmNkMTJlMmZmYjVlYWVhODFhYzljOTBkNjBjNjU1MzMwLi4wMzI4ODdi
ZjAwYWYyYmJkNzU5MDIxNmY5MTFhN2UwNjZlYTk4ZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0LmgKQEAgLTIxMiwzMyArMjEyLDcgQEAgcHJpdmF0ZToKICAgICBSZW5kZXJU
ZXh0TGluZUJveGVzIG1fbGluZUJveGVzOwogfTsKIAotaW5saW5lIFJlbmRlclRleHQmIHRvUmVu
ZGVyVGV4dChSZW5kZXJPYmplY3QmIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTihvYmplY3QuaXNUZXh0KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxS
ZW5kZXJUZXh0Jj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNvbnN0IFJlbmRlclRleHQmIHRvUmVu
ZGVyVGV4dChjb25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTihvYmplY3QuaXNUZXh0KCkpOwotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxjb25zdCBSZW5kZXJUZXh0Jj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIFJlbmRlclRleHQq
IHRvUmVuZGVyVGV4dChSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsgCi0gICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzVGV4dCgpKTsKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyVGV4dCo+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25z
dCBSZW5kZXJUZXh0KiB0b1JlbmRlclRleHQoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17
IAotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0
LT5pc1RleHQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclRleHQqPihv
YmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNz
YXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyVGV4dChjb25zdCBSZW5kZXJUZXh0Kik7Ci12b2lkIHRv
UmVuZGVyVGV4dChjb25zdCBSZW5kZXJUZXh0Jik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMo
UmVuZGVyVGV4dCwgaXNUZXh0KCkpCiAKIGlubGluZSBSZW5kZXJTdHlsZSogUmVuZGVyVGV4dDo6
c3R5bGUoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2wuaAppbmRleCA3ZTIzMWFiY2U3NjFmMTFlMjZkNWRmYWM4YzU0NzAxNTIwZWY3NDZlLi4w
ODU5YjlkOWY5YmE3Y2Y2YjVmNjFkOTIyZWRkNzVmMzQ3NjFlOWUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaApAQCAtODQsMjAgKzg0LDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0
aW9uKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAotaW5saW5lIFJlbmRl
clRleHRDb250cm9sKiB0b1JlbmRlclRleHRDb250cm9sKFJlbmRlck9iamVjdCogb2JqZWN0KQot
eyAKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVj
dC0+aXNUZXh0Q29udHJvbCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyVGV4dENv
bnRyb2wqPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyVGV4dENvbnRyb2wqIHRv
UmVuZGVyVGV4dENvbnRyb2woY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17IAotICAgIEFT
U0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1RleHRD
b250cm9sKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJUZXh0Q29udHJv
bCo+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5u
ZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJUZXh0Q29udHJvbChjb25zdCBSZW5kZXJUZXh0
Q29udHJvbCopOworUkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRlclRleHRDb250cm9sLCBp
c1RleHRDb250cm9sKCkpCiAKIC8vIFJlbmRlcmVyIGZvciBvdXIgaW5uZXIgY29udGFpbmVyLCBm
b3IgPHNlYXJjaD4gYW5kIG90aGVycy4KIC8vIFdlIGNhbid0IHVzZSBSZW5kZXJGbGV4aWJsZUJv
eCBkaXJlY3RseSwgYmVjYXVzZSBmbGV4Ym94ZXMgaGF2ZSBhIGRpZmZlcmVudApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaApp
bmRleCAxNmNkMmNmYWU2Y2M1NTljMGE3Y2NkNGZjMmU1NzFjNzcyMDA0NWQ4Li4yMTViYTAxMzc4
N2Y0MzgwZDk5YjY4MDQwMmM4Y2Y3NWY0MTUxN2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaApAQCAtNTIsMTQgKzUy
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogbGF5b3V0U3BlY2lhbEV4
Y2x1ZGVkQ2hpbGQoYm9vbCByZWxheW91dENoaWxkcmVuKTsKIH07CiAKLWlubGluZSBSZW5kZXJU
ZXh0Q29udHJvbE11bHRpTGluZSogdG9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZShSZW5kZXJP
YmplY3QqIG9iamVjdCkKLXsgCi0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
IW9iamVjdCB8fCBvYmplY3QtPmlzVGV4dEFyZWEoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lKj4ob2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxs
IGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlclRl
eHRDb250cm9sTXVsdGlMaW5lKGNvbnN0IFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lKik7CitS
RU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUsIGlzVGV4
dEFyZWEoKSkKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5kZXggNjA5NjRjOWVhNTNjMjgyNGE2OWUxYjM2
Y2M5MjBkN2QwOTZlNmE1Yi4uZGFhODJjMjEzNGI0N2UzNjNkMWE3MmM5OTA0ODM1ZWQ4ZWNjODI0
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuaApAQCAtOTgsMTQgKzk4LDcgQEAgaW5saW5lIEhUTUxFbGVtZW50KiBS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmlubmVyQmxvY2tFbGVtZW50KCkgY29uc3QKICAg
ICByZXR1cm4gaW5wdXRFbGVtZW50KCkuaW5uZXJCbG9ja0VsZW1lbnQoKTsKIH0KIAotaW5saW5l
IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSogdG9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzVGV4dEZpZWxkKCkpOwotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUqPihvYmplY3QpOwotfQotCi0v
LyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lk
IHRvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKGNvbnN0IFJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZSopOworUkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZSwgaXNUZXh0RmllbGQoKSkKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogCkBAIC0xMjEsMTQgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzVGV4
dENvbnRyb2xJbm5lckJsb2NrKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogfTsK
IAotaW5saW5lIFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jayogdG9SZW5kZXJUZXh0Q29udHJv
bElubmVyQmxvY2soUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzVGV4dENvbnRyb2xJbm5lckJs
b2NrKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJUZXh0Q29udHJvbElubmVyQmxv
Y2sqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVu
bmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrKGNvbnN0
IFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jayopOworUkVOREVSX09CSkVDVF9UWVBFX0NBU1RT
KFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jaywgaXNUZXh0Q29udHJvbElubmVyQmxvY2soKSkK
IAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKaW5kZXggYmY5YmNj
YmFmMWVkNTA2M2UzNTA1YmYwZTI1ODI2ZTZlMjQxOWZkZi4uOGY4NzU5ZmRkYzMzYmExZjkyY2Y0
OTI2ZGIwZWEyYjE4ZmM2ODU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlcldpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRn
ZXQuaApAQCAtMTEzLDIwICsxMTMsNyBAQCBwcml2YXRlOgogICAgIEludFJlY3QgbV9jbGlwUmVj
dDsgLy8gVGhlIHJlY3RhbmdsZSBuZWVkcyB0byByZW1haW4gY29ycmVjdCBhZnRlciBzY3JvbGxp
bmcsIHNvIGl0IGlzIHN0b3JlZCBpbiBjb250ZW50IHZpZXcgY29vcmRpbmF0ZXMsIGFuZCBub3Qg
Y2xpcHBlZCB0byB3aW5kb3cuCiB9OwogCi1pbmxpbmUgUmVuZGVyV2lkZ2V0KiB0b1JlbmRlcldp
ZGdldChSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNXaWRnZXQoKSk7Ci0gICAgcmV0dXJuIHN0
YXRpY19jYXN0PFJlbmRlcldpZGdldCo+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5k
ZXJXaWRnZXQqIHRvUmVuZGVyV2lkZ2V0KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQotewot
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5p
c1dpZGdldCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyV2lkZ2V0Kj4o
b2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vz
c2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlcldpZGdldChjb25zdCBSZW5kZXJXaWRnZXQqKTsKK1JF
TkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJXaWRnZXQsIGlzV2lkZ2V0KCkpCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oCmluZGV4IDNiZTZkNjk4MjVmN2IzOTFjMTM4OWRkN2Y4
MWY0OWQ2ZDE1YzE0MGEuLjYwY2I1NTQyNmIxM2FkOWZhNzBjNmJhNGY3MGYzMDg1ZjhjYmJmNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1M
QmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhN
TEJsb2NrLmgKQEAgLTg1LDIwICs4NSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lnbm9yZUlu
QWNjZXNzaWJpbGl0eVRyZWU7CiB9OwogCi1pbmxpbmUgUmVuZGVyTWF0aE1MQmxvY2sqIHRvUmVu
ZGVyTWF0aE1MQmxvY2soUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17IAotICAgIEFTU0VSVF9XSVRI
X1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlck1hdGhNTEJs
b2NrKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJNYXRoTUxCbG9jayo+KG9iamVj
dCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJNYXRoTUxCbG9jayogdG9SZW5kZXJNYXRoTUxC
bG9jayhjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsgCi0gICAgQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyTWF0aE1MQmxvY2so
KSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlck1hdGhNTEJsb2NrKj4ob2Jq
ZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2Fy
eSBjYXN0Lgotdm9pZCB0b1JlbmRlck1hdGhNTEJsb2NrKGNvbnN0IFJlbmRlck1hdGhNTEJsb2Nr
Kik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyTWF0aE1MQmxvY2ssIGlzUmVuZGVy
TWF0aE1MQmxvY2soKSkKIAogY2xhc3MgUmVuZGVyTWF0aE1MVGFibGUgRklOQUwgOiBwdWJsaWMg
UmVuZGVyVGFibGUgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHQ29udGFpbmVyLmgKaW5kZXggMWNjN2ZiN2FlNmZlYzVkMDkxOTNlODlhNDI1
YzdiMWRkYTcwZjAxZS4uYmFmYTE1YWQwYTEwYWE3ODgzNWM4MWVkYzFlOTI3YTE3OGQwNTI5MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWlu
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5l
ci5oCkBAIC04MSwyMSArODEsOCBAQCBwcml2YXRlOgogICAgIEZsb2F0UmVjdCBtX3JlcGFpbnRC
b3VuZGluZ0JveDsKICAgICBib29sIG1fbmVlZHNCb3VuZGFyaWVzVXBkYXRlIDogMTsKIH07Ci0g
IAotaW5saW5lIFJlbmRlclNWR0NvbnRhaW5lciogdG9SZW5kZXJTVkdDb250YWluZXIoUmVuZGVy
T2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
IW9iamVjdCB8fCBvYmplY3QtPmlzU1ZHQ29udGFpbmVyKCkpOwotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxSZW5kZXJTVkdDb250YWluZXIqPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVu
ZGVyU1ZHQ29udGFpbmVyKiB0b1JlbmRlclNWR0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3Qq
IG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0
IHx8IG9iamVjdC0+aXNTVkdDb250YWluZXIoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNv
bnN0IFJlbmRlclNWR0NvbnRhaW5lcio+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRj
aCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJTVkdDb250
YWluZXIoY29uc3QgUmVuZGVyU1ZHQ29udGFpbmVyKik7CisKK1JFTkRFUl9PQkpFQ1RfVFlQRV9D
QVNUUyhSZW5kZXJTVkdDb250YWluZXIsIGlzU1ZHQ29udGFpbmVyKCkpCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdHcmFkaWVudFN0b3AuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHR3JhZGllbnRTdG9wLmgKaW5kZXggNjUyOWI5ZTc1MWU3MDJjZGJmZTI3NWI2M2U4OGMx
N2Q3OWQzNGE4Ni4uZTIwZjMxN2JlMGRlMmM1YzU3ODliMjZiMGI3OGViMGM1YTI5ZWY4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdHcmFkaWVudFN0
b3AuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0dyYWRpZW50
U3RvcC5oCkBAIC01OSwxMSArNTksNyBAQCBwcml2YXRlOgogICAgIFNWR0dyYWRpZW50RWxlbWVu
dCogZ3JhZGllbnRFbGVtZW50KCkgY29uc3Q7CiB9OwogCi1pbmxpbmUgY29uc3QgUmVuZGVyU1ZH
R3JhZGllbnRTdG9wKiB0b1JlbmRlclNWR0dyYWRpZW50U3RvcChjb25zdCBSZW5kZXJPYmplY3Qq
IG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0
IHx8IG9iamVjdC0+aXNTVkdHcmFkaWVudFN0b3AoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PGNvbnN0IFJlbmRlclNWR0dyYWRpZW50U3RvcCo+KG9iamVjdCk7Ci19CitSRU5ERVJfT0JKRUNU
X1RZUEVfQ0FTVFMoUmVuZGVyU1ZHR3JhZGllbnRTdG9wLCBpc1NWR0dyYWRpZW50U3RvcCgpKQog
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuaApp
bmRleCAzMTRmYTc0N2QwOTQ5YTMyMzFjMzIwNTI3YWNlZTcxMGFmMTA3MTBkLi40NDM4OWI0Y2Mw
MjY0YTdlYjRlOWRjZWVhNDg5ZGEzNWMwNzU5MDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oCkBAIC05MywyMCArOTMsNyBAQCBwcml2YXRlOgog
ICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gbV9idWZmZXJlZEZvcmVncm91bmQ7CiB9OwogCi1pbmxp
bmUgUmVuZGVyU1ZHSW1hZ2UqIHRvUmVuZGVyU1ZHSW1hZ2UoUmVuZGVyT2JqZWN0KiBvYmplY3Qp
Ci17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmpl
Y3QtPmlzU1ZHSW1hZ2UoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclNWR0ltYWdl
Kj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNvbnN0IFJlbmRlclNWR0ltYWdlKiB0b1JlbmRlclNW
R0ltYWdlKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NF
Q1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1NWR0ltYWdlKCkpOwotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJTVkdJbWFnZSo+KG9iamVjdCk7Ci19Ci0K
LS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZv
aWQgdG9SZW5kZXJTVkdJbWFnZShjb25zdCBSZW5kZXJTVkdJbWFnZSopOworUkVOREVSX09CSkVD
VF9UWVBFX0NBU1RTKFJlbmRlclNWR0ltYWdlLCBpc1NWR0ltYWdlKCkpCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdJbmxpbmVUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR0lubGluZVRleHQuaAppbmRleCAxYTBiNWY3NjM1ZjQyN2QwOGQ0YTNjNGRlOWYzNWQyZGEz
ODg2YTE1Li5hODJlN2ZjZjA1NzQ3ZTcyZGEwZjc1NDQyNzQ5NmYwZDRjNDk4YTNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuaApA
QCAtNjksMzIgKzY5LDcgQEAgcHJpdmF0ZToKICAgICBTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyBt
X2xheW91dEF0dHJpYnV0ZXM7CiB9OwogCi1pbmxpbmUgUmVuZGVyU1ZHSW5saW5lVGV4dCYgdG9S
ZW5kZXJTVkdJbmxpbmVUZXh0KFJlbmRlck9iamVjdCYgb2JqZWN0KQotewotICAgIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9iamVjdC5pc1NWR0lubGluZVRleHQoKSk7Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclNWR0lubGluZVRleHQmPihvYmplY3QpOwotfQotCi1p
bmxpbmUgY29uc3QgUmVuZGVyU1ZHSW5saW5lVGV4dCYgdG9SZW5kZXJTVkdJbmxpbmVUZXh0KGNv
bnN0IFJlbmRlck9iamVjdCYgb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKG9iamVjdC5pc1NWR0lubGluZVRleHQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PGNvbnN0IFJlbmRlclNWR0lubGluZVRleHQmPihvYmplY3QpOwotfQotCi1pbmxpbmUgUmVu
ZGVyU1ZHSW5saW5lVGV4dCogdG9SZW5kZXJTVkdJbmxpbmVUZXh0KFJlbmRlck9iamVjdCogb2Jq
ZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwg
b2JqZWN0LT5pc1NWR0lubGluZVRleHQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRl
clNWR0lubGluZVRleHQqPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyU1ZHSW5s
aW5lVGV4dCogdG9SZW5kZXJTVkdJbmxpbmVUZXh0KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0
KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2Jq
ZWN0LT5pc1NWR0lubGluZVRleHQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJl
bmRlclNWR0lubGluZVRleHQqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55
b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyU1ZHSW5saW5lVGV4
dChjb25zdCBSZW5kZXJTVkdJbmxpbmVUZXh0Kik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMo
UmVuZGVyU1ZHSW5saW5lVGV4dCwgaXNTVkdJbmxpbmVUZXh0KCkpCiAKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQYXRoLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguaAppbmRleCAwZWVhMmE5NDBkNGI4
ZjNkZjRhOWQwMjAwMzVkYzA4ZDc5YTM2ZDBlLi5iOTc0NzVkYTU5MWI5ODYzMGNjZjJjZGFkM2E2
MjNkNGJmNDU5NzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1BhdGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1BhdGguaApAQCAtNTQsMTEgKzU0LDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8RmxvYXRQb2lu
dD4gbV96ZXJvTGVuZ3RoTGluZWNhcExvY2F0aW9uczsKIH07CiAKLWlubGluZSBSZW5kZXJTVkdQ
YXRoKiB0b1JlbmRlclNWR1BhdGgoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzU1ZHUGF0aCgp
KTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyU1ZHUGF0aCo+KG9iamVjdCk7Ci19CitS
RU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyU1ZHUGF0aCwgaXNTVkdQYXRoKCkpCiAKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZUZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZUZpbHRlci5oCmluZGV4IDYxNzk3ZTg2MDZlNTk1NWVkZTQxMTYzMjg5MDY2Y2MwMjg4Zjg1
YzEuLmIyMWE3ZTFlYWFmZTYyYTM5MTgyZTQyZWFhZjUyNzQwNzliOGMyOTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVy
LmgKQEAgLTEwMCwxMSArMTAwLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFJlbmRlck9iamVj
dCosIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJEYXRhPj4gbV9maWx0ZXI7CiB9OwogCi1pbmxpbmUg
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIqIHRvUmVuZGVyU1ZHRmlsdGVyKFJlbmRlck9iamVjdCog
b2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3Qg
fHwgb2JqZWN0LT5pc1NWR1Jlc291cmNlRmlsdGVyKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcio+KG9iamVjdCk7Ci19CitSRU5ERVJfT0JKRUNUX1RZ
UEVfQ0FTVFMoUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIsIGlzU1ZHUmVzb3VyY2VGaWx0ZXIoKSkK
IAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuY3BwCmluZGV4IDdkZDZkZjU1YzZi
MmRmZGFmY2MzZmRiZjk0ZTdiOGMyMmYzZmIyOGIuLmE3MTFiZDk3ZGE4MGY0Yjg4Y2RhNDVmNDA4
ZTRlOWE1YmE5NWU0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuY3BwCkBAIC02
MywxMiArNjMsMTIgQEAgdm9pZCBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2ZTo6c3R5
bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnMKICAgICBjb25zdCBTVkdSZW5k
ZXJTdHlsZSogbmV3U3R5bGUgPSB0aGlzLT5zdHlsZSgpLT5zdmdTdHlsZSgpOwogICAgIGlmIChm
aWx0ZXJQcmltaXRpdmVFbGVtZW50KCkuaGFzVGFnTmFtZShTVkdOYW1lczo6ZmVGbG9vZFRhZykp
IHsKICAgICAgICAgaWYgKG5ld1N0eWxlLT5mbG9vZENvbG9yKCkgIT0gb2xkU3R5bGUtPnN2Z1N0
eWxlKCktPmZsb29kQ29sb3IoKSkKLSAgICAgICAgICAgIHRvUmVuZGVyU1ZHRmlsdGVyKGZpbHRl
ciktPnByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQodGhpcywgU1ZHTmFtZXM6OmZsb29kX2NvbG9y
QXR0cik7CisgICAgICAgICAgICB0b1JlbmRlclNWR1Jlc291cmNlRmlsdGVyKGZpbHRlciktPnBy
aW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQodGhpcywgU1ZHTmFtZXM6OmZsb29kX2NvbG9yQXR0cik7
CiAgICAgICAgIGlmIChuZXdTdHlsZS0+Zmxvb2RPcGFjaXR5KCkgIT0gb2xkU3R5bGUtPnN2Z1N0
eWxlKCktPmZsb29kT3BhY2l0eSgpKQotICAgICAgICAgICAgdG9SZW5kZXJTVkdGaWx0ZXIoZmls
dGVyKS0+cHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZCh0aGlzLCBTVkdOYW1lczo6Zmxvb2Rfb3Bh
Y2l0eUF0dHIpOworICAgICAgICAgICAgdG9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlcihmaWx0ZXIp
LT5wcmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKHRoaXMsIFNWR05hbWVzOjpmbG9vZF9vcGFjaXR5
QXR0cik7CiAgICAgfSBlbHNlIGlmIChmaWx0ZXJQcmltaXRpdmVFbGVtZW50KCkuaGFzVGFnTmFt
ZShTVkdOYW1lczo6ZmVEaWZmdXNlTGlnaHRpbmdUYWcpIHx8IGZpbHRlclByaW1pdGl2ZUVsZW1l
bnQoKS5oYXNUYWdOYW1lKFNWR05hbWVzOjpmZVNwZWN1bGFyTGlnaHRpbmdUYWcpKSB7CiAgICAg
ICAgIGlmIChuZXdTdHlsZS0+bGlnaHRpbmdDb2xvcigpICE9IG9sZFN0eWxlLT5zdmdTdHlsZSgp
LT5saWdodGluZ0NvbG9yKCkpCi0gICAgICAgICAgICB0b1JlbmRlclNWR0ZpbHRlcihmaWx0ZXIp
LT5wcmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKHRoaXMsIFNWR05hbWVzOjpsaWdodGluZ19jb2xv
ckF0dHIpOworICAgICAgICAgICAgdG9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlcihmaWx0ZXIpLT5w
cmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKHRoaXMsIFNWR05hbWVzOjpsaWdodGluZ19jb2xvckF0
dHIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jvb3QuaAppbmRleCBjYWYwOTVkNjQ5YTQxYmUzYjViMGFhOGFjYWE0NWVkMDNiMjNiMzAwLi5j
NmI0ZTc2Y2M1MTBlNDEzMTRjN2EwMWYzODVkYmQxYjEzZDBlZDM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaApAQCAtMTIzLDIwICsxMjMsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9oYXNTVkdTaGFkb3cgOiAxOwogfTsKIAotaW5saW5lIFJlbmRl
clNWR1Jvb3QqIHRvUmVuZGVyU1ZHUm9vdChSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsgCi0gICAg
QVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzU1ZH
Um9vdCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyU1ZHUm9vdCo+KG9iamVjdCk7
Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJTVkdSb290KiB0b1JlbmRlclNWR1Jvb3QoY29uc3Qg
UmVuZGVyT2JqZWN0KiBvYmplY3QpCi17IAotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1NWR1Jvb3QoKSk7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGNvbnN0IFJlbmRlclNWR1Jvb3QqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwg
Y2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyU1ZH
Um9vdChjb25zdCBSZW5kZXJTVkdSb290Kik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVu
ZGVyU1ZHUm9vdCwgaXNTVkdSb290KCkpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oCmluZGV4IDAzNjlm
YTFiYzNlMzQ4NmI5NTZlMTU3ZGZmOGEyNzQzMjQwMWVjOGIuLjU0ZWMwYWRmYWEyMTZjODM5Zjc1
ZjcyNzM4NzZkZjI4ZjhjOTc1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHU2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1NoYXBlLmgKQEAgLTE1MywyMCArMTUzLDcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUgOiAxOwogfTsKIAotaW5saW5lIFJlbmRlclNWR1NoYXBl
KiB0b1JlbmRlclNWR1NoYXBlKFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1NWR1NoYXBlKCkp
OwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJTVkdTaGFwZSo+KG9iamVjdCk7Ci19Ci0K
LWlubGluZSBjb25zdCBSZW5kZXJTVkdTaGFwZSogdG9SZW5kZXJTVkdTaGFwZShjb25zdCBSZW5k
ZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElP
Tighb2JqZWN0IHx8IG9iamVjdC0+aXNTVkdTaGFwZSgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8Y29uc3QgUmVuZGVyU1ZHU2hhcGUqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0
Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyU1ZHU2hh
cGUoY29uc3QgUmVuZGVyU1ZHU2hhcGUqKTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5k
ZXJTVkdTaGFwZSwgaXNTVkdTaGFwZSgpKQogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKaW5kZXggNjVjMmEyYTM4NzAzNWE2NjY2ODExMmYzOTc3
YTIwM2Y0NWY5ZTM5NS4uZGQ3ODQwZjYxZDM1ZTZhN2FjYjJmYWJlNjAwZjEyYTFmYWRkYjdmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKQEAgLTEw
NiwzMyArMTA2LDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0
ZXMqPiBtX2xheW91dEF0dHJpYnV0ZXM7CiB9OwogCi1pbmxpbmUgUmVuZGVyU1ZHVGV4dCYgdG9S
ZW5kZXJTVkdUZXh0KFJlbmRlck9iamVjdCYgb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NF
Q1VSSVRZX0lNUExJQ0FUSU9OKG9iamVjdC5pc1NWR1RleHQoKSk7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFJlbmRlclNWR1RleHQmPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVy
U1ZHVGV4dCYgdG9SZW5kZXJTVkdUZXh0KGNvbnN0IFJlbmRlck9iamVjdCYgb2JqZWN0KQotewot
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9iamVjdC5pc1NWR1RleHQoKSk7
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclNWR1RleHQmPihvYmplY3QpOwot
fQotCi1pbmxpbmUgUmVuZGVyU1ZHVGV4dCogdG9SZW5kZXJTVkdUZXh0KFJlbmRlck9iamVjdCog
b2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3Qg
fHwgb2JqZWN0LT5pc1NWR1RleHQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclNW
R1RleHQqPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyU1ZHVGV4dCogdG9SZW5k
ZXJTVkdUZXh0KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRI
X1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1NWR1RleHQoKSk7Ci0g
ICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclNWR1RleHQqPihvYmplY3QpOwotfQot
Ci0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12
b2lkIHRvUmVuZGVyU1ZHVGV4dChjb25zdCBSZW5kZXJTVkdUZXh0Jik7Ci12b2lkIHRvUmVuZGVy
U1ZHVGV4dChjb25zdCBSZW5kZXJTVkdUZXh0Kik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMo
UmVuZGVyU1ZHVGV4dCwgaXNTVkdUZXh0KCkpCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0UGF0aC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0UGF0aC5oCmluZGV4IDJkOTg0NjMzNzZhNDY1ZTZj
ZTFlOWIwNmQ1ZjEzYTk1MTZkMWY0ZTIuLmM4MDIxZTE4Yzc5ZmY1NWQ1YjA4MWVjMDM1NjFiMmZm
ZTgxZTQzMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHVGV4dFBhdGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1RleHRQYXRoLmgKQEAgLTQ2LDE0ICs0Niw3IEBAIHByaXZhdGU6CiAgICAgUGF0aCBtX2xheW91
dFBhdGg7CiB9OwogCi1pbmxpbmUgUmVuZGVyU1ZHVGV4dFBhdGgqIHRvUmVuZGVyU1ZHVGV4dFBh
dGgoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17IAotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1NWR1RleHRQYXRoKCkpOwotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxSZW5kZXJTVkdUZXh0UGF0aCo+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMg
d2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5k
ZXJTVkdUZXh0UGF0aChjb25zdCBSZW5kZXJTVkdUZXh0UGF0aCopOworUkVOREVSX09CSkVDVF9U
WVBFX0NBU1RTKFJlbmRlclNWR1RleHRQYXRoLCBpc1NWR1RleHRQYXRoKCkpCiAKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdWaWV3cG9ydENv
bnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdWaWV3cG9y
dENvbnRhaW5lci5oCmluZGV4IGZhM2Q5NGQ4ZGJkYzdkYjQ2MWQyYTJiMjI2MjY0Zjg4ODMxMzQw
MDIuLjdiNjRiNGNmZDFjYTMxNzc5YzVjYzVmMzhhMGYzNWMzZWQxMzAyMDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29u
dGFpbmVyLmgKQEAgLTY3LDIxICs2Nyw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzTGF5b3V0
U2l6ZUNoYW5nZWQgOiAxOwogICAgIGJvb2wgbV9uZWVkc1RyYW5zZm9ybVVwZGF0ZSA6IDE7CiB9
OwotICAKLWlubGluZSBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciogdG9SZW5kZXJTVkdWaWV3
cG9ydENvbnRhaW5lcihSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNTVkdWaWV3cG9ydENvbnRh
aW5lcigpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyU1ZHVmlld3BvcnRDb250YWlu
ZXIqPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyU1ZHVmlld3BvcnRDb250YWlu
ZXIqIHRvUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmpl
Y3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBv
YmplY3QtPmlzU1ZHVmlld3BvcnRDb250YWluZXIoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PGNvbnN0IFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyKj4ob2JqZWN0KTsKLX0KLQotLy8gVGhp
cyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1Jl
bmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyKGNvbnN0IFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVy
Kik7CisKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5l
ciwgaXNTVkdWaWV3cG9ydENvbnRhaW5lcigpKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lRmxvd0Jv
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZUZsb3dCb3guY3Bw
CmluZGV4IGM4MmZjZDQ2N2ZlZGU2ZDQwOTU2N2EwN2I5OTA5NWFjZTJmMDExM2YuLjhkNzEwMWJk
MzM0ZTFhYmI1M2ZhMDYyZDcwNzYzZGMwOTU2MjZhYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lRmxvd0JveC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVGbG93Qm94LmNwcApAQCAtNTgsNyArNTgsNyBAQCB2
b2lkIFNWR0lubGluZUZsb3dCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBM
YXlvdXRQb2ludCYsIExheW91dFVuaQogICAgIGlmIChyZW5kZXJpbmdDb250ZXh0LmlzUmVuZGVy
aW5nUHJlcGFyZWQoKSkgewogICAgICAgICBmb3IgKElubGluZUJveCogY2hpbGQgPSBmaXJzdENo
aWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0T25MaW5lKCkpIHsKICAgICAgICAgICAg
IGlmIChjaGlsZC0+aXNTVkdJbmxpbmVUZXh0Qm94KCkpCi0gICAgICAgICAgICAgICAgY29tcHV0
ZVRleHRNYXRjaE1hcmtlclJlY3RGb3JSZW5kZXJlcigmdG9SZW5kZXJTVkdJbmxpbmVUZXh0KHRv
U1ZHSW5saW5lVGV4dEJveChjaGlsZCktPnJlbmRlcmVyKCkpKTsKKyAgICAgICAgICAgICAgICBj
b21wdXRlVGV4dE1hdGNoTWFya2VyUmVjdEZvclJlbmRlcmVyKCYodG9TVkdJbmxpbmVUZXh0Qm94
KGNoaWxkKS0+cmVuZGVyZXIoKSkpOwogCiAgICAgICAgICAgICBjaGlsZC0+cGFpbnQocGFpbnRJ
bmZvLCBMYXlvdXRQb2ludCgpLCAwLCAwKTsKICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214936</attachid>
            <date>2013-10-23 00:55:10 -0700</date>
            <delta_ts>2013-10-23 18:28:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123150-20131023165508.patch</filename>
            <type>text/plain</type>
            <size>71771</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3ODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQyOTFlZWYxNWM0MjA5
MzYxMjE4ZGIzM2RmZWFjNjgyYTY2NzQ5ZC4uNzM2Njc0MmUwMGNiNGZlMWJiOTFhMWUwNjIwYzBl
ZTYxMTZkYjRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDEzLTEwLTIzICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgSW50cm9kdWNl
IFJFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyB0byByZXBsYWNlIG1hbnVhbCB0b0ZvbygpIGluIGNo
aWxkIHJlbmRlciBvYmplY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyMzE1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFzIGEgc3RlcCB0byBsZXQgdG9Gb28gdXNlIFRZUEVfQ0FTVFNfQkFTRSwgdG9S
ZW5kZXJGb28oKSBjYW4gdXNlIGl0IGZvciBjaGlsZCByZW5kZXIgb2JqZWN0LgorICAgICAgICBT
bywgdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIFJFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyBiYXNlZCBv
biB0aGUgVFlQRV9DQVNUU19CQVNFLiBUaGlzIHdpbGwKKyAgICAgICAgZ2VuZXJhdGUgcGxlbnR5
IG1vcmUgaGVscGVyIGZ1bmN0aW9ucyBmb3IgcmVuZGVyIG9iamVjdCB0eXBlIGNhc3QuCisKKyAg
ICAgICAgU29tZSB1bm5lY2Vzc2FyeSB0eXBlIGNhc3RzIGFyZSBmaXhlZCBieSB0aGlzIGNoYW5n
ZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
QmxvY2tGbG93Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCdXR0b24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQ291bnRlci5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJFbGVtZW50OjpnZW5lcmF0aW5nRWxlbWVudCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckVtYmVkZGVkT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0Lmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckZsb3dUaHJlYWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnJhbWUuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRnVsbFNjcmVlbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFz
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJJbWFnZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJN
ZW51TGlzdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZXRlci5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlck11bHRpQ29sdW1uU2V0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVk
Rmxvd0ZyYWdtZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVh
ZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUXVvdGUu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclJlcGxhY2VkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4u
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJTbGlkZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4u
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGFibGVDYXB0aW9uLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxl
Q2VsbC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
YWJsZVNlY3Rpb24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyV2lkZ2V0
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdHcmFkaWVudFN0b3AuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR0ltYWdlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJ
bmxpbmVUZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQYXRoLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmU6OnN0eWxl
RGlkQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmg6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdUZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdUZXh0UGF0aC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVmlld3BvcnRD
b250YWluZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR0lubGluZUZsb3dCb3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW5saW5lRmxvd0JveDo6cGFpbnQpOgorCiAyMDEzLTEw
LTIyICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMTU3ODI2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suaAppbmRleCBiNDQ3ZDgyMWU2ODNkNjMxZDJjODkxNDNjMjdhNGUxYmI4MzVlZmY2
Li5kNmU0NDIyOGUzZTdjODViMmNhNzhmOWQyOGY5YTc1Y2RhNDM4NDY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApAQCAtNzcyLDMzICs3NzIsNyBAQCBwcml2YXRlOgog
ICAgIHN0YXRpYyBib29sIHNfY2FuUHJvcGFnYXRlRmxvYXRJbnRvU2libGluZzsKIH07CiAKLWlu
bGluZSBSZW5kZXJCbG9jayYgdG9SZW5kZXJCbG9jayhSZW5kZXJPYmplY3QmIG9iamVjdCkKLXsK
LSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3QuaXNSZW5kZXJCbG9j
aygpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyQmxvY2smPihvYmplY3QpOwotfQot
Ci1pbmxpbmUgY29uc3QgUmVuZGVyQmxvY2smIHRvUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyT2Jq
ZWN0JiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ob2Jq
ZWN0LmlzUmVuZGVyQmxvY2soKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRl
ckJsb2NrJj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIFJlbmRlckJsb2NrKiB0b1JlbmRlckJsb2Nr
KFJlbmRlck9iamVjdCogb2JqZWN0KQoteyAKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBM
SUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJCbG9jaygpKTsKLSAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8UmVuZGVyQmxvY2sqPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVu
ZGVyQmxvY2sqIHRvUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17IAot
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5p
c1JlbmRlckJsb2NrKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJCbG9j
ayo+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5u
ZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayopOwot
dm9pZCB0b1JlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2NrJik7CitSRU5ERVJfT0JKRUNUX1RZ
UEVfQ0FTVFMoUmVuZGVyQmxvY2ssIGlzUmVuZGVyQmxvY2soKSkKIAogTGF5b3V0VW5pdCBibG9j
a0RpcmVjdGlvbk9mZnNldChSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvdXRTaXpl
JiBvZmZzZXRGcm9tUm9vdEJsb2NrKTsKIExheW91dFVuaXQgaW5saW5lRGlyZWN0aW9uT2Zmc2V0
KFJlbmRlckJsb2NrJiByb290QmxvY2ssIGNvbnN0IExheW91dFNpemUmIG9mZnNldEZyb21Sb290
QmxvY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oCmluZGV4
IDlkMGRmOTdhOTMzMTkyMDM2MzA5MDJkMGZkMTMzNDNmYTI5NWRmNGQuLmIzOTA3MDUyMWFhMWFk
M2FiMGY4NDBiM2M4NmJmZmY1NDI0ZGU4YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tGbG93LmgKQEAgLTQ4NCwzOSArNDg0LDEzIEBAIHByb3RlY3RlZDoKICAgICBm
cmllbmQgY2xhc3MgTGluZVdpZHRoOyAvLyBOZWVkcyB0byBrbm93IEZsb2F0aW5nT2JqZWN0CiB9
OwogCi1pbmxpbmUgUmVuZGVyQmxvY2tGbG93JiB0b1JlbmRlckJsb2NrRmxvdyhSZW5kZXJPYmpl
Y3QmIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmpl
Y3QuaXNSZW5kZXJCbG9ja0Zsb3coKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlckJs
b2NrRmxvdyY+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIHRv
UmVuZGVyQmxvY2tGbG93KGNvbnN0IFJlbmRlck9iamVjdCYgb2JqZWN0KQotewotICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9iamVjdC5pc1JlbmRlckJsb2NrRmxvdygpKTsK
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyQmxvY2tGbG93Jj4ob2JqZWN0KTsK
LX0KLQotaW5saW5lIFJlbmRlckJsb2NrRmxvdyogdG9SZW5kZXJCbG9ja0Zsb3coUmVuZGVyT2Jq
ZWN0KiBvYmplY3QpCi17IAotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFv
YmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlckJsb2NrRmxvdygpKTsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8UmVuZGVyQmxvY2tGbG93Kj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNvbnN0IFJlbmRl
ckJsb2NrRmxvdyogdG9SZW5kZXJCbG9ja0Zsb3coY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3Qp
Ci17IAotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2Jq
ZWN0LT5pc1JlbmRlckJsb2NrRmxvdygpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
UmVuZGVyQmxvY2tGbG93Kj4ob2JqZWN0KTsKLX0KK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhS
ZW5kZXJCbG9ja0Zsb3csIGlzUmVuZGVyQmxvY2tGbG93KCkpCiAKIGlubGluZSBib29sIFJlbmRl
ckVsZW1lbnQ6OmlzUmVuZGVyTmFtZWRGbG93RnJhZ21lbnRDb250YWluZXIoKSBjb25zdAogewog
ICAgIHJldHVybiBpc1JlbmRlckJsb2NrRmxvdygpICYmIHRvUmVuZGVyQmxvY2tGbG93KHRoaXMp
LT5yZW5kZXJOYW1lZEZsb3dGcmFnbWVudCgpOwogfQogCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55
b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyQmxvY2tGbG93KGNv
bnN0IFJlbmRlckJsb2NrRmxvdyopOwotdm9pZCB0b1JlbmRlckJsb2NrRmxvdyhjb25zdCBSZW5k
ZXJCbG9ja0Zsb3cmKTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVu
ZGVyQmxvY2tGbG93X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCAxZmYw
NGIwMDI5NWFmOWIwYjg4ODgzNzBkNzcwMjk0YTRkMmQyZWNlLi4zNWFmMDdlNWZhZTAyMjgzMTgy
N2I5NWZhODIzMDM0NWMwNGRmZjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5o
CkBAIC03MTIsMzMgKzcxMiw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgc19oYWRPdmVy
Zmxvd0NsaXA7CiB9OwogCi1pbmxpbmUgUmVuZGVyQm94JiB0b1JlbmRlckJveChSZW5kZXJPYmpl
Y3QmIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmpl
Y3QuaXNCb3goKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlckJveCY+KG9iamVjdCk7
Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJCb3gmIHRvUmVuZGVyQm94KGNvbnN0IFJlbmRlck9i
amVjdCYgb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9i
amVjdC5pc0JveCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyQm94Jj4o
b2JqZWN0KTsKLX0KLQotaW5saW5lIFJlbmRlckJveCogdG9SZW5kZXJCb3goUmVuZGVyT2JqZWN0
KiBvYmplY3QpCi17IAotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmpl
Y3QgfHwgb2JqZWN0LT5pc0JveCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyQm94
Kj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNvbnN0IFJlbmRlckJveCogdG9SZW5kZXJCb3goY29u
c3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17IAotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc0JveCgpKTsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Y29uc3QgUmVuZGVyQm94Kj4ob2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNo
IGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlckJveChjb25z
dCBSZW5kZXJCb3gqKTsKLXZvaWQgdG9SZW5kZXJCb3goY29uc3QgUmVuZGVyQm94Jik7CitSRU5E
RVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyQm94LCBpc0JveCgpKQogCiBpbmxpbmUgUmVuZGVy
Qm94KiBSZW5kZXJCb3g6OnByZXZpb3VzU2libGluZ0JveCgpIGNvbnN0CiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCmluZGV4IDk0NTg3NmZi
OTYzZGYwZDE3OWY3NTA0M2EwODc1MmFkNjBkZmFlMWQuLmZiM2E5Njc5MDFjNTU0ZDZiMjIxMGNm
OTkwNTQ0ZDc3MTJiYzA5NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3hNb2RlbE9iamVjdC5oCkBAIC0zNDAsMzMgKzM0MCw3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ29sb3IsIEVCb3JkZXJTdHlsZSwgQmFja2dyb3VuZEJsZWVk
QXZvaWRhbmNlLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2lj
YWxSaWdodEVkZ2UpOwogfTsKIAotaW5saW5lIFJlbmRlckJveE1vZGVsT2JqZWN0JiB0b1JlbmRl
ckJveE1vZGVsT2JqZWN0KFJlbmRlck9iamVjdCYgb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRI
X1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9iamVjdC5pc0JveE1vZGVsT2JqZWN0KCkpOwotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdCY+KG9iamVjdCk7Ci19Ci0KLWlu
bGluZSBjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCYgdG9SZW5kZXJCb3hNb2RlbE9iamVjdChj
b25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTihvYmplY3QuaXNCb3hNb2RlbE9iamVjdCgpKTsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Y29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmPihvYmplY3QpOwotfQotCi1pbmxpbmUg
UmVuZGVyQm94TW9kZWxPYmplY3QqIHRvUmVuZGVyQm94TW9kZWxPYmplY3QoUmVuZGVyT2JqZWN0
KiBvYmplY3QpCi17IAotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmpl
Y3QgfHwgb2JqZWN0LT5pc0JveE1vZGVsT2JqZWN0KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxSZW5kZXJCb3hNb2RlbE9iamVjdCo+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5k
ZXJCb3hNb2RlbE9iamVjdCogdG9SZW5kZXJCb3hNb2RlbE9iamVjdChjb25zdCBSZW5kZXJPYmpl
Y3QqIG9iamVjdCkKLXsgCi0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9i
amVjdCB8fCBvYmplY3QtPmlzQm94TW9kZWxPYmplY3QoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0Kj4ob2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3
aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRl
ckJveE1vZGVsT2JqZWN0KGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0Kik7Ci12b2lkIHRvUmVu
ZGVyQm94TW9kZWxPYmplY3QoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmKTsKK1JFTkRFUl9P
QkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJCb3hNb2RlbE9iamVjdCwgaXNCb3hNb2RlbE9iamVjdCgp
KQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCdXR0b24uaAppbmRleCBiOTJiYmE1MTM4ZWQzZGYwM2U2NTA0OWFmNDQyZGQxOGQ5ZDdkZjM1
Li4yYjI3YzM0OTgzMGMwODRlYzFhNDE1ODc2YmRlZWU3N2NlZDg5N2JjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oCkBAIC03OSwyMCArNzksNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9kZWZhdWx0OwogfTsKIAotaW5saW5lIFJlbmRlckJ1dHRvbiogdG9SZW5kZXJC
dXR0b24oUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17IAotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlckJ1dHRvbigpKTsKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyQnV0dG9uKj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNv
bnN0IFJlbmRlckJ1dHRvbiogdG9SZW5kZXJCdXR0b24oY29uc3QgUmVuZGVyT2JqZWN0KiBvYmpl
Y3QpCi17IAotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwg
b2JqZWN0LT5pc1JlbmRlckJ1dHRvbigpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
UmVuZGVyQnV0dG9uKj4ob2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBk
b2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlckJ1dHRvbihjb25zdCBSZW5k
ZXJCdXR0b24qKTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJCdXR0b24sIGlzUmVu
ZGVyQnV0dG9uKCkpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJDb3VudGVyLmgKaW5kZXggZjZhNjI2NmI1Mjg0MzU5MGE1ZmNjNzUxN2Qz
ODg0NDM1ZWU3YWU4Ni4uMDNkOGEyY2EzOWY2ZTgyNTY4N2Q3NTAwMWMyODg0NzE5YTIxNWVkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5oCkBAIC02MiwyMSArNjIs
NyBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBDb3VudGVyTm9kZTsKIH07CiAKLWlubGlu
ZSBSZW5kZXJDb3VudGVyJiB0b1JlbmRlckNvdW50ZXIoUmVuZGVyT2JqZWN0JiBvYmplY3QpCi17
Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ob2JqZWN0LmlzQ291bnRlcigp
KTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyQ291bnRlciY+KG9iamVjdCk7Ci19Ci0K
LWlubGluZSBSZW5kZXJDb3VudGVyKiB0b1JlbmRlckNvdW50ZXIoUmVuZGVyT2JqZWN0KiBvYmpl
Y3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBv
YmplY3QtPmlzQ291bnRlcigpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyQ291bnRl
cio+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5u
ZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJDb3VudGVyKGNvbnN0IFJlbmRlckNvdW50ZXIm
KTsKLXZvaWQgdG9SZW5kZXJDb3VudGVyKGNvbnN0IFJlbmRlckNvdW50ZXIqKTsKK1JFTkRFUl9P
QkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJDb3VudGVyLCBpc0NvdW50ZXIoKSkKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaApp
bmRleCA1N2YzNWFjZmY5MjE2NDRjNTIwMWIyNmZiNmFkMmQwYzcwYmZkNjVlLi4yNzdmOTg2NWYx
MWZhNTIzOTdiOTFiNmI1MzA5MmViMTE2ZTAxZDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJFbGVtZW50LmgKQEAgLTIzNSw0MSArMjM1LDE1IEBAIGlubGluZSBib29sIFJlbmRl
ckVsZW1lbnQ6OmlzUmVuZGVySW5saW5lKCkgY29uc3QKICAgICByZXR1cm4gbV9iYXNlVHlwZUZs
YWdzICYgUmVuZGVySW5saW5lRmxhZzsKIH0KIAotaW5saW5lIFJlbmRlckVsZW1lbnQmIHRvUmVu
ZGVyRWxlbWVudChSZW5kZXJPYmplY3QmIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNV
UklUWV9JTVBMSUNBVElPTihvYmplY3QuaXNSZW5kZXJFbGVtZW50KCkpOwotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxSZW5kZXJFbGVtZW50Jj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNvbnN0IFJl
bmRlckVsZW1lbnQmIHRvUmVuZGVyRWxlbWVudChjb25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCkK
LXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3QuaXNSZW5kZXJF
bGVtZW50KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJFbGVtZW50Jj4o
b2JqZWN0KTsKLX0KLQotaW5saW5lIFJlbmRlckVsZW1lbnQqIHRvUmVuZGVyRWxlbWVudChSZW5k
ZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElP
Tighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJFbGVtZW50KCkpOwotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxSZW5kZXJFbGVtZW50Kj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNvbnN0IFJlbmRl
ckVsZW1lbnQqIHRvUmVuZGVyRWxlbWVudChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsK
LSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+
aXNSZW5kZXJFbGVtZW50KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJF
bGVtZW50Kj4ob2JqZWN0KTsKLX0KK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJFbGVt
ZW50LCBpc1JlbmRlckVsZW1lbnQoKSkKIAogaW5saW5lIEVsZW1lbnQqIFJlbmRlckVsZW1lbnQ6
OmdlbmVyYXRpbmdFbGVtZW50KCkgY29uc3QKIHsKICAgICBpZiAocGFyZW50KCkgJiYgaXNSZW5k
ZXJOYW1lZEZsb3dGcmFnbWVudCgpKQotICAgICAgICByZXR1cm4gdG9SZW5kZXJFbGVtZW50KHBh
cmVudCgpKS0+Z2VuZXJhdGluZ0VsZW1lbnQoKTsKKyAgICAgICAgcmV0dXJuIHBhcmVudCgpLT5n
ZW5lcmF0aW5nRWxlbWVudCgpOwogICAgIHJldHVybiB0b0VsZW1lbnQoUmVuZGVyT2JqZWN0Ojpn
ZW5lcmF0aW5nTm9kZSgpKTsKIH0KIAotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBh
biB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlckVsZW1lbnQoY29uc3QgUmVuZGVyRWxl
bWVudCopOwotdm9pZCB0b1JlbmRlckVsZW1lbnQoY29uc3QgUmVuZGVyRWxlbWVudCYpOwotCiBp
bmxpbmUgYm9vbCBSZW5kZXJPYmplY3Q6OmlzUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIGlzUmVuZGVyRWxlbWVudCgpICYmIHRvUmVuZGVyRWxlbWVudCh0aGlz
KS0+aXNSZW5kZXJMYXllck1vZGVsT2JqZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oCmluZGV4IGUwNjA1NDA1ZTU2MTQ4NWE2NGMzYzcz
M2JjMjgyYWNhODk1MWMxNWQuLjNhZWY5MjU1ZjNiYTEyOGU1Y2FlZmExYzc1ZWQ1Y2FkMzBjOWQy
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVj
dC5oCkBAIC0xMTMsMTQgKzExMyw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fdW5hdmFpbGFi
aWxpdHlEZXNjcmlwdGlvbjsKIH07CiAKLWlubGluZSBSZW5kZXJFbWJlZGRlZE9iamVjdCogdG9S
ZW5kZXJFbWJlZGRlZE9iamVjdChSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNFbWJlZGRlZE9i
amVjdCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyRW1iZWRkZWRPYmplY3QqPihv
YmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNz
YXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyRW1iZWRkZWRPYmplY3QoY29uc3QgUmVuZGVyRW1iZWRk
ZWRPYmplY3QqKTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJFbWJlZGRlZE9iamVj
dCwgaXNFbWJlZGRlZE9iamVjdCgpKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmgKaW5kZXggNDM5ZGE3Yjg0MWI3NGQx
MDNhYWRmMDNkNDUyNDRjYzVmMDQzZjE1MS4uYjJhMzAzM2RmZjg2NGZhNjdjZDk1ZGZiYmI4Y2Iy
MGYyMDVhNjU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZp
ZWxkc2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmgK
QEAgLTU1LDE0ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50TWFzayhQ
YWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURFOwogfTsKIAotaW5saW5lIFJl
bmRlckZpZWxkc2V0KiB0b1JlbmRlckZpZWxkc2V0KFJlbmRlck9iamVjdCogb2JqZWN0KQotewot
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5p
c0ZpZWxkc2V0KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJGaWVsZHNldCo+KG9i
amVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3Nh
cnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJGaWVsZHNldChjb25zdCBSZW5kZXJGaWVsZHNldCopOwor
UkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRlckZpZWxkc2V0LCBpc0ZpZWxkc2V0KCkpCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaAppbmRleCBmNmIyNzQ0YzczMTAwMDUxZDZmZjc3
ODdiNmJiYmQ5N2IyODYyYjRmLi40MDQ3NTUzNGE4NGQ1MGM2N2U1NTljN2UwNWVlYWJhODg5MzM2
OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wuaApAQCAtNjUsMjAgKzY1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2FuUmVj
ZWl2ZURyb3BwZWRGaWxlczsKIH07CiAKLWlubGluZSBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbCog
dG9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbChSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNGaWxl
VXBsb2FkQ29udHJvbCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wqPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2wqIHRvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2woY29uc3QgUmVuZGVyT2JqZWN0KiBvYmpl
Y3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBv
YmplY3QtPmlzRmlsZVVwbG9hZENvbnRyb2woKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNv
bnN0IFJlbmRlckZpbGVVcGxvYWRDb250cm9sKj4ob2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxs
IGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlckZp
bGVVcGxvYWRDb250cm9sKGNvbnN0IFJlbmRlckZpbGVVcGxvYWRDb250cm9sKik7CitSRU5ERVJf
T0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wsIGlzRmlsZVVwbG9hZENv
bnRyb2woKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCmluZGV4IDgxYWMxMmU2MzFmZDFlYWNmZmJlOWY3
ZGFiODY5YTYwNjRmZjA5ZjYuLjZiMjRmMjgxZjFmZDM0NjE4ZTJlNDNhZWUwNzBlNDQyYmJlYzk3
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCkBA
IC0xNzcsMjAgKzE3Nyw3IEBAIHByaXZhdGU6CiAgICAgaW50IG1fbnVtYmVyT2ZJbkZsb3dDaGls
ZHJlbk9uRmlyc3RMaW5lOwogfTsKIAotaW5saW5lIFJlbmRlckZsZXhpYmxlQm94KiB0b1JlbmRl
ckZsZXhpYmxlQm94KFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NF
Q1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc0ZsZXhpYmxlQm94KCkpOwot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJGbGV4aWJsZUJveCo+KG9iamVjdCk7Ci19Ci0K
LWlubGluZSBjb25zdCBSZW5kZXJGbGV4aWJsZUJveCogdG9SZW5kZXJGbGV4aWJsZUJveChjb25z
dCBSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBM
SUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNGbGV4aWJsZUJveCgpKTsKLSAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyRmxleGlibGVCb3gqPihvYmplY3QpOwotfQotCi0vLyBU
aGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRv
UmVuZGVyRmxleGlibGVCb3goY29uc3QgUmVuZGVyRmxleGlibGVCb3gqKTsKK1JFTkRFUl9PQkpF
Q1RfVFlQRV9DQVNUUyhSZW5kZXJGbGV4aWJsZUJveCwgaXNGbGV4aWJsZUJveCgpKQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxv
d1RocmVhZC5oCmluZGV4IDcxZDZlZWNlNjllMzFmMzM4YTkxY2I1OTQzODI0ZWNjYjcyNjUxN2Uu
Ljk2MDc5Zjg1MTRkODk5MGY2ZGVkMjg3MDVjZmUyMTlmOTYxNjI3OWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaApAQCAtMzU1LDMzICszNTUsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2xheWVyc1RvUmVnaW9uTWFwcGluZ3NEaXJ0eSA6IDE7CiB9
OwogCi1pbmxpbmUgUmVuZGVyRmxvd1RocmVhZCYgdG9SZW5kZXJGbG93VGhyZWFkKFJlbmRlck9i
amVjdCYgb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9i
amVjdC5pc1JlbmRlckZsb3dUaHJlYWQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRl
ckZsb3dUaHJlYWQmPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyRmxvd1RocmVh
ZCYgdG9SZW5kZXJGbG93VGhyZWFkKGNvbnN0IFJlbmRlck9iamVjdCYgb2JqZWN0KQotewotICAg
IEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9iamVjdC5pc1JlbmRlckZsb3dUaHJl
YWQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlckZsb3dUaHJlYWQmPihv
YmplY3QpOwotfQotCi1pbmxpbmUgUmVuZGVyRmxvd1RocmVhZCogdG9SZW5kZXJGbG93VGhyZWFk
KFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlckZsb3dUaHJlYWQoKSk7Ci0gICAgcmV0
dXJuIHN0YXRpY19jYXN0PFJlbmRlckZsb3dUaHJlYWQqPihvYmplY3QpOwotfQotCi1pbmxpbmUg
Y29uc3QgUmVuZGVyRmxvd1RocmVhZCogdG9SZW5kZXJGbG93VGhyZWFkKGNvbnN0IFJlbmRlck9i
amVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFv
YmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlckZsb3dUaHJlYWQoKSk7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGNvbnN0IFJlbmRlckZsb3dUaHJlYWQqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdp
bGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVy
Rmxvd1RocmVhZChjb25zdCBSZW5kZXJGbG93VGhyZWFkKik7Ci12b2lkIHRvUmVuZGVyRmxvd1Ro
cmVhZChjb25zdCBSZW5kZXJGbG93VGhyZWFkJik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMo
UmVuZGVyRmxvd1RocmVhZCwgaXNSZW5kZXJGbG93VGhyZWFkKCkpCiAKIGNsYXNzIEN1cnJlbnRS
ZW5kZXJGbG93VGhyZWFkTWFpbnRhaW5lciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ3Vy
cmVudFJlbmRlckZsb3dUaHJlYWRNYWludGFpbmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZyYW1lLmgKaW5kZXggMWE3MDQ5MmRhMmJiZDNmZTdiNDQ4ZDJiNzA4YmVhOGUyZmFhODVi
Mi4uZjk5OTcyNmUzNjhkOWU2NjM2M2E2MDljN2ZkM2VkMTc3MmFmMjlhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lLmgKQEAgLTQ3LDE0ICs0Nyw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIHZpZXdDbGVhcmVkKCkgT1ZFUlJJREU7CiB9OwogCi1pbmxpbmUgUmVu
ZGVyRnJhbWUqIHRvUmVuZGVyRnJhbWUoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzRnJhbWUo
KSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlckZyYW1lKj4ob2JqZWN0KTsKLX0KLQot
Ly8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9p
ZCB0b1JlbmRlckZyYW1lKGNvbnN0IFJlbmRlckZyYW1lKik7CitSRU5ERVJfT0JKRUNUX1RZUEVf
Q0FTVFMoUmVuZGVyRnJhbWUsIGlzRnJhbWUoKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5oCmluZGV4IGU2ZWQzYzM4
ZDBmOTA5ZTM3NjgxZjhiM2ZmZTFjMzJhNjU1MmVjMTkuLmY2YjQ0YWI4MjAwZWRjNDk0NDIwMjA5
MWIxOTAzMjk0YmQwZDIxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGcmFtZVNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFt
ZVNldC5oCkBAIC0xMjYsMTUgKzEyNiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQ2hpbGRS
ZXNpemluZzsKIH07CiAKLQotaW5saW5lIFJlbmRlckZyYW1lU2V0KiB0b1JlbmRlckZyYW1lU2V0
KFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc0ZyYW1lU2V0KCkpOwotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxSZW5kZXJGcmFtZVNldCo+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRj
aCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJGcmFtZVNl
dChjb25zdCBSZW5kZXJGcmFtZVNldCopOworUkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRl
ckZyYW1lU2V0LCBpc0ZyYW1lU2V0KCkpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmgKaW5kZXggN2RiYTc4MDA0
NDI1OGE2OWExMDg5ZWU0YTU2ZmUxMzY4MDg0NzU4Mi4uZGVlNTY4OTkxNTE2NzJlZDMzOTljMjM1
YzY4Y2I2OGI4MTRlMmNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZ1bGxTY3JlZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVs
bFNjcmVlbi5oCkBAIC01MywxNSArNTMsOSBAQCBwcml2YXRlOgogcHJvdGVjdGVkOgogICAgIFJl
bmRlckJsb2NrKiBtX3BsYWNlaG9sZGVyOwogfTsKLSAgICAKLWlubGluZSBSZW5kZXJGdWxsU2Ny
ZWVuKiB0b1JlbmRlckZ1bGxTY3JlZW4oUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ob2JqZWN0LT5pc1JlbmRlckZ1bGxTY3JlZW4o
KSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlckZ1bGxTY3JlZW4qPihvYmplY3QpOwot
fQotICAgIAotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBj
YXN0Ogotdm9pZCB0b1JlbmRlckZ1bGxTY3JlZW4oUmVuZGVyRnVsbFNjcmVlbiopOworCitSRU5E
RVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyRnVsbFNjcmVlbiwgaXNSZW5kZXJGdWxsU2NyZWVu
KCkpCisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySFRNTENhbnZhcy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxD
YW52YXMuaAppbmRleCBlYjdiN2ZjZjEyOWJjMTMxZWJlNDZhNmU2NmYzY2JkZDVhZWNmMGRmLi5k
Y2U2ZTkyYjA0NjFjYjE5YTE2NzI1YWFiZmE0NGYwMWM0ZmU0YTFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmgKQEAgLTQ5LDE0ICs0OSw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIGludHJpbnNpY1NpemVDaGFuZ2VkKCkgT1ZFUlJJREUgeyBj
YW52YXNTaXplQ2hhbmdlZCgpOyB9CiB9OwogCi1pbmxpbmUgUmVuZGVySFRNTENhbnZhcyogdG9S
ZW5kZXJIVE1MQ2FudmFzKFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRI
X1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc0NhbnZhcygpKTsKLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVySFRNTENhbnZhcyo+KG9iamVjdCk7Ci19Ci0KLS8v
IFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQg
dG9SZW5kZXJIVE1MQ2FudmFzKGNvbnN0IFJlbmRlckhUTUxDYW52YXMqKTsKK1JFTkRFUl9PQkpF
Q1RfVFlQRV9DQVNUUyhSZW5kZXJIVE1MQ2FudmFzLCBpc0NhbnZhcygpKQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuaAppbmRl
eCA3Yjc4NmFhMTQzYmU5ZjE2MGY4MzFiMWM0ZDgxMzc0MzY5MDZjNGZhLi4wODM3ZjhmNjlhZDIw
M2MyZGMzMmUwZjU3ZDZiNjIwY2RiZTNkMzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySUZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklGcmFtZS5oCkBAIC02MywyMSArNjMsNyBAQCBwcml2YXRlOgogICAgIFJlbmRlclZpZXcq
IGNvbnRlbnRSb290UmVuZGVyZXIoKSBjb25zdDsKIH07CiAKLWlubGluZSBSZW5kZXJJRnJhbWUq
IHRvUmVuZGVySUZyYW1lKFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRI
X1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlcklGcmFtZSgp
KTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVySUZyYW1lKj4ob2JqZWN0KTsKLX0KLQot
aW5saW5lIGNvbnN0IFJlbmRlcklGcmFtZSogdG9SZW5kZXJJRnJhbWUoY29uc3QgUmVuZGVyT2Jq
ZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9i
amVjdCB8fCBvYmplY3QtPmlzUmVuZGVySUZyYW1lKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxjb25zdCBSZW5kZXJJRnJhbWUqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2gg
YW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVySUZyYW1lKGNv
bnN0IFJlbmRlcklGcmFtZSopOwotCitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVySUZy
YW1lLCBpc1JlbmRlcklGcmFtZSgpKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKaW5kZXggMTM4MGFjYjRjYjI2ZDhlNjk5MDll
MDMzZmRlNzg2OGM3MGQyNWFkZi4uZjUyN2JlNTRjZGNlOTcxYjJiYTFjN2M4YmFkZWQxMDU3YzQ3
ZjEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKQEAgLTExOCwzMyAr
MTE4LDcgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUmVuZGVySW1hZ2VTY2FsZU9ic2Vy
dmVyOwogfTsKIAotaW5saW5lIFJlbmRlckltYWdlJiB0b1JlbmRlckltYWdlKFJlbmRlck9iamVj
dCYgb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9iamVj
dC5pc1JlbmRlckltYWdlKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJJbWFnZSY+
KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJJbWFnZSYgdG9SZW5kZXJJbWFnZShj
b25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTihvYmplY3QuaXNSZW5kZXJJbWFnZSgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8Y29uc3QgUmVuZGVySW1hZ2UmPihvYmplY3QpOwotfQotCi1pbmxpbmUgUmVuZGVySW1hZ2Uq
IHRvUmVuZGVySW1hZ2UoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVySW1hZ2UoKSk7
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlckltYWdlKj4ob2JqZWN0KTsKLX0KLQotaW5s
aW5lIGNvbnN0IFJlbmRlckltYWdlKiB0b1JlbmRlckltYWdlKGNvbnN0IFJlbmRlck9iamVjdCog
b2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3Qg
fHwgb2JqZWN0LT5pc1JlbmRlckltYWdlKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25z
dCBSZW5kZXJJbWFnZSo+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUg
ZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJJbWFnZShjb25zdCBSZW5k
ZXJJbWFnZSopOwotdm9pZCB0b1JlbmRlckltYWdlKGNvbnN0IFJlbmRlckltYWdlJik7CitSRU5E
RVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVySW1hZ2UsIGlzUmVuZGVySW1hZ2UoKSkKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW5saW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5l
LmgKaW5kZXggZTM0YzMyYWU4MWY1NzcwYTc3MzExMzQ5MTQ4NGNiZTkwNTBiYjQ2Mi4uMGU3OGVk
NWQyYjYyYmNlYzFiZDUxNDIyMTllYjZlMDk2NmI4MDdjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbmxpbmUuaApAQCAtMTc2LDMzICsxNzYsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9hbHdheXNDcmVhdGVMaW5lQm94ZXMgOiAxOwogfTsKIAotaW5saW5lIFJlbmRlcklubGlu
ZSYgdG9SZW5kZXJJbmxpbmUoUmVuZGVyT2JqZWN0JiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJ
VEhfU0VDVVJJVFlfSU1QTElDQVRJT04ob2JqZWN0LmlzUmVuZGVySW5saW5lKCkpOwotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxSZW5kZXJJbmxpbmUmPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29u
c3QgUmVuZGVySW5saW5lJiB0b1JlbmRlcklubGluZShjb25zdCBSZW5kZXJPYmplY3QmIG9iamVj
dCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3QuaXNSZW5k
ZXJJbmxpbmUoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlcklubGluZSY+
KG9iamVjdCk7Ci19Ci0KLWlubGluZSBSZW5kZXJJbmxpbmUqIHRvUmVuZGVySW5saW5lKFJlbmRl
ck9iamVjdCogb2JqZWN0KQoteyAKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElP
Tighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJJbmxpbmUoKSk7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFJlbmRlcklubGluZSo+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJJ
bmxpbmUqIHRvUmVuZGVySW5saW5lKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQoteyAKLSAg
ICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNS
ZW5kZXJJbmxpbmUoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlcklubGlu
ZSo+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5u
ZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJJbmxpbmUoY29uc3QgUmVuZGVySW5saW5lKik7
Ci12b2lkIHRvUmVuZGVySW5saW5lKGNvbnN0IFJlbmRlcklubGluZSYpOworUkVOREVSX09CSkVD
VF9UWVBFX0NBU1RTKFJlbmRlcklubGluZSwgaXNSZW5kZXJJbmxpbmUoKSkKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyTW9kZWxPYmplY3QuaAppbmRleCA1ZTRiMzMzODhmMjkwZWUxNTQ0NTUwMWNkYWI0OTMyMzZj
YjE5OWRlLi5hZmY1ODhmZGUzODc3MzcwYjM1MGQxY2QxZjFjYTlhY2U4N2FhZTg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKQEAg
LTY3LDIwICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgc19sYXllcldhc1NlbGZQ
YWludGluZzsKIH07CiAKLWlubGluZSBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiB0b1JlbmRlckxh
eWVyTW9kZWxPYmplY3QoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCo+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiB0
b1JlbmRlckxheWVyTW9kZWxPYmplY3QoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0g
ICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlz
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCo+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRj
aCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJMYXllck1v
ZGVsT2JqZWN0KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqKTsKK1JFTkRFUl9PQkpFQ1Rf
VFlQRV9DQVNUUyhSZW5kZXJMYXllck1vZGVsT2JqZWN0LCBpc1JlbmRlckxheWVyTW9kZWxPYmpl
Y3QoKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGluZUJyZWFrLmgKaW5kZXggOWI1ODkyN2Q1ZWVmYjA4NjA4MWY4MjM1Y2YzZjFi
YTRlN2UxZTgzYS4uMGY4NDQ0ODk2ZDc1OWFiZjg3MDAxOTVjN2NjZmRiMDQxZGMyNzE4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaApAQCAtODksMzIgKzg5
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNXQlI7CiB9OwogCi1pbmxpbmUgUmVuZGVyTGlu
ZUJyZWFrJiB0b1JlbmRlckxpbmVCcmVhayhSZW5kZXJPYmplY3QmIG9iamVjdCkKLXsgCi0gICAg
QVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ob2JqZWN0LmlzTGluZUJyZWFrKCkpOwot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJMaW5lQnJlYWsmPihvYmplY3QpOwotfQotCi1p
bmxpbmUgY29uc3QgUmVuZGVyTGluZUJyZWFrJiB0b1JlbmRlckxpbmVCcmVhayhjb25zdCBSZW5k
ZXJPYmplY3QmIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElP
TihvYmplY3QuaXNMaW5lQnJlYWsoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJl
bmRlckxpbmVCcmVhayY+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBSZW5kZXJMaW5lQnJlYWsqIHRv
UmVuZGVyTGluZUJyZWFrKFJlbmRlck9iamVjdCogb2JqZWN0KQoteyAKLSAgICBBU1NFUlRfV0lU
SF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3QtPmlzTGluZUJyZWFrKCkpOwotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxSZW5kZXJMaW5lQnJlYWsqPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29u
c3QgUmVuZGVyTGluZUJyZWFrKiB0b1JlbmRlckxpbmVCcmVhayhjb25zdCBSZW5kZXJPYmplY3Qq
IG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3Qt
PmlzTGluZUJyZWFrKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJMaW5l
QnJlYWsqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFu
IHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyTGluZUJyZWFrKGNvbnN0IFJlbmRlckxp
bmVCcmVhayYpOworUkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRlckxpbmVCcmVhaywgaXNM
aW5lQnJlYWsoKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RCb3guaAppbmRleCBkYWEwNzc4OTU4MTYwOWQ0NjdhODEwMDA1MjI1
Nzg5ZGE3Y2U0YzE5Li45NWIyOTJjOTU0MTVjOWZlZjA3MWYxZGQxNmMyNWM3ZDUyZGQ1ZDJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKQEAgLTE1NCwxNCArMTU0
LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U2Nyb2xsYmFyPiBtX3ZCYXI7CiB9OwogCi1pbmxp
bmUgUmVuZGVyTGlzdEJveCogdG9SZW5kZXJMaXN0Qm94KFJlbmRlck9iamVjdCogb2JqZWN0KQot
eyAKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVj
dC0+aXNMaXN0Qm94KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJMaXN0Qm94Kj4o
b2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vz
c2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlckxpc3RCb3goY29uc3QgUmVuZGVyTGlzdEJveCopOwor
UkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRlckxpc3RCb3gsIGlzTGlzdEJveCgpKQogCiB9
IC8vIG5hbWVwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEl0ZW0uaAppbmRleCBiMWZmMjlkMjY1NDI2YTI0OTc1ZDMyNTcyN2U4NTk4ZWM1NTE1ZWNiLi4z
NzFkNzhhMWNlZThiZGY0MTMyNmFhNjJhNGE1MDc1YmYyNDI4OGRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaApAQCAtOTIsMTQgKzkyLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fbm90SW5MaXN0IDogMTsKIH07CiAKLWlubGluZSBSZW5kZXJMaXN0SXRlbSog
dG9SZW5kZXJMaXN0SXRlbShSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lU
SF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNMaXN0SXRlbSgpKTsK
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyTGlzdEl0ZW0qPihvYmplY3QpOwotfQotCi0v
LyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lk
IHRvUmVuZGVyTGlzdEl0ZW0oY29uc3QgUmVuZGVyTGlzdEl0ZW0qKTsKK1JFTkRFUl9PQkpFQ1Rf
VFlQRV9DQVNUUyhSZW5kZXJMaXN0SXRlbSwgaXNMaXN0SXRlbSgpKQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZWRpYS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmgKaW5kZXggNGM4
NDdhOWUyOGExY2ViN2VkMGYyY2U4YjE1YWYyM2Y3NGE2NmUyNS4uMjBlMjI5NzM0NTZlMzRiNjYz
ZmMzNGI2NDA1MGMzZmEwYzAzNmNlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lZGlhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
ZGlhLmgKQEAgLTU3LDE0ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlcXVp
cmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbigpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsg
cmV0dXJuIHRydWU7IH0KIH07CiAKLWlubGluZSBSZW5kZXJNZWRpYSogdG9SZW5kZXJNZWRpYShS
ZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNB
VElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNNZWRpYSgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8UmVuZGVyTWVkaWEqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25l
IGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyTWVkaWEoY29uc3QgUmVu
ZGVyTWVkaWEqKTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJNZWRpYSwgaXNNZWRp
YSgpKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lbnVMaXN0LmgKaW5kZXggZDFhMmU0Y2FjNWJhOGE1NTkyODE0MGQ2ZjYwZTE5YmM5
YzE0ODczYS4uNjIzNWI0NjRhMDE4ODk2ZDE4YTY2Yzg0MjdjMTliNzEzMTBjZjNkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKQEAgLTE0OSwxNCArMTQ5LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fcG9wdXBJc1Zpc2libGU7CiB9OwogCi1pbmxpbmUgUmVu
ZGVyTWVudUxpc3QqIHRvUmVuZGVyTWVudUxpc3QoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0g
ICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlz
TWVudUxpc3QoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlck1lbnVMaXN0Kj4ob2Jq
ZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2Fy
eSBjYXN0Lgotdm9pZCB0b1JlbmRlck1lbnVMaXN0KGNvbnN0IFJlbmRlck1lbnVMaXN0Kik7CitS
RU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyTWVudUxpc3QsIGlzTWVudUxpc3QoKSkKIAog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5oCmluZGV4IDM4MDBkZjQzZTI5
YjdlMmEwOTVjZTAwZjEyNWUxMTQ5ZGExOTBmMjAuLmM2NTVhZTc5ODgxZTI5ZjhjZWNhZTVkNmQw
Nzg2MDhkNDRkOTY3NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNZXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5oCkBA
IC00NywxNCArNDcsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0ZvcmNl
ZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9
CiB9OwogCi1pbmxpbmUgUmVuZGVyTWV0ZXIqIHRvUmVuZGVyTWV0ZXIoUmVuZGVyT2JqZWN0KiBv
YmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8
fCBvYmplY3QtPmlzTWV0ZXIoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlck1ldGVy
Kj4ob2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5l
Y2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlck1ldGVyKGNvbnN0IFJlbmRlck1ldGVyKik7CitS
RU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyTWV0ZXIsIGlzTWV0ZXIoKSkKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck11bHRpQ29sdW1uQmxvY2suaAppbmRleCAyODk1YTlkOGM4ZWNlMTQ4NDA1M2NhYzAzMzY4N2Y0
YzU1ZGUyNmFjLi5iMTkwMDAzYzU5NmVjM2NmYjM0MTE1MjNjZWI1NWZjZDc0MGM1NjI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmgK
QEAgLTczLDIwICs3Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2luQmFsYW5jaW5nUGFzczsg
Ly8gU2V0IHdoZW4gcmVsYXlvdXRpbmcgZm9yIGNvbHVtbiBiYWxhbmNpbmcuCiB9OwogCi1pbmxp
bmUgUmVuZGVyTXVsdGlDb2x1bW5CbG9jayogdG9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrKFJlbmRl
ck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9O
KCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlck11bHRpQ29sdW1uQmxvY2soKSk7Ci0gICAgcmV0
dXJuIHN0YXRpY19jYXN0PFJlbmRlck11bHRpQ29sdW1uQmxvY2sqPihvYmplY3QpOwotfQotCi1p
bmxpbmUgY29uc3QgUmVuZGVyTXVsdGlDb2x1bW5CbG9jayogdG9SZW5kZXJNdWx0aUNvbHVtbkJs
b2NrKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VS
SVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlck11bHRpQ29sdW1uQmxv
Y2soKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlck11bHRpQ29sdW1uQmxv
Y2sqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVu
bmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyTXVsdGlDb2x1bW5CbG9jayhjb25zdCBSZW5k
ZXJNdWx0aUNvbHVtbkJsb2NrKik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyTXVs
dGlDb2x1bW5CbG9jaywgaXNSZW5kZXJNdWx0aUNvbHVtbkJsb2NrKCkpCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck11bHRpQ29sdW1uU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlD
b2x1bW5TZXQuaAppbmRleCBjZWFiMzdlZTc5MTRlZWEwMWVkZjA1ZmQ5N2YzYzQxMmM1YWQ1ZTk4
Li5hMGYwMTdkMDc4MjFlY2MxM2Q3NGY1MTQwZWZjY2Y1ZTAwYWViMDVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaApAQCAtMTUyLDIwICsx
NTIsNyBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQgbV9mb3JjZWRCcmVha09mZnNldDsKIH07
CiAKLWlubGluZSBSZW5kZXJNdWx0aUNvbHVtblNldCogdG9SZW5kZXJNdWx0aUNvbHVtblNldChS
ZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNB
VElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJNdWx0aUNvbHVtblNldCgpKTsKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyTXVsdGlDb2x1bW5TZXQqPihvYmplY3QpOwotfQotCi1p
bmxpbmUgY29uc3QgUmVuZGVyTXVsdGlDb2x1bW5TZXQqIHRvUmVuZGVyTXVsdGlDb2x1bW5TZXQo
Y29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlf
SU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyTXVsdGlDb2x1bW5TZXQoKSk7
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlck11bHRpQ29sdW1uU2V0Kj4ob2Jq
ZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2Fy
eSBjYXN0Lgotdm9pZCB0b1JlbmRlck11bHRpQ29sdW1uU2V0KGNvbnN0IFJlbmRlck11bHRpQ29s
dW1uU2V0Kik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyTXVsdGlDb2x1bW5TZXQs
IGlzUmVuZGVyTXVsdGlDb2x1bW5TZXQoKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93RnJhZ21l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5o
CmluZGV4IDM0NTYyMDUxZjY3OTk2MzYxNjgwNGZjZGMyOTQwYWJlOWI2YjdiNmYuLjcwNmI1NmE1
YjJkNzgyOTM4NjQ5OWYwNDI2NGZkNTc4MGQ3ZWJhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5oCkBAIC02MywyMCArNjMsNyBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuICJSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCI7IH0KIH07CiAKLWlubGlu
ZSBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCogdG9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudChSZW5k
ZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElP
Tighb2JqZWN0IHx8IG9iamVjdC0+aXNSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCgpKTsKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQqPihvYmplY3QpOwotfQot
Ci1pbmxpbmUgY29uc3QgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQqIHRvUmVuZGVyTmFtZWRGbG93
RnJhZ21lbnQoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyTmFtZWRGbG93
RnJhZ21lbnQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlck5hbWVkRmxv
d0ZyYWdtZW50Kj4ob2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2lu
ZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50KGNv
bnN0IFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50Kik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMo
UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQsIGlzUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoKSkKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTmFtZWRGbG93VGhyZWFkLmgKaW5kZXggOTNhMDYyOGY1OGIzNmJiMWIyOGI4YTE0ZDA1
NjAxNmNkNGZmMmRiMi4uNDI3ZTg5NzUzZjk3NzUxNTZhYTZmMjk1Y2MyYWJmZTM1NjU1ZDRiOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVh
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQu
aApAQCAtMTM4LDIwICsxMzgsNyBAQCBwcml2YXRlOgogICAgIFRpbWVyPFJlbmRlck5hbWVkRmxv
d1RocmVhZD4gbV9yZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnRUaW1lcjsKIH07CiAKLWlubGluZSBS
ZW5kZXJOYW1lZEZsb3dUaHJlYWQqIHRvUmVuZGVyTmFtZWRGbG93VGhyZWFkKFJlbmRlck9iamVj
dCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmpl
Y3QgfHwgb2JqZWN0LT5pc1JlbmRlck5hbWVkRmxvd1RocmVhZCgpKTsKLSAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8UmVuZGVyTmFtZWRGbG93VGhyZWFkKj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNv
bnN0IFJlbmRlck5hbWVkRmxvd1RocmVhZCogdG9SZW5kZXJOYW1lZEZsb3dUaHJlYWQoY29uc3Qg
UmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElD
QVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyTmFtZWRGbG93VGhyZWFkKCkpOwotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqPihvYmplY3Qp
OwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNh
c3QuCi12b2lkIHRvUmVuZGVyTmFtZWRGbG93VGhyZWFkKGNvbnN0IFJlbmRlck5hbWVkRmxvd1Ro
cmVhZCopOworUkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRlck5hbWVkRmxvd1RocmVhZCwg
aXNSZW5kZXJOYW1lZEZsb3dUaHJlYWQoKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggNjUyNTg5ZTg3MzIwNjU3
NTUzYmFiOWE4YmRjNmZkM2RkZmIxZDFlMi4uYTNiMjEzMTQ4NWE2ZWJmMWRjMGM0OThkZTFkNTEw
ZWE4MzQ1NjY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAt
MTE1OCw2ICsxMTU4LDkgQEAgaW5saW5lIExheW91dFVuaXQgYWRqdXN0TGF5b3V0VW5pdEZvckFi
c29sdXRlWm9vbShMYXlvdXRVbml0IHZhbHVlLCBSZW5kZXJPYmplY3QKIH0KICNlbmRpZgogCisj
ZGVmaW5lIFJFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0
ZSkgXAorICAgIFRZUEVfQ0FTVFNfQkFTRShUb1ZhbHVlVHlwZU5hbWUsIFJlbmRlck9iamVjdCwg
b2JqZWN0LCBvYmplY3QtPnByZWRpY2F0ZSwgb2JqZWN0LnByZWRpY2F0ZSkKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUHJvZ3Jlc3MuaAppbmRleCAzZGY1NDlkYjI2NTExNDczNjBjNmUyNzFmYzZkNzU2ZjFi
OThhZWEzLi5jNDE2YzZmOTA0ZWVjMDRiYzIyYmIzMTdmNzE1MTZmNTQxYWVkNzdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaApAQCAtNjAsMTQgKzYwLDcgQEAg
cHJpdmF0ZToKICAgICBUaW1lcjxSZW5kZXJQcm9ncmVzcz4gbV9hbmltYXRpb25UaW1lcjsKIH07
CiAKLWlubGluZSBSZW5kZXJQcm9ncmVzcyogdG9SZW5kZXJQcm9ncmVzcyhSZW5kZXJPYmplY3Qq
IG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0
IHx8IG9iamVjdC0+aXNQcm9ncmVzcygpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVy
UHJvZ3Jlc3MqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5n
IGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyUHJvZ3Jlc3MoY29uc3QgUmVuZGVy
UHJvZ3Jlc3MqKTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJQcm9ncmVzcywgaXNQ
cm9ncmVzcygpKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclF1b3RlLmgKaW5kZXggZjllNDI4OWJiOTQ3YTM3OWY2MDAyMzQ3NWE3YzEyYjFi
ZTAzYWU5Yy4uNWU0NjY4MWE1MDUzOGUzNmQ4OTUyNjllN2E4M2UyNTNjNmYxMmIwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmgKQEAgLTUzLDE0ICs1Myw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2lzQXR0YWNoZWQ7CiB9OwogCi1pbmxpbmUgUmVuZGVyUXVvdGUqIHRv
UmVuZGVyUXVvdGUoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzUXVvdGUoKSk7Ci0gICAgcmV0
dXJuIHN0YXRpY19jYXN0PFJlbmRlclF1b3RlKj4ob2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxs
IGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlclF1
b3RlKGNvbnN0IFJlbmRlclF1b3RlKik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVy
UXVvdGUsIGlzUXVvdGUoKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKaW5kZXggZGU0MDdiODRmMjZmNzJiNWEwYmQ2NmJj
NDFkZTdjZmQ4NmEyYjdhYi4uZTBmMWRiNmM2YTUwMDJhZGQ4ZTAwNGFlMGU5NjM2ZmVhMDExZDdi
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaApAQCAtMjM1LDMzICsy
MzUsNyBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQgbV9jb21wdXRlZEF1dG9IZWlnaHQ7CiB9
OwogCi1pbmxpbmUgUmVuZGVyUmVnaW9uKiB0b1JlbmRlclJlZ2lvbihSZW5kZXJPYmplY3QqIG9i
amVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8
IG9iamVjdC0+aXNSZW5kZXJSZWdpb24oKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRl
clJlZ2lvbio+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJSZWdpb24qIHRvUmVu
ZGVyUmVnaW9uKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRI
X1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlclJlZ2lvbigp
KTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyUmVnaW9uKj4ob2JqZWN0KTsK
LX0KLQotaW5saW5lIFJlbmRlclJlZ2lvbiYgdG9SZW5kZXJSZWdpb24oUmVuZGVyT2JqZWN0JiBv
YmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ob2JqZWN0Lmlz
UmVuZGVyUmVnaW9uKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJSZWdpb24mPihv
YmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyUmVnaW9uJiB0b1JlbmRlclJlZ2lvbihj
b25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTihvYmplY3QuaXNSZW5kZXJSZWdpb24oKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PGNvbnN0IFJlbmRlclJlZ2lvbiY+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRj
aCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJSZWdpb24o
Y29uc3QgUmVuZGVyUmVnaW9uKik7Ci12b2lkIHRvUmVuZGVyUmVnaW9uKGNvbnN0IFJlbmRlclJl
Z2lvbiYpOworUkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRlclJlZ2lvbiwgaXNSZW5kZXJS
ZWdpb24oKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZXBsYWNlZC5oCmluZGV4IDVhZDQxMzc3Zjc0YWIzOTI4NzE0MmI0ZTZmNWY4
YzJjM2UyYzRjZjAuLjIyZjNlMGNkYmYyZTJiMjIzMmJiNjAwYWFlZjc0OTM0NTFiMGVhN2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCkBAIC04OSwyMCArODks
NyBAQCBwcml2YXRlOgogICAgIG11dGFibGUgTGF5b3V0U2l6ZSBtX2ludHJpbnNpY1NpemU7CiB9
OwogCi1pbmxpbmUgUmVuZGVyUmVwbGFjZWQqIHRvUmVuZGVyUmVwbGFjZWQoUmVuZGVyT2JqZWN0
KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVj
dCB8fCBvYmplY3QtPmlzUmVuZGVyUmVwbGFjZWQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PFJlbmRlclJlcGxhY2VkKj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNvbnN0IFJlbmRlclJlcGxh
Y2VkKiB0b1JlbmRlclJlcGxhY2VkKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAg
IEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1Jl
bmRlclJlcGxhY2VkKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJSZXBs
YWNlZCo+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4g
dW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJSZXBsYWNlZChjb25zdCBSZW5kZXJSZXBs
YWNlZCopOworUkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRlclJlcGxhY2VkLCBpc1JlbmRl
clJlcGxhY2VkKCkpCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJ1YnlSdW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVu
LmgKaW5kZXggYmQ3NDNiYzYyNjg0NDM4YTIwYzhjMmMwZGViMGM1MjdlM2EwZDE1NS4uYmFhMWVl
Y2VlNjg2ZjliNzM4MmQ3ODM5ZWVmMTFkNDc3NGFlZTNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUnVieVJ1bi5oCkBAIC03NywzMiArNzcsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVMZWZ0b3ZlckFub255bW91c0Jsb2NrKFJlbmRlckJsb2NrKikgeyB9
CiB9OwogCi1pbmxpbmUgUmVuZGVyUnVieVJ1biYgdG9SZW5kZXJSdWJ5UnVuKFJlbmRlck9iamVj
dCYgb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9iamVj
dC5pc1J1YnlSdW4oKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclJ1YnlSdW4mPihv
YmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyUnVieVJ1biYgdG9SZW5kZXJSdWJ5UnVu
KGNvbnN0IFJlbmRlck9iamVjdCYgb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKG9iamVjdC5pc1J1YnlSdW4oKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PGNvbnN0IFJlbmRlclJ1YnlSdW4mPihvYmplY3QpOwotfQotCi1pbmxpbmUgUmVuZGVyUnVieVJ1
biogdG9SZW5kZXJSdWJ5UnVuKFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1J1YnlSdW4oKSk7
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclJ1YnlSdW4qPihvYmplY3QpOwotfQotCi1p
bmxpbmUgY29uc3QgUmVuZGVyUnVieVJ1biogdG9SZW5kZXJSdWJ5UnVuKGNvbnN0IFJlbmRlck9i
amVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFv
YmplY3QgfHwgb2JqZWN0LT5pc0JveCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
UmVuZGVyUnVieVJ1bio+KG9iamVjdCk7Ci19Ci0KLXZvaWQgdG9SZW5kZXJSdWJ5UnVuKGNvbnN0
IFJlbmRlclJ1YnlSdW4qKTsKLXZvaWQgdG9SZW5kZXJSdWJ5UnVuKGNvbnN0IFJlbmRlclJ1YnlS
dW4mKTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJSdWJ5UnVuLCBpc1J1YnlSdW4o
KSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNjcm9sbGJhclBhcnQuaAppbmRleCBkMDFlYmY0MTNiNDUxZDM0MWY3NjgwM2Y0
MTgxODBmZGE2ZWU2MDEyLi4xMmUzNjE0NzdiYjg4NzIwZGFhZDIzNWYzYzgwYTc5MDlkOWVmMWE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFy
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJQYXJ0LmgK
QEAgLTczLDIwICs3Myw3IEBAIHByaXZhdGU6CiAgICAgU2Nyb2xsYmFyUGFydCBtX3BhcnQ7CiB9
OwogCi1pbmxpbmUgUmVuZGVyU2Nyb2xsYmFyUGFydCogdG9SZW5kZXJTY3JvbGxiYXJQYXJ0KFJl
bmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FU
SU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlclNjcm9sbGJhclBhcnQoKSk7Ci0gICAgcmV0
dXJuIHN0YXRpY19jYXN0PFJlbmRlclNjcm9sbGJhclBhcnQqPihvYmplY3QpOwotfQotCi1pbmxp
bmUgY29uc3QgUmVuZGVyU2Nyb2xsYmFyUGFydCogdG9SZW5kZXJTY3JvbGxiYXJQYXJ0KGNvbnN0
IFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlclNjcm9sbGJhclBhcnQoKSk7Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclNjcm9sbGJhclBhcnQqPihvYmplY3QpOwot
fQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3Qu
Ci12b2lkIHRvUmVuZGVyU2Nyb2xsYmFyUGFydChjb25zdCBSZW5kZXJTY3JvbGxiYXJQYXJ0Kik7
CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyU2Nyb2xsYmFyUGFydCwgaXNSZW5kZXJT
Y3JvbGxiYXJQYXJ0KCkpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuaAppbmRleCBkNDExNGQzOTU5YWNhOGE4
ZGUyYzFlMGExMjFiMDE1YjVjNTdjZmI5Li43ZmRjOTM4NWI5ZGEzNTQ2ZjA2ZjRlMWJjODZjOTZi
NjAyZjQ3YzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Vh
cmNoRmllbGQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmll
bGQuaApAQCAtOTAsMTQgKzkwLDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX3Jl
Y2VudFNlYXJjaGVzOwogfTsKIAotaW5saW5lIFJlbmRlclNlYXJjaEZpZWxkKiB0b1JlbmRlclNl
YXJjaEZpZWxkKFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VS
SVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1RleHRGaWVsZCgpKTsKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyU2VhcmNoRmllbGQqPihvYmplY3QpOwotfQotCi0vLyBU
aGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRv
UmVuZGVyU2VhcmNoRmllbGQoY29uc3QgUmVuZGVyU2VhcmNoRmllbGQqKTsKK1JFTkRFUl9PQkpF
Q1RfVFlQRV9DQVNUUyhSZW5kZXJTZWFyY2hGaWVsZCwgaXNUZXh0RmllbGQoKSkKIAogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKaW5kZXggMWM0N2MyMjA0ZTRmMzIx
ZjZjNWUwYzk1MDQ0M2Q5MmY3ZWQ3ODg5ZS4uZDY1MjkxMTA4ZDQ1NTlmNzI0NWE4MGNkYTJhNzE4
MjZiYTdmNGRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNs
aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaApAQCAt
NTIsMTQgKzUyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJ
REU7CiB9OwogCi1pbmxpbmUgUmVuZGVyU2xpZGVyKiB0b1JlbmRlclNsaWRlcihSZW5kZXJPYmpl
Y3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2Jq
ZWN0IHx8IG9iamVjdC0+aXNTbGlkZXIoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRl
clNsaWRlcio+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcg
YW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJTbGlkZXIoY29uc3QgUmVuZGVyU2xp
ZGVyKik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyU2xpZGVyLCBpc1NsaWRlcigp
KQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgKaW5kZXggYzBjZjdjYWVkNzNmZWZjYjMz
YmIxMzRmOWIyOGFlYzU3NjI4MjExZC4uODEzOWJhOTgwYzFkMTU1YWQxYTlkY2QyNzc4MmQ0ZmEx
OTEyZmQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBz
aG90dGVkUGx1Z0luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBz
aG90dGVkUGx1Z0luLmgKQEAgLTYzLDE0ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lz
UG90ZW50aWFsTW91c2VBY3RpdmF0aW9uOwogfTsKIAotaW5saW5lIFJlbmRlclNuYXBzaG90dGVk
UGx1Z0luKiB0b1JlbmRlclNuYXBzaG90dGVkUGx1Z0luKFJlbmRlck9iamVjdCogb2JqZWN0KQot
ewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0
LT5pc1NuYXBzaG90dGVkUGx1Z0luKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbio+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlv
bmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbihjb25zdCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbiopOworUkVOREVSX09CSkVDVF9UWVBF
X0NBU1RTKFJlbmRlclNuYXBzaG90dGVkUGx1Z0luLCBpc1NuYXBzaG90dGVkUGx1Z0luKCkpCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGUuaAppbmRleCA2MmE4N2IzYmU1OGE5MjVmMjNkMjA3Y2Y3YTBjYmVjZDM4ZWFkYjM5Li40YjM1
YzFkMjBlZTMwNGE1OTVlZmNlNDEzMjQ4ZWYyMTEwZmI3NzQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGUuaApAQCAtMzUwLDIwICszNTAsNyBAQCBpbmxpbmUgUmVuZGVyVGFi
bGVTZWN0aW9uKiBSZW5kZXJUYWJsZTo6dG9wU2VjdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIG1f
Zm9vdDsKIH0KIAotaW5saW5lIFJlbmRlclRhYmxlKiB0b1JlbmRlclRhYmxlKFJlbmRlck9iamVj
dCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmpl
Y3QgfHwgb2JqZWN0LT5pc1RhYmxlKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJU
YWJsZSo+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJUYWJsZSogdG9SZW5kZXJU
YWJsZShjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNV
UklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNUYWJsZSgpKTsKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyVGFibGUqPihvYmplY3QpOwotfQotCi0vLyBUaGlz
IHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVu
ZGVyVGFibGUoY29uc3QgUmVuZGVyVGFibGUqKTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhS
ZW5kZXJUYWJsZSwgaXNUYWJsZSgpKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNhcHRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNhcHRpb24uaAppbmRleCA2MTQwOTJh
YTM4NThmYmY4ZjdiNjI2NjcxYzM3OWZmOGNkY2E3OWYwLi40ZmIwYjg5MzAzYWI0OTgyNTAwZDUx
YjUzM2NjMDdmZDcxZDQyMjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVDYXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ2FwdGlvbi5oCkBAIC00NCwyMCArNDQsNyBAQCBwcml2YXRlOgogICAgIFJlbmRlclRh
YmxlKiB0YWJsZSgpIGNvbnN0OwogfTsKIAotaW5saW5lIFJlbmRlclRhYmxlQ2FwdGlvbiogdG9S
ZW5kZXJUYWJsZUNhcHRpb24oUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJ
VEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzVGFibGVDYXB0aW9u
KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJUYWJsZUNhcHRpb24qPihvYmplY3Qp
OwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyVGFibGVDYXB0aW9uKiB0b1JlbmRlclRhYmxlQ2Fw
dGlvbihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNV
UklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNUYWJsZUNhcHRpb24oKSk7Ci0g
ICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclRhYmxlQ2FwdGlvbio+KG9iamVjdCk7
Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2Fz
dC4KLXZvaWQgdG9SZW5kZXJUYWJsZUNhcHRpb24oY29uc3QgUmVuZGVyVGFibGVDYXB0aW9uKik7
CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyVGFibGVDYXB0aW9uLCBpc1RhYmxlQ2Fw
dGlvbigpKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZUNlbGwuaAppbmRleCAwN2U3ODNmNjA4YTE3M2I5NTA3MTRiYTIyZjRi
Y2UyMDk2MzczMzZiLi4wMTExNmIyYzUwY2FiOTA2YzM2NzQyNTc3MWQ1MzY3OTA0MzU0MDJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCkBAIC0yOTYsMjAg
KzI5Niw3IEBAIHByaXZhdGU6CiAgICAgaW50IG1faW50cmluc2ljUGFkZGluZ0FmdGVyOwogfTsK
IAotaW5saW5lIFJlbmRlclRhYmxlQ2VsbCogdG9SZW5kZXJUYWJsZUNlbGwoUmVuZGVyT2JqZWN0
KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVj
dCB8fCBvYmplY3QtPmlzVGFibGVDZWxsKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5k
ZXJUYWJsZUNlbGwqPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyVGFibGVDZWxs
KiB0b1JlbmRlclRhYmxlQ2VsbChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNUYWJs
ZUNlbGwoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclRhYmxlQ2VsbCo+
KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNl
c3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJUYWJsZUNlbGwoY29uc3QgUmVuZGVyVGFibGVDZWxs
Kik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyVGFibGVDZWxsLCBpc1RhYmxlQ2Vs
bCgpKQogCiBpbmxpbmUgUmVuZGVyVGFibGVDZWxsKiBSZW5kZXJUYWJsZUNlbGw6Om5leHRDZWxs
KCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZUNvbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmgKaW5k
ZXggYjM2NzJmNmY0YWJjYjc5NGI0ZTYyYjc0ZjQyMzkyMWRmMjVhNDZhZS4uNjQ0MTMxYmZlMjI0
OTU4MmMwZDM1ODExNWI3NzMxZjRkMzE0Y2YwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlQ29sLmgKQEAgLTk1LDIwICs5NSw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWdu
ZWQgbV9zcGFuOwogfTsKIAotaW5saW5lIFJlbmRlclRhYmxlQ29sKiB0b1JlbmRlclRhYmxlQ29s
KFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1JlbmRlclRhYmxlQ29sKCkpOwotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxSZW5kZXJUYWJsZUNvbCo+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25z
dCBSZW5kZXJUYWJsZUNvbCogdG9SZW5kZXJUYWJsZUNvbChjb25zdCBSZW5kZXJPYmplY3QqIG9i
amVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8
IG9iamVjdC0+aXNSZW5kZXJUYWJsZUNvbCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29u
c3QgUmVuZGVyVGFibGVDb2wqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55
b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyVGFibGVDb2woY29u
c3QgUmVuZGVyVGFibGVDb2wqKTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJUYWJs
ZUNvbCwgaXNSZW5kZXJUYWJsZUNvbCgpKQogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlUm93LmgKaW5kZXggNTI4NjFmNmU3Y2QwMjIwODU0Y2Y0YWE2MmY5MDQ3ODE5
NzA3ZGU1NC4uMzM4YWFhMjBiZjFmYjliNTMzZmZjMzZlY2M4NDBkMjE2OGYzZjI2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKQEAgLTExOSwyNiArMTE5LDcg
QEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3Jvd0luZGV4IDogMzE7CiB9OwogCi1pbmxpbmUg
UmVuZGVyVGFibGVSb3cmIHRvUmVuZGVyVGFibGVSb3coUmVuZGVyT2JqZWN0JiBvYmplY3QpCi17
Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ob2JqZWN0LmlzVGFibGVSb3co
KSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclRhYmxlUm93Jj4ob2JqZWN0KTsKLX0K
LQotaW5saW5lIFJlbmRlclRhYmxlUm93KiB0b1JlbmRlclRhYmxlUm93KFJlbmRlck9iamVjdCog
b2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3Qg
fHwgb2JqZWN0LT5pc1RhYmxlUm93KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJU
YWJsZVJvdyo+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJUYWJsZVJvdyogdG9S
ZW5kZXJUYWJsZVJvdyhjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNUYWJsZVJvdygp
KTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyVGFibGVSb3cqPihvYmplY3Qp
OwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNh
c3QuCi12b2lkIHRvUmVuZGVyVGFibGVSb3coY29uc3QgUmVuZGVyVGFibGVSb3cqKTsKK1JFTkRF
Ul9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJUYWJsZVJvdywgaXNUYWJsZVJvdygpKQogCiBpbmxp
bmUgUmVuZGVyVGFibGVSb3cqIFJlbmRlclRhYmxlU2VjdGlvbjo6Zmlyc3RSb3coKSBjb25zdAog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oCmluZGV4
IDg4N2E0YThkYWMzNTYzMjRkOWM0MTE3ZGZkYmZhNTJmNTkzMWE3ZmQuLjE0N2M1NTA1MmRhNWMz
YTIyODVjYmU3OTg5MGU1MTkwNmQ4ZmExMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGVTZWN0aW9uLmgKQEAgLTMwOSwyMCArMzA5LDcgQEAgcHJpdmF0ZToKICAg
ICBIYXNoTWFwPHBhaXI8Y29uc3QgUmVuZGVyVGFibGVDZWxsKiwgaW50PiwgQ29sbGFwc2VkQm9y
ZGVyVmFsdWUgPiBtX2NlbGxzQ29sbGFwc2VkQm9yZGVyczsKIH07CiAKLWlubGluZSBSZW5kZXJU
YWJsZVNlY3Rpb24qIHRvUmVuZGVyVGFibGVTZWN0aW9uKFJlbmRlck9iamVjdCogb2JqZWN0KQot
ewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0
LT5pc1RhYmxlU2VjdGlvbigpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyVGFibGVT
ZWN0aW9uKj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNvbnN0IFJlbmRlclRhYmxlU2VjdGlvbiog
dG9SZW5kZXJUYWJsZVNlY3Rpb24oY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAg
QVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzVGFi
bGVTZWN0aW9uKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJUYWJsZVNl
Y3Rpb24qPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFu
IHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyVGFibGVTZWN0aW9uKGNvbnN0IFJlbmRl
clRhYmxlU2VjdGlvbiopOworUkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRlclRhYmxlU2Vj
dGlvbiwgaXNUYWJsZVNlY3Rpb24oKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAppbmRleCA3MzEwNmNjNmNkMTJlMmZmYjVlYWVh
ODFhYzljOTBkNjBjNjU1MzMwLi4wMzI4ODdiZjAwYWYyYmJkNzU5MDIxNmY5MTFhN2UwNjZlYTk4
ZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKQEAgLTIxMiwzMyArMjEy
LDcgQEAgcHJpdmF0ZToKICAgICBSZW5kZXJUZXh0TGluZUJveGVzIG1fbGluZUJveGVzOwogfTsK
IAotaW5saW5lIFJlbmRlclRleHQmIHRvUmVuZGVyVGV4dChSZW5kZXJPYmplY3QmIG9iamVjdCkK
LXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3QuaXNUZXh0KCkp
OwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJUZXh0Jj4ob2JqZWN0KTsKLX0KLQotaW5s
aW5lIGNvbnN0IFJlbmRlclRleHQmIHRvUmVuZGVyVGV4dChjb25zdCBSZW5kZXJPYmplY3QmIG9i
amVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3QuaXNU
ZXh0KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJUZXh0Jj4ob2JqZWN0
KTsKLX0KLQotaW5saW5lIFJlbmRlclRleHQqIHRvUmVuZGVyVGV4dChSZW5kZXJPYmplY3QqIG9i
amVjdCkKLXsgCi0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8
fCBvYmplY3QtPmlzVGV4dCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyVGV4dCo+
KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJUZXh0KiB0b1JlbmRlclRleHQoY29u
c3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17IAotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1RleHQoKSk7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGNvbnN0IFJlbmRlclRleHQqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0
Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyVGV4dChj
b25zdCBSZW5kZXJUZXh0Kik7Ci12b2lkIHRvUmVuZGVyVGV4dChjb25zdCBSZW5kZXJUZXh0Jik7
CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyVGV4dCwgaXNUZXh0KCkpCiAKIGlubGlu
ZSBSZW5kZXJTdHlsZSogUmVuZGVyVGV4dDo6c3R5bGUoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAppbmRleCA2YzA3ZTBkNmRjYjdlN2Iw
MjU4MDVmZmRlNTMyZDU4YWQ0ODU0OTAzLi4yZTQwMjAyNWYwY2I2Y2U3MDZhM2Y2NGI4MzliNTMw
M2YyZjcwNmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2wuaApAQCAtODQsMjAgKzg0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWly
ZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0aW9uKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
dHJ1ZTsgfQogfTsKIAotaW5saW5lIFJlbmRlclRleHRDb250cm9sKiB0b1JlbmRlclRleHRDb250
cm9sKFJlbmRlck9iamVjdCogb2JqZWN0KQoteyAKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNUZXh0Q29udHJvbCgpKTsKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8UmVuZGVyVGV4dENvbnRyb2wqPihvYmplY3QpOwotfQotCi1pbmxpbmUg
Y29uc3QgUmVuZGVyVGV4dENvbnRyb2wqIHRvUmVuZGVyVGV4dENvbnRyb2woY29uc3QgUmVuZGVy
T2JqZWN0KiBvYmplY3QpCi17IAotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9O
KCFvYmplY3QgfHwgb2JqZWN0LT5pc1RleHRDb250cm9sKCkpOwotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxjb25zdCBSZW5kZXJUZXh0Q29udHJvbCo+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2ls
bCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJU
ZXh0Q29udHJvbChjb25zdCBSZW5kZXJUZXh0Q29udHJvbCopOworUkVOREVSX09CSkVDVF9UWVBF
X0NBU1RTKFJlbmRlclRleHRDb250cm9sLCBpc1RleHRDb250cm9sKCkpCiAKIC8vIFJlbmRlcmVy
IGZvciBvdXIgaW5uZXIgY29udGFpbmVyLCBmb3IgPHNlYXJjaD4gYW5kIG90aGVycy4KIC8vIFdl
IGNhbid0IHVzZSBSZW5kZXJGbGV4aWJsZUJveCBkaXJlY3RseSwgYmVjYXVzZSBmbGV4Ym94ZXMg
aGF2ZSBhIGRpZmZlcmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sTXVsdGlMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaAppbmRleCAxNmNkMmNmYWU2Y2M1NTljMGE3Y2NkNGZj
MmU1NzFjNzcyMDA0NWQ4Li4yMTViYTAxMzc4N2Y0MzgwZDk5YjY4MDQwMmM4Y2Y3NWY0MTUxN2Vi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xN
dWx0aUxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2xNdWx0aUxpbmUuaApAQCAtNTIsMTQgKzUyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJl
bmRlck9iamVjdCogbGF5b3V0U3BlY2lhbEV4Y2x1ZGVkQ2hpbGQoYm9vbCByZWxheW91dENoaWxk
cmVuKTsKIH07CiAKLWlubGluZSBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZSogdG9SZW5kZXJU
ZXh0Q29udHJvbE11bHRpTGluZShSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsgCi0gICAgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzVGV4dEFyZWEo
KSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lKj4o
b2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vz
c2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lKGNvbnN0IFJlbmRl
clRleHRDb250cm9sTXVsdGlMaW5lKik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVy
VGV4dENvbnRyb2xNdWx0aUxpbmUsIGlzVGV4dEFyZWEoKSkKIAogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5k
ZXggNjA5NjRjOWVhNTNjMjgyNGE2OWUxYjM2Y2M5MjBkN2QwOTZlNmE1Yi4uZGFhODJjMjEzNGI0
N2UzNjNkMWE3MmM5OTA0ODM1ZWQ4ZWNjODI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtOTgsMTQgKzk4
LDcgQEAgaW5saW5lIEhUTUxFbGVtZW50KiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6Omlu
bmVyQmxvY2tFbGVtZW50KCkgY29uc3QKICAgICByZXR1cm4gaW5wdXRFbGVtZW50KCkuaW5uZXJC
bG9ja0VsZW1lbnQoKTsKIH0KIAotaW5saW5lIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSog
dG9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0g
ICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlz
VGV4dEZpZWxkKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmUqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5n
IGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
KGNvbnN0IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSopOworUkVOREVSX09CSkVDVF9UWVBF
X0NBU1RTKFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSwgaXNUZXh0RmllbGQoKSkKIAogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC0xMjEsMTQgKzExNCw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGlzVGV4dENvbnRyb2xJbm5lckJsb2NrKCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAotaW5saW5lIFJlbmRlclRleHRDb250cm9sSW5u
ZXJCbG9jayogdG9SZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2soUmVuZGVyT2JqZWN0KiBvYmpl
Y3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBv
YmplY3QtPmlzVGV4dENvbnRyb2xJbm5lckJsb2NrKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2sqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdp
bGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVy
VGV4dENvbnRyb2xJbm5lckJsb2NrKGNvbnN0IFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jayop
OworUkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jaywg
aXNUZXh0Q29udHJvbElubmVyQmxvY2soKSkKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyV2lkZ2V0LmgKaW5kZXggYmY5YmNjYmFmMWVkNTA2M2UzNTA1YmYwZTI1ODI2ZTZlMjQx
OWZkZi4uOGY4NzU5ZmRkYzMzYmExZjkyY2Y0OTI2ZGIwZWEyYjE4ZmM2ODU0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaApAQCAtMTEzLDIwICsxMTMsNyBAQCBwcml2
YXRlOgogICAgIEludFJlY3QgbV9jbGlwUmVjdDsgLy8gVGhlIHJlY3RhbmdsZSBuZWVkcyB0byBy
ZW1haW4gY29ycmVjdCBhZnRlciBzY3JvbGxpbmcsIHNvIGl0IGlzIHN0b3JlZCBpbiBjb250ZW50
IHZpZXcgY29vcmRpbmF0ZXMsIGFuZCBub3QgY2xpcHBlZCB0byB3aW5kb3cuCiB9OwogCi1pbmxp
bmUgUmVuZGVyV2lkZ2V0KiB0b1JlbmRlcldpZGdldChSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsK
LSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+
aXNXaWRnZXQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlcldpZGdldCo+KG9iamVj
dCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJXaWRnZXQqIHRvUmVuZGVyV2lkZ2V0KGNvbnN0
IFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1dpZGdldCgpKTsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Y29uc3QgUmVuZGVyV2lkZ2V0Kj4ob2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNh
dGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlcldpZGdl
dChjb25zdCBSZW5kZXJXaWRnZXQqKTsKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJX
aWRnZXQsIGlzV2lkZ2V0KCkpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oCmluZGV4
IDE3Mjc5M2ZkODljYTgxZjZlOWI5MDcyODEzMjQwMTM5NjEyYjM0ZDIuLmIwN2RjMzhmYzQzNTY5
NDNlODc3Y2I4MTEzYTcwMTE4NTFjZWM3ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmgKQEAgLTg1LDIwICs4NSw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2lnbm9yZUluQWNjZXNzaWJpbGl0eVRyZWU7CiB9OwogCi1pbmxp
bmUgUmVuZGVyTWF0aE1MQmxvY2sqIHRvUmVuZGVyTWF0aE1MQmxvY2soUmVuZGVyT2JqZWN0KiBv
YmplY3QpCi17IAotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3Qg
fHwgb2JqZWN0LT5pc1JlbmRlck1hdGhNTEJsb2NrKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxSZW5kZXJNYXRoTUxCbG9jayo+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJN
YXRoTUxCbG9jayogdG9SZW5kZXJNYXRoTUxCbG9jayhjb25zdCBSZW5kZXJPYmplY3QqIG9iamVj
dCkKLXsgCi0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBv
YmplY3QtPmlzUmVuZGVyTWF0aE1MQmxvY2soKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNv
bnN0IFJlbmRlck1hdGhNTEJsb2NrKj4ob2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNo
IGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlck1hdGhNTEJs
b2NrKGNvbnN0IFJlbmRlck1hdGhNTEJsb2NrKik7CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMo
UmVuZGVyTWF0aE1MQmxvY2ssIGlzUmVuZGVyTWF0aE1MQmxvY2soKSkKIAogY2xhc3MgUmVuZGVy
TWF0aE1MVGFibGUgRklOQUwgOiBwdWJsaWMgUmVuZGVyVGFibGUgewogcHVibGljOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmgKaW5kZXgg
MWNjN2ZiN2FlNmZlYzVkMDkxOTNlODlhNDI1YzdiMWRkYTcwZjAxZS4uYmFmYTE1YWQwYTEwYWE3
ODgzNWM4MWVkYzFlOTI3YTE3OGQwNTI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5oCkBAIC04MSwyMSArODEsOCBAQCBwcml2YXRl
OgogICAgIEZsb2F0UmVjdCBtX3JlcGFpbnRCb3VuZGluZ0JveDsKICAgICBib29sIG1fbmVlZHNC
b3VuZGFyaWVzVXBkYXRlIDogMTsKIH07Ci0gIAotaW5saW5lIFJlbmRlclNWR0NvbnRhaW5lciog
dG9SZW5kZXJTVkdDb250YWluZXIoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzU1ZHQ29udGFp
bmVyKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJTVkdDb250YWluZXIqPihvYmpl
Y3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyU1ZHQ29udGFpbmVyKiB0b1JlbmRlclNWR0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNTVkdDb250YWluZXIoKSk7
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclNWR0NvbnRhaW5lcio+KG9iamVj
dCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3Nhcnkg
Y2FzdC4KLXZvaWQgdG9SZW5kZXJTVkdDb250YWluZXIoY29uc3QgUmVuZGVyU1ZHQ29udGFpbmVy
Kik7CisKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJTVkdDb250YWluZXIsIGlzU1ZH
Q29udGFpbmVyKCkpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdHcmFkaWVudFN0b3AuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmgKaW5kZXggNjUy
OWI5ZTc1MWU3MDJjZGJmZTI3NWI2M2U4OGMxN2Q3OWQzNGE4Ni4uZTIwZjMxN2JlMGRlMmM1YzU3
ODliMjZiMGI3OGViMGM1YTI5ZWY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdHcmFkaWVudFN0b3AuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0dyYWRpZW50U3RvcC5oCkBAIC01OSwxMSArNTksNyBAQCBwcml2
YXRlOgogICAgIFNWR0dyYWRpZW50RWxlbWVudCogZ3JhZGllbnRFbGVtZW50KCkgY29uc3Q7CiB9
OwogCi1pbmxpbmUgY29uc3QgUmVuZGVyU1ZHR3JhZGllbnRTdG9wKiB0b1JlbmRlclNWR0dyYWRp
ZW50U3RvcChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNTVkdHcmFkaWVudFN0b3Ao
KSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclNWR0dyYWRpZW50U3RvcCo+
KG9iamVjdCk7Ci19CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyU1ZHR3JhZGllbnRT
dG9wLCBpc1NWR0dyYWRpZW50U3RvcCgpKQogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuaAppbmRleCAzMTRmYTc0N2QwOTQ5YTMyMzFjMzIwNTI3
YWNlZTcxMGFmMTA3MTBkLi40NDM4OWI0Y2MwMjY0YTdlYjRlOWRjZWVhNDg5ZGEzNWMwNzU5MDE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oCkBA
IC05MywyMCArOTMsNyBAQCBwcml2YXRlOgogICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gbV9idWZm
ZXJlZEZvcmVncm91bmQ7CiB9OwogCi1pbmxpbmUgUmVuZGVyU1ZHSW1hZ2UqIHRvUmVuZGVyU1ZH
SW1hZ2UoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlf
SU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzU1ZHSW1hZ2UoKSk7Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PFJlbmRlclNWR0ltYWdlKj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNvbnN0
IFJlbmRlclNWR0ltYWdlKiB0b1JlbmRlclNWR0ltYWdlKGNvbnN0IFJlbmRlck9iamVjdCogb2Jq
ZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwg
b2JqZWN0LT5pc1NWR0ltYWdlKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5k
ZXJTVkdJbWFnZSo+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9p
bmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJTVkdJbWFnZShjb25zdCBSZW5k
ZXJTVkdJbWFnZSopOworUkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRlclNWR0ltYWdlLCBp
c1NWR0ltYWdlKCkpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuaAppbmRleCAxYTBiNWY3
NjM1ZjQyN2QwOGQ0YTNjNGRlOWYzNWQyZGEzODg2YTE1Li5hODJlN2ZjZjA1NzQ3ZTcyZGEwZjc1
NDQyNzQ5NmYwZDRjNDk4YTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR0lubGluZVRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR0lubGluZVRleHQuaApAQCAtNjksMzIgKzY5LDcgQEAgcHJpdmF0ZToKICAg
ICBTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyBtX2xheW91dEF0dHJpYnV0ZXM7CiB9OwogCi1pbmxp
bmUgUmVuZGVyU1ZHSW5saW5lVGV4dCYgdG9SZW5kZXJTVkdJbmxpbmVUZXh0KFJlbmRlck9iamVj
dCYgb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9iamVj
dC5pc1NWR0lubGluZVRleHQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclNWR0lu
bGluZVRleHQmPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyU1ZHSW5saW5lVGV4
dCYgdG9SZW5kZXJTVkdJbmxpbmVUZXh0KGNvbnN0IFJlbmRlck9iamVjdCYgb2JqZWN0KQotewot
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9iamVjdC5pc1NWR0lubGluZVRl
eHQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclNWR0lubGluZVRleHQm
PihvYmplY3QpOwotfQotCi1pbmxpbmUgUmVuZGVyU1ZHSW5saW5lVGV4dCogdG9SZW5kZXJTVkdJ
bmxpbmVUZXh0KFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VS
SVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1NWR0lubGluZVRleHQoKSk7Ci0g
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclNWR0lubGluZVRleHQqPihvYmplY3QpOwotfQot
Ci1pbmxpbmUgY29uc3QgUmVuZGVyU1ZHSW5saW5lVGV4dCogdG9SZW5kZXJTVkdJbmxpbmVUZXh0
KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1NWR0lubGluZVRleHQoKSk7Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclNWR0lubGluZVRleHQqPihvYmplY3QpOwot
fQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3Qu
Ci12b2lkIHRvUmVuZGVyU1ZHSW5saW5lVGV4dChjb25zdCBSZW5kZXJTVkdJbmxpbmVUZXh0Kik7
CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyU1ZHSW5saW5lVGV4dCwgaXNTVkdJbmxp
bmVUZXh0KCkpCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdQYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1BhdGguaAppbmRleCAwZWVhMmE5NDBkNGI4ZjNkZjRhOWQwMjAwMzVkYzA4ZDc5YTM2ZDBlLi5i
OTc0NzVkYTU5MWI5ODYzMGNjZjJjZGFkM2E2MjNkNGJmNDU5NzUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguaApAQCAtNTQsMTEgKzU0LDcgQEAgcHJp
dmF0ZToKICAgICBWZWN0b3I8RmxvYXRQb2ludD4gbV96ZXJvTGVuZ3RoTGluZWNhcExvY2F0aW9u
czsKIH07CiAKLWlubGluZSBSZW5kZXJTVkdQYXRoKiB0b1JlbmRlclNWR1BhdGgoUmVuZGVyT2Jq
ZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9i
amVjdCB8fCBvYmplY3QtPmlzU1ZHUGF0aCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVu
ZGVyU1ZHUGF0aCo+KG9iamVjdCk7Ci19CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVy
U1ZHUGF0aCwgaXNTVkdQYXRoKCkpCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5oCmluZGV4IDYxNzk3ZTg2MDZl
NTk1NWVkZTQxMTYzMjg5MDY2Y2MwMjg4Zjg1YzEuLmIyMWE3ZTFlYWFmZTYyYTM5MTgyZTQyZWFh
ZjUyNzQwNzliOGMyOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmgKQEAgLTEwMCwxMSArMTAwLDcgQEAgcHJpdmF0
ZToKICAgICBIYXNoTWFwPFJlbmRlck9iamVjdCosIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJEYXRh
Pj4gbV9maWx0ZXI7CiB9OwogCi1pbmxpbmUgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIqIHRvUmVu
ZGVyU1ZHRmlsdGVyKFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NF
Q1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1NWR1Jlc291cmNlRmlsdGVy
KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcio+KG9i
amVjdCk7Ci19CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyU1ZHUmVzb3VyY2VGaWx0
ZXIsIGlzU1ZHUmVzb3VyY2VGaWx0ZXIoKSkKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmlt
aXRpdmUuY3BwCmluZGV4IDdkZDZkZjU1YzZiMmRmZGFmY2MzZmRiZjk0ZTdiOGMyMmYzZmIyOGIu
LmE3MTFiZDk3ZGE4MGY0Yjg4Y2RhNDVmNDA4ZTRlOWE1YmE5NWU0ZmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRp
dmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VGaWx0ZXJQcmltaXRpdmUuY3BwCkBAIC02MywxMiArNjMsMTIgQEAgdm9pZCBSZW5kZXJTVkdS
ZXNvdXJjZUZpbHRlclByaW1pdGl2ZTo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRp
ZmYsIGNvbnMKICAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSogbmV3U3R5bGUgPSB0aGlzLT5zdHls
ZSgpLT5zdmdTdHlsZSgpOwogICAgIGlmIChmaWx0ZXJQcmltaXRpdmVFbGVtZW50KCkuaGFzVGFn
TmFtZShTVkdOYW1lczo6ZmVGbG9vZFRhZykpIHsKICAgICAgICAgaWYgKG5ld1N0eWxlLT5mbG9v
ZENvbG9yKCkgIT0gb2xkU3R5bGUtPnN2Z1N0eWxlKCktPmZsb29kQ29sb3IoKSkKLSAgICAgICAg
ICAgIHRvUmVuZGVyU1ZHRmlsdGVyKGZpbHRlciktPnByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQo
dGhpcywgU1ZHTmFtZXM6OmZsb29kX2NvbG9yQXR0cik7CisgICAgICAgICAgICB0b1JlbmRlclNW
R1Jlc291cmNlRmlsdGVyKGZpbHRlciktPnByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQodGhpcywg
U1ZHTmFtZXM6OmZsb29kX2NvbG9yQXR0cik7CiAgICAgICAgIGlmIChuZXdTdHlsZS0+Zmxvb2RP
cGFjaXR5KCkgIT0gb2xkU3R5bGUtPnN2Z1N0eWxlKCktPmZsb29kT3BhY2l0eSgpKQotICAgICAg
ICAgICAgdG9SZW5kZXJTVkdGaWx0ZXIoZmlsdGVyKS0+cHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdl
ZCh0aGlzLCBTVkdOYW1lczo6Zmxvb2Rfb3BhY2l0eUF0dHIpOworICAgICAgICAgICAgdG9SZW5k
ZXJTVkdSZXNvdXJjZUZpbHRlcihmaWx0ZXIpLT5wcmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKHRo
aXMsIFNWR05hbWVzOjpmbG9vZF9vcGFjaXR5QXR0cik7CiAgICAgfSBlbHNlIGlmIChmaWx0ZXJQ
cmltaXRpdmVFbGVtZW50KCkuaGFzVGFnTmFtZShTVkdOYW1lczo6ZmVEaWZmdXNlTGlnaHRpbmdU
YWcpIHx8IGZpbHRlclByaW1pdGl2ZUVsZW1lbnQoKS5oYXNUYWdOYW1lKFNWR05hbWVzOjpmZVNw
ZWN1bGFyTGlnaHRpbmdUYWcpKSB7CiAgICAgICAgIGlmIChuZXdTdHlsZS0+bGlnaHRpbmdDb2xv
cigpICE9IG9sZFN0eWxlLT5zdmdTdHlsZSgpLT5saWdodGluZ0NvbG9yKCkpCi0gICAgICAgICAg
ICB0b1JlbmRlclNWR0ZpbHRlcihmaWx0ZXIpLT5wcmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKHRo
aXMsIFNWR05hbWVzOjpsaWdodGluZ19jb2xvckF0dHIpOworICAgICAgICAgICAgdG9SZW5kZXJT
VkdSZXNvdXJjZUZpbHRlcihmaWx0ZXIpLT5wcmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKHRoaXMs
IFNWR05hbWVzOjpsaWdodGluZ19jb2xvckF0dHIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAppbmRleCBmNTBkMDk0OWM3ZmIxYmUx
NDQ3Zjk1YTZlM2NkMTE5MjE1Njc2MjI1Li40MDQ2MjM0NWU5Y2U5YjhmNTAyOGRmYTgyOTdlM2Rm
MDk0NzIwZTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuaApAQCAtMTIyLDIwICsxMjIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNTVkdTaGFk
b3cgOiAxOwogfTsKIAotaW5saW5lIFJlbmRlclNWR1Jvb3QqIHRvUmVuZGVyU1ZHUm9vdChSZW5k
ZXJPYmplY3QqIG9iamVjdCkKLXsgCi0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04oIW9iamVjdCB8fCBvYmplY3QtPmlzU1ZHUm9vdCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8UmVuZGVyU1ZHUm9vdCo+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJTVkdS
b290KiB0b1JlbmRlclNWR1Jvb3QoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17IAotICAg
IEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1NW
R1Jvb3QoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclNWR1Jvb3QqPihv
YmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNz
YXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyU1ZHUm9vdChjb25zdCBSZW5kZXJTVkdSb290Kik7CitS
RU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyU1ZHUm9vdCwgaXNTVkdSb290KCkpCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdTaGFwZS5oCmluZGV4IDAzNjlmYTFiYzNlMzQ4NmI5NTZlMTU3ZGZmOGEyNzQzMjQw
MWVjOGIuLjU0ZWMwYWRmYWEyMTZjODM5Zjc1ZjcyNzM4NzZkZjI4ZjhjOTc1NDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmgKQEAgLTE1MywyMCAr
MTUzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUgOiAxOwog
fTsKIAotaW5saW5lIFJlbmRlclNWR1NoYXBlKiB0b1JlbmRlclNWR1NoYXBlKFJlbmRlck9iamVj
dCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmpl
Y3QgfHwgb2JqZWN0LT5pc1NWR1NoYXBlKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5k
ZXJTVkdTaGFwZSo+KG9iamVjdCk7Ci19Ci0KLWlubGluZSBjb25zdCBSZW5kZXJTVkdTaGFwZSog
dG9SZW5kZXJTVkdTaGFwZShjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNTVkdTaGFw
ZSgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyU1ZHU2hhcGUqPihvYmpl
Y3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5
IGNhc3QuCi12b2lkIHRvUmVuZGVyU1ZHU2hhcGUoY29uc3QgUmVuZGVyU1ZHU2hhcGUqKTsKK1JF
TkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJTVkdTaGFwZSwgaXNTVkdTaGFwZSgpKQogCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKaW5kZXgg
NjVjMmEyYTM4NzAzNWE2NjY2ODExMmYzOTc3YTIwM2Y0NWY5ZTM5NS4uZGQ3ODQwZjYxZDM1ZTZh
N2FjYjJmYWJlNjAwZjEyYTFmYWRkYjdmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdUZXh0LmgKQEAgLTEwNiwzMyArMTA2LDcgQEAgcHJpdmF0ZToKICAgICBW
ZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqPiBtX2xheW91dEF0dHJpYnV0ZXM7CiB9Owog
Ci1pbmxpbmUgUmVuZGVyU1ZHVGV4dCYgdG9SZW5kZXJTVkdUZXh0KFJlbmRlck9iamVjdCYgb2Jq
ZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9iamVjdC5pc1NW
R1RleHQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclNWR1RleHQmPihvYmplY3Qp
OwotfQotCi1pbmxpbmUgY29uc3QgUmVuZGVyU1ZHVGV4dCYgdG9SZW5kZXJTVkdUZXh0KGNvbnN0
IFJlbmRlck9iamVjdCYgb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKG9iamVjdC5pc1NWR1RleHQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0
IFJlbmRlclNWR1RleHQmPihvYmplY3QpOwotfQotCi1pbmxpbmUgUmVuZGVyU1ZHVGV4dCogdG9S
ZW5kZXJTVkdUZXh0KFJlbmRlck9iamVjdCogb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NF
Q1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc1NWR1RleHQoKSk7Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclNWR1RleHQqPihvYmplY3QpOwotfQotCi1pbmxpbmUg
Y29uc3QgUmVuZGVyU1ZHVGV4dCogdG9SZW5kZXJTVkdUZXh0KGNvbnN0IFJlbmRlck9iamVjdCog
b2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3Qg
fHwgb2JqZWN0LT5pc1NWR1RleHQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJl
bmRlclNWR1RleHQqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRv
aW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyU1ZHVGV4dChjb25zdCBSZW5k
ZXJTVkdUZXh0Jik7Ci12b2lkIHRvUmVuZGVyU1ZHVGV4dChjb25zdCBSZW5kZXJTVkdUZXh0Kik7
CitSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyU1ZHVGV4dCwgaXNTVkdUZXh0KCkpCiAK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdU
ZXh0UGF0aC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0UGF0
aC5oCmluZGV4IDJkOTg0NjMzNzZhNDY1ZTZjZTFlOWIwNmQ1ZjEzYTk1MTZkMWY0ZTIuLmM4MDIx
ZTE4Yzc5ZmY1NWQ1YjA4MWVjMDM1NjFiMmZmZTgxZTQzMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dFBhdGguaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHRQYXRoLmgKQEAgLTQ2LDE0ICs0Niw3IEBA
IHByaXZhdGU6CiAgICAgUGF0aCBtX2xheW91dFBhdGg7CiB9OwogCi1pbmxpbmUgUmVuZGVyU1ZH
VGV4dFBhdGgqIHRvUmVuZGVyU1ZHVGV4dFBhdGgoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17IAot
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5p
c1NWR1RleHRQYXRoKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJTVkdUZXh0UGF0
aCo+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5u
ZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJTVkdUZXh0UGF0aChjb25zdCBSZW5kZXJTVkdU
ZXh0UGF0aCopOworUkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRlclNWR1RleHRQYXRoLCBp
c1NWR1RleHRQYXRoKCkpCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oCmluZGV4IGZhM2Q5NGQ4ZGJk
YzdkYjQ2MWQyYTJiMjI2MjY0Zjg4ODMxMzQwMDIuLjdiNjRiNGNmZDFjYTMxNzc5YzVjYzVmMzhh
MGYzNWMzZWQxMzAyMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmgKQEAgLTY3LDIxICs2Nyw4IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2lzTGF5b3V0U2l6ZUNoYW5nZWQgOiAxOwogICAgIGJvb2wgbV9u
ZWVkc1RyYW5zZm9ybVVwZGF0ZSA6IDE7CiB9OwotICAKLWlubGluZSBSZW5kZXJTVkdWaWV3cG9y
dENvbnRhaW5lciogdG9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lcihSZW5kZXJPYmplY3QqIG9i
amVjdCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8
IG9iamVjdC0+aXNTVkdWaWV3cG9ydENvbnRhaW5lcigpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8UmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIqPihvYmplY3QpOwotfQotCi1pbmxpbmUgY29u
c3QgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIqIHRvUmVuZGVyU1ZHVmlld3BvcnRDb250YWlu
ZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJ
VFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzU1ZHVmlld3BvcnRDb250YWluZXIo
KSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclNWR1ZpZXdwb3J0Q29udGFp
bmVyKj4ob2JqZWN0KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1
bm5lY2Vzc2FyeSBjYXN0Lgotdm9pZCB0b1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyKGNvbnN0
IFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyKik7CisKK1JFTkRFUl9PQkpFQ1RfVFlQRV9DQVNU
UyhSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciwgaXNTVkdWaWV3cG9ydENvbnRhaW5lcigpKQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvU1ZHSW5saW5lRmxvd0JveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR0lubGluZUZsb3dCb3guY3BwCmluZGV4IGM4MmZjZDQ2N2ZlZGU2ZDQwOTU2N2Ew
N2I5OTA5NWFjZTJmMDExM2YuLjhkNzEwMWJkMzM0ZTFhYmI1M2ZhMDYyZDcwNzYzZGMwOTU2MjZh
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lRmxv
d0JveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVGbG93
Qm94LmNwcApAQCAtNTgsNyArNTgsNyBAQCB2b2lkIFNWR0lubGluZUZsb3dCb3g6OnBhaW50KFBh
aW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYsIExheW91dFVuaQogICAgIGlm
IChyZW5kZXJpbmdDb250ZXh0LmlzUmVuZGVyaW5nUHJlcGFyZWQoKSkgewogICAgICAgICBmb3Ig
KElubGluZUJveCogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5u
ZXh0T25MaW5lKCkpIHsKICAgICAgICAgICAgIGlmIChjaGlsZC0+aXNTVkdJbmxpbmVUZXh0Qm94
KCkpCi0gICAgICAgICAgICAgICAgY29tcHV0ZVRleHRNYXRjaE1hcmtlclJlY3RGb3JSZW5kZXJl
cigmdG9SZW5kZXJTVkdJbmxpbmVUZXh0KHRvU1ZHSW5saW5lVGV4dEJveChjaGlsZCktPnJlbmRl
cmVyKCkpKTsKKyAgICAgICAgICAgICAgICBjb21wdXRlVGV4dE1hdGNoTWFya2VyUmVjdEZvclJl
bmRlcmVyKCYodG9TVkdJbmxpbmVUZXh0Qm94KGNoaWxkKS0+cmVuZGVyZXIoKSkpOwogCiAgICAg
ICAgICAgICBjaGlsZC0+cGFpbnQocGFpbnRJbmZvLCBMYXlvdXRQb2ludCgpLCAwLCAwKTsKICAg
ICAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>