<?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>120561</bug_id>
          
          <creation_ts>2013-08-31 06:54:01 -0700</creation_ts>
          <short_desc>Rename ChildIterator -&gt; ElementChildIterator, DescendantIterator -&gt; ElementDescendantIterator</short_desc>
          <delta_ts>2013-08-31 07:11:17 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>923283</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-31 06:54:01 -0700</bug_when>
    <thetext>More consistency, related files close by. These are always used with auto so longer names don&apos;t really matter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923284</commentid>
    <comment_count>1</comment_count>
      <attachid>210191</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-31 07:01:52 -0700</bug_when>
    <thetext>Created attachment 210191
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923285</commentid>
    <comment_count>2</comment_count>
      <attachid>210191</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-31 07:03:42 -0700</bug_when>
    <thetext>Comment on attachment 210191
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923289</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-31 07:11:17 -0700</bug_when>
    <thetext>https://trac.webkit.org/r154928</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210191</attachid>
            <date>2013-08-31 07:01:52 -0700</date>
            <delta_ts>2013-08-31 07:03:42 -0700</delta_ts>
            <desc>patch</desc>
            <filename>rename-iterators.patch</filename>
            <type>text/plain</type>
            <size>70300</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NDkyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY2IEBACisyMDEzLTA4LTMxICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgQ2hpbGRJdGVyYXRv
ciAtPiBFbGVtZW50Q2hpbGRJdGVyYXRvciwgRGVzY2VuZGFudEl0ZXJhdG9yIC0+IEVsZW1lbnRE
ZXNjZW5kYW50SXRlcmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyMDU2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5ldyBuYW1lcyBhcmUgbW9yZSBkZXNjcmlwdGl2ZSBhbmQgY29uc2lzdGVudC4g
VGhleSBhbHNvIHB1dCByZWxhdGVkIGl0ZXJhdG9yIGZpbGVzIGNsb3NlIGJ5IGluIGZpbGUgbGlz
dHMuCisgICAgICAgIFRoZSB0eXBlcyBhcmUgYWx3YXlzIHVzZWQgd2l0aCBhdXRvIHNvIGxvbmdl
ciBuYW1lcyBkb24ndCBtYWtlIHRoZW0gYW55IGNsdW1zaWVyIHRvIHVzZS4KKworICAgICAgICBG
b3Igc2ltcGxpY2l0eSBpbmNsdWRlZCBhbGwgRWxlbWVudCBpdGVyYXRvciB0eXBlcyBmcm9tIEVs
ZW1lbnRJdGVyYXRvci5oIHNvIGl0IGlzIHRoZSBvbmx5IGZpbGUgdGhhdCBoYXMKKyAgICAgICAg
dG8gYmUgaW5jbHVkZWQgYnkgdGhlIGNsaWVudHMuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHA6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHA6CisgICAg
ICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcDoKKyAgICAgICAgKiBkb20vQ2hpbGRJdGVy
YXRvci5oOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9EZXNjZW5kYW50SXRlcmF0b3IuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9FbGVtZW50
Q2hpbGRJdGVyYXRvci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRJdGVy
YXRvci5oLgorICAgICAgICAoV2ViQ29yZTo6OjpFbGVtZW50Q2hpbGRJdGVyYXRvcik6CisgICAg
ICAgIChXZWJDb3JlOjo6Om9wZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6RWxlbWVudENo
aWxkQ29uc3RJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjo6OkVsZW1lbnRDaGlsZEl0ZXJh
dG9yQWRhcHRlcik6CisgICAgICAgIChXZWJDb3JlOjo6OmJlZ2luKToKKyAgICAgICAgKFdlYkNv
cmU6Ojo6ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6RWxlbWVudENoaWxkQ29uc3RJdGVyYXRv
ckFkYXB0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6ZWxlbWVudENoaWxkcmVuKToKKyAgICAgICAg
KFdlYkNvcmU6OmNoaWxkcmVuT2ZUeXBlKToKKyAgICAgICAgKiBkb20vRWxlbWVudERlc2NlbmRh
bnRJdGVyYXRvci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vRGVzY2VuZGFudEl0
ZXJhdG9yLmguCisgICAgICAgIChXZWJDb3JlOjo6OkVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6OjpvcGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjo6OkVs
ZW1lbnREZXNjZW5kYW50Q29uc3RJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjo6OkVsZW1l
bnREZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6YmVnaW4p
OgorICAgICAgICAoV2ViQ29yZTo6OjplbmQpOgorICAgICAgICAoV2ViQ29yZTo6OjpFbGVtZW50
RGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFwdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmVsZW1l
bnREZXNjZW5kYW50cyk6CisgICAgICAgIChXZWJDb3JlOjpkZXNjZW5kYW50c09mVHlwZSk6Cisg
ICAgICAgICogZG9tL0VsZW1lbnRJdGVyYXRvci5oOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoK
KyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5
bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6CisgICAgICAgICog
aHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MRmllbGRTZXRF
bGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwOgorICAgICAg
ICAqIGh0bWwvSFRNTE1hcEVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAg
ICogbG9hZGVyL1BsYWNlaG9sZGVyRG9jdW1lbnQuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9G
aWx0ZXJFZmZlY3RSZW5kZXJlci5jcHA6CisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlVHJl
ZS5jcHA6CisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAqIHN2Zy9TVkdT
VkdFbGVtZW50LmNwcDoKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9uL1NNSUxUaW1lQ29udGFpbmVy
LmNwcDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgorCiAyMDEzLTA4LTMx
ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgY29tbW9u
IGJhc2UgZm9yIGVsZW1lbnQgaXRlcmF0b3JzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0JKHJldmlzaW9uIDE1NDkyNikKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTI3NzUsNyArMjc3NSw2IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuaCBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL0NoZWNrZWRSYWRpb0J1dHRvbnMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
Q2hlY2tlZFJhZGlvQnV0dG9ucy5oIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRJdGVyYXRv
ci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNjb3BlLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2RvbS9DaGlsZE5vZGVMaXN0LmNwcCBcCkBAIC0yODIwLDcgKzI4MTksNiBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9EZWNvZGVkRGF0YURvY3VtZW50
UGFyc2VyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBv
cnRDaGFubmVsLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNz
YWdlUG9ydENoYW5uZWwuaCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL0Rlc2NlbmRhbnRJdGVyYXRv
ci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ2xpZW50LmggXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuaCBcCkBAIC0yODcxLDggKzI4NjksMTAgQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRE9NVGltZVN0YW1wLmgg
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRDaGlsZEl0ZXJhdG9yLmgg
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50RGF0YS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50RGF0YS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudERlc2NlbmRh
bnRJdGVyYXRvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEl0ZXJhdG9yLmggXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkocmV2
aXNpb24gMTU0OTI2KQorKysgU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkod29ya2luZyBjb3B5
KQpAQCAtMTU3NCw3ICsxNTc0LDYgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL0NEQVRBU2VjdGlv
bi5oIFwKICAgICBkb20vQ2hhcmFjdGVyRGF0YS5oIFwKICAgICBkb20vQ2hlY2tlZFJhZGlvQnV0
dG9ucy5oIFwKLSAgICBkb20vQ2hpbGRJdGVyYXRvci5oIFwKICAgICBkb20vQ2hpbGROb2RlTGlz
dC5oIFwKICAgICBkb20vQ2xhc3NOb2RlTGlzdC5oIFwKICAgICBkb20vQ2xpZW50UmVjdC5oIFwK
QEAgLTE1ODgsNyArMTU4Nyw2IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9Db250ZXh0RmVhdHVy
ZXMuaCBcCiAgICAgZG9tL0N1c3RvbUV2ZW50LmggXAogICAgIGRvbS9kZWZhdWx0L1BsYXRmb3Jt
TWVzc2FnZVBvcnRDaGFubmVsLmggXAotICAgIGRvbS9EZXNjZW5kYW50SXRlcmF0b3IuaCBcCiAg
ICAgZG9tL0RldmljZU1vdGlvbkNsaWVudC5oIFwKICAgICBkb20vRGV2aWNlTW90aW9uQ29udHJv
bGxlci5oIFwKICAgICBkb20vRGV2aWNlTW90aW9uRGF0YS5oIFwKQEAgLTE2MTIsNyArMTYxMCw5
IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9ET01UaW1lU3RhbXAuaCBcCiAgICAgZG9tL0RhdGFz
ZXRET01TdHJpbmdNYXAuaCBcCiAgICAgZG9tL0VsZW1lbnQuaCBcCisgICAgZG9tL0VsZW1lbnRD
aGlsZEl0ZXJhdG9yLmggXAogICAgIGRvbS9FbGVtZW50RGF0YS5oIFwKKyAgICBkb20vRWxlbWVu
dERlc2NlbmRhbnRJdGVyYXRvci5oIFwKICAgICBkb20vRWxlbWVudEl0ZXJhdG9yLmggXAogICAg
IGRvbS9FbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggXAogICAgIGRvbS9FbGVtZW50VHJhdmVy
c2FsLmggXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qCShyZXZpc2lvbiAxNTQ5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yMDIxNyw3ICsyMDIxNyw2
IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cQ0RBVEFTZWN0aW9uLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cQ2hhcmFjdGVyRGF0YS5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXENoZWNrZWRSYWRpb0J1dHRvbnMuaCIgLz4KLSAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxDaGlsZEl0ZXJhdG9yLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxkb21cQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXENoaWxkTm9kZUxpc3QuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGRvbVxDbGFzc05vZGVMaXN0LmgiIC8+CkBAIC0yMDIzNyw3ICsyMDIz
Niw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cRGF0YVRyYW5zZmVySXRlbS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXERhdGFUcmFuc2Zlckl0ZW1MaXN0
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cRGVjb2RlZERhdGFEb2N1bWVu
dFBhcnNlci5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXERlc2NlbmRhbnRJ
dGVyYXRvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXERldmljZU1vdGlv
bkNsaWVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXERldmljZU1vdGlv
bkNvbnRyb2xsZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxEZXZpY2VN
b3Rpb25EYXRhLmgiIC8+CkBAIC0yMDI2NCw3ICsyMDI2Miw5IEBACiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxkb21cRE9NU3RyaW5nTWFwLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxkb21cRE9NVGltZVN0YW1wLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxk
b21cRWxlbWVudC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXEVsZW1lbnRD
aGlsZEl0ZXJhdG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cRWxlbWVu
dERhdGEuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxFbGVtZW50RGVzY2Vu
ZGFudEl0ZXJhdG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cRWxlbWVu
dEl0ZXJhdG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cRWxlbWVudEl0
ZXJhdG9yQXNzZXJ0aW9ucy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXEVs
ZW1lbnRUcmF2ZXJzYWwuaCIgLz4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE1NDkyNikKKysrIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpA
QCAtNTQ5MSw4ICs1NDkxLDggQEAKIAkJRTQ1MzkwMUUwRUFGQ0FDQTAwMzY5NUM4IC8qIFBhc3Rl
Ym9hcmRJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNDUzOTAxOTBFQUZDQUNBMDAzNjk1QzggLyogUGFzdGVib2FyZElPUy5tbSAqLzsgfTsKIAkJ
RTQ1MzkwNDYwRUFGRDYzNzAwMzY5NUM4IC8qIFNoYXJlZFRpbWVySU9TLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ1MzkwMzUwRUFGRDYzNzAwMzY5
NUM4IC8qIFNoYXJlZFRpbWVySU9TLm1tICovOyB9OwogCQlFNDYyQTRBMTExM0U3MUJFMDA0QTQy
MjAgLyogSW50UG9pbnRIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDYyQTRBMDExM0U3MUJFMDA0QTQyMjAgLyogSW50UG9pbnRIYXNoLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRTQ2QTJCMUMx
N0NBNjVCOTAwMERCQ0Q4IC8qIERlc2NlbmRhbnRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ2QTJCMUIxN0NBNjVCOTAwMERCQ0Q4IC8q
IERlc2NlbmRhbnRJdGVyYXRvci5oICovOyB9OwotCQlFNDZBMkIxRTE3Q0E3NkIxMDAwREJDRDgg
LyogQ2hpbGRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTQ2QTJCMUQxN0NBNzZCMTAwMERCQ0Q4IC8qIENoaWxkSXRlcmF0b3IuaCAqLzsg
fTsKKwkJRTQ2QTJCMUMxN0NBNjVCOTAwMERCQ0Q4IC8qIEVsZW1lbnREZXNjZW5kYW50SXRlcmF0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NkEy
QjFCMTdDQTY1QjkwMDBEQkNEOCAvKiBFbGVtZW50RGVzY2VuZGFudEl0ZXJhdG9yLmggKi87IH07
CisJCUU0NkEyQjFFMTdDQTc2QjEwMDBEQkNEOCAvKiBFbGVtZW50Q2hpbGRJdGVyYXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ2QTJCMUQxN0NB
NzZCMTAwMERCQ0Q4IC8qIEVsZW1lbnRDaGlsZEl0ZXJhdG9yLmggKi87IH07CiAJCUU0NzEyN0NB
MTYzNDM4QTEwMEVENkY1QSAvKiBTdHlsZUludmFsaWRhdGlvbkFuYWx5c2lzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0N0E5N0NFMTYzMDU5RkMw
MDVEQ0Q5OSAvKiBTdHlsZUludmFsaWRhdGlvbkFuYWx5c2lzLmNwcCAqLzsgfTsKIAkJRTQ3MTI3
Q0IxNjM0MzhBRTAwRUQ2RjVBIC8qIFN0eWxlSW52YWxpZGF0aW9uQW5hbHlzaXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0N0E5N0NGMTYzMDU5RkMw
MDVEQ0Q5OSAvKiBTdHlsZUludmFsaWRhdGlvbkFuYWx5c2lzLmggKi87IH07CiAJCUU0Nzc4QjdG
MTE1QTU4MUEwMEI1RDM3MiAvKiBKU0N1c3RvbUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0Nzc4QjdEMTE1QTU4MUEwMEI1RDM3MiAvKiBK
U0N1c3RvbUV2ZW50LmNwcCAqLzsgfTsKQEAgLTEyMjY1LDggKzEyMjY1LDggQEAKIAkJRTQ1Mzkw
MTkwRUFGQ0FDQTAwMzY5NUM4IC8qIFBhc3RlYm9hcmRJT1MubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBQYXN0ZWJvYXJkSU9TLm1tOyBwYXRoID0gaW9zL1Bhc3Rl
Ym9hcmRJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0NTM5MDM1MEVBRkQ2
MzcwMDM2OTVDOCAvKiBTaGFyZWRUaW1lcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgbmFtZSA9IFNoYXJlZFRpbWVySU9TLm1tOyBwYXRoID0gaW9zL1NoYXJlZFRpbWVy
SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDYyQTRBMDExM0U3MUJFMDA0
QTQyMjAgLyogSW50UG9pbnRIYXNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEludFBvaW50SGFzaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFNDZBMkIxQjE3
Q0E2NUI5MDAwREJDRDggLyogRGVzY2VuZGFudEl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERlc2NlbmRhbnRJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlFNDZBMkIxRDE3Q0E3NkIxMDAwREJDRDggLyogQ2hpbGRJdGVyYXRvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGlsZEl0ZXJhdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0NkEyQjFCMTdDQTY1QjkwMDBEQkNEOCAvKiBFbGVtZW50
RGVzY2VuZGFudEl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVs
ZW1lbnREZXNjZW5kYW50SXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTQ2QTJCMUQxN0NBNzZCMTAwMERCQ0Q4IC8qIEVsZW1lbnRDaGlsZEl0ZXJhdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVsZW1lbnRDaGlsZEl0ZXJhdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0Nzc4QjdEMTE1QTU4MUEwMEI1RDM3MiAvKiBKU0N1
c3RvbUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3Vz
dG9tRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDc3OEI3RTExNUE1
ODFBMDBCNUQzNzIgLyogSlNDdXN0b21FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0N1c3RvbUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0
N0E5N0NFMTYzMDU5RkMwMDVEQ0Q5OSAvKiBTdHlsZUludmFsaWRhdGlvbkFuYWx5c2lzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlSW52YWxpZGF0aW9uQW5h
bHlzaXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjAxMTMsNyArMjAxMTMs
NiBAQAogCQkJCTkzRUVDMUU2MDlDMjg3NzcwMEM1MTVEMSAvKiBDaGFyYWN0ZXJEYXRhLmlkbCAq
LywKIAkJCQk5M0Y5MjU0MjBGN0VGNUI4MDA3RTM3QzkgLyogQ2hlY2tlZFJhZGlvQnV0dG9ucy5j
cHAgKi8sCiAJCQkJOTNGOTI1NDEwRjdFRjVCODAwN0UzN0M5IC8qIENoZWNrZWRSYWRpb0J1dHRv
bnMuaCAqLywKLQkJCQlFNDZBMkIxRDE3Q0E3NkIxMDAwREJDRDggLyogQ2hpbGRJdGVyYXRvci5o
ICovLAogCQkJCUQ2MTlBMzA1MTQ0RTAwQkUwMDRCQzMwMiAvKiBDaGlsZExpc3RNdXRhdGlvblNj
b3BlLmNwcCAqLywKIAkJCQlENjE5QTMwNjE0NEUwMEJFMDA0QkMzMDIgLyogQ2hpbGRMaXN0TXV0
YXRpb25TY29wZS5oICovLAogCQkJCUE4MTg3MjFBMDk3N0QzQzAwMDU4MjZEOSAvKiBDaGlsZE5v
ZGVMaXN0LmNwcCAqLywKQEAgLTIwMTYxLDcgKzIwMTYwLDYgQEAKIAkJCQk4MUFDNUFFOTEzMTYz
OTJFMDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbUxpc3QuaWRsICovLAogCQkJCUE4QzIyOEEw
MTFENTcyMkUwMEQ1QTdEMyAvKiBEZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmNwcCAqLywKIAkJ
CQlBOEMyMjg5RjExRDU3MjJFMDBENUE3RDMgLyogRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5o
ICovLAotCQkJCUU0NkEyQjFCMTdDQTY1QjkwMDBEQkNEOCAvKiBEZXNjZW5kYW50SXRlcmF0b3Iu
aCAqLywKIAkJCQkzMUZCMUE0RjEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ2xpZW50
LmggKi8sCiAJCQkJMzFGQjFBNTAxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRy
b2xsZXIuY3BwICovLAogCQkJCTMxRkIxQTUxMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rp
b25Db250cm9sbGVyLmggKi8sCkBAIC0yMDIyNSwxMiArMjAyMjMsMTQgQEAKIAkJCQlBOEM0QTdG
NjA5RDU2MzI3MDAwM0FDOEQgLyogRWxlbWVudC5jcHAgKi8sCiAJCQkJQThDNEE3RjUwOUQ1NjMy
NzAwMDNBQzhEIC8qIEVsZW1lbnQuaCAqLywKIAkJCQk5M0VFQzFFQTA5QzI4Nzc3MDBDNTE1RDEg
LyogRWxlbWVudC5pZGwgKi8sCisJCQkJRTQ2QTJCMUQxN0NBNzZCMTAwMERCQ0Q4IC8qIEVsZW1l
bnRDaGlsZEl0ZXJhdG9yLmggKi8sCiAJCQkJQjVCN0ExNkYxN0MxMDgwNjAwRTRBQTBBIC8qIEVs
ZW1lbnREYXRhLmNwcCAqLywKIAkJCQlCNUI3QTE2RTE3QzEwNDgwMDBFNEFBMEEgLyogRWxlbWVu
dERhdGEuaCAqLywKLQkJCQk0RkFCNDg2NDE2NDNBNjZEMDBGNzBDMDcgLyogRWxlbWVudFJhcmVE
YXRhLmNwcCAqLywKLQkJCQk2MzdCN0FERTBFODc2N0I4MDBFMzIxOTQgLyogRWxlbWVudFJhcmVE
YXRhLmggKi8sCisJCQkJRTQ2QTJCMUIxN0NBNjVCOTAwMERCQ0Q4IC8qIEVsZW1lbnREZXNjZW5k
YW50SXRlcmF0b3IuaCAqLywKIAkJCQlFNEFFN0MxNTE3RDFCQjk1MDAwOUZCMzEgLyogRWxlbWVu
dEl0ZXJhdG9yLmggKi8sCiAJCQkJRTQwMUMyNzQxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJ
dGVyYXRvckFzc2VydGlvbnMuaCAqLywKKwkJCQk0RkFCNDg2NDE2NDNBNjZEMDBGNzBDMDcgLyog
RWxlbWVudFJhcmVEYXRhLmNwcCAqLywKKwkJCQk2MzdCN0FERTBFODc2N0I4MDBFMzIxOTQgLyog
RWxlbWVudFJhcmVEYXRhLmggKi8sCiAJCQkJRTRENThFQkExN0I4RjEyODAwQ0JEQ0E4IC8qIEVs
ZW1lbnRUcmF2ZXJzYWwuaCAqLywKIAkJCQlBOEVBN0VCQTBBMTk0NUQwMDBBOEVGNUYgLyogRW50
aXR5LmggKi8sCiAJCQkJOTNFRUMxRUIwOUMyODc3NzAwQzUxNUQxIC8qIEVudGl0eS5pZGwgKi8s
CkBAIC0yMTE3Niw3ICsyMTE3Niw3IEBACiAJCQkJQTgwRTZDRTYwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU1ByaW1pdGl2ZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUVEOEFDMzBDQzQ5QkUw
MDBCRkM1NTcgLyogQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTgwRTZDRkYwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1Byb3BlcnR5LmggaW4gSGVhZGVycyAq
LywKLQkJCQlFNDZBMkIxRTE3Q0E3NkIxMDAwREJDRDggLyogQ2hpbGRJdGVyYXRvci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTQ2QTJCMUUxN0NBNzZCMTAwMERCQ0Q4IC8qIEVsZW1lbnRDaGlsZEl0
ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk3OEQwMkJDNjE1NEExOERGMDBCNjJEMDUgLyog
Q1NTUHJvcGVydHlBbmltYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NjU4MEY0MDlEMTJC
MjAwMDBFNjFENyAvKiBDU1NQcm9wZXJ0eU5hbWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MkUz
RDhERjEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmggaW4gSGVhZGVy
cyAqLywKQEAgLTIyOTAwLDcgKzIyOTAwLDcgQEAKIAkJCQkzNzFFNjVDQzEzNjYxRURDMDBCRUVE
QjAgLyogUGFnZVNlcmlhbGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MTk3RjI0MTc1Njg5
QzQwMDdCOTQ0MiAvKiBQYWdlVGhyb3R0bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI4NEFF
MTEwNDQ3RDQ1MDBFQUVCNTIgLyogUGFnZVRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJRTQ2QTJCMUMxN0NBNjVCOTAwMERCQ0Q4IC8qIERlc2NlbmRhbnRJdGVyYXRvci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTQ2QTJCMUMxN0NBNjVCOTAwMERCQ0Q4IC8qIEVsZW1lbnREZXNj
ZW5kYW50SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRTFFQ0MzMEM5MUM5MDQwMERD
MjU1QiAvKiBQYWdlVVJMUmVjb3JkLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkQ1Qjk3QjEzNUND
OTc4MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTM3N0FCQTAxNURFRkVFRjAwMzFGRDA0IC8qIFBhZ2luYXRpb24uaCBpbiBIZWFkZXJzICovLApJ
bmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5jcHAJKHJldmlzaW9uIDE1NDkyNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUxpc3RCb3guaCIKICNp
bmNsdWRlICJBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxp
dHlUYWJsZS5oIgotI2luY2x1ZGUgIkNoaWxkSXRlcmF0b3IuaCIKKyNpbmNsdWRlICJFbGVtZW50
SXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkocmV2aXNp
b24gMTU0OTI1KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogI2luY2x1
ZGUgIkFjY2Vzc2liaWxpdHlUYWJsZS5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5j
bHVkZSAiQ2hyb21lLmgiCi0jaW5jbHVkZSAiRGVzY2VuZGFudEl0ZXJhdG9yLmgiCisjaW5jbHVk
ZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUg
IkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwCShyZXZpc2lvbiAx
NTQ5MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJs
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJBY2Nlc3Np
YmlsaXR5VGFibGVDb2x1bW4uaCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJD
b250YWluZXIuaCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCIKLSNpbmNsdWRl
ICJDaGlsZEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MVGFibGVDZWxsRWxlbWVudC5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlU291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2VTb3VyY2UuY3BwCShyZXZpc2lvbiAxNTQ5MjUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw4ICszMCw4
IEBACiAjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ2FjaGVkRm9udC5o
IgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAiQ2hpbGRJdGVy
YXRvci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudEl0ZXJhdG9y
LmgiCiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCiAjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgi
CiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9D
aGlsZEl0ZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkSXRl
cmF0b3IuaAkocmV2aXNpb24gMTU0OTI2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkSXRl
cmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSwxODIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ2hpbGRJdGVyYXRvcl9oCi0j
ZGVmaW5lIENoaWxkSXRlcmF0b3JfaAotCi0jaW5jbHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgot
Y2xhc3MgQ2hpbGRJdGVyYXRvciA6IHB1YmxpYyBFbGVtZW50SXRlcmF0b3I8RWxlbWVudFR5cGU+
IHsKLXB1YmxpYzoKLSAgICBDaGlsZEl0ZXJhdG9yKGNvbnN0IENvbnRhaW5lck5vZGUqIHJvb3Qp
OwotICAgIENoaWxkSXRlcmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCwgRWxlbWVudFR5
cGUqIGN1cnJlbnQpOwotICAgIENoaWxkSXRlcmF0b3ImIG9wZXJhdG9yKysoKTsKLX07Ci0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KLWNsYXNzIENoaWxkQ29uc3RJdGVyYXRvciA6
IHB1YmxpYyBFbGVtZW50Q29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT4gewotcHVibGljOgotICAg
IENoaWxkQ29uc3RJdGVyYXRvcihjb25zdCBDb250YWluZXJOb2RlKiByb290KTsKLSAgICBDaGls
ZENvbnN0SXRlcmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCwgY29uc3QgRWxlbWVudFR5
cGUqIGN1cnJlbnQpOwotICAgIENoaWxkQ29uc3RJdGVyYXRvciYgb3BlcmF0b3IrKygpOwotfTsK
LQotdGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotY2xhc3MgQ2hpbGRJdGVyYXRvckFk
YXB0ZXIgewotcHVibGljOgotICAgIENoaWxkSXRlcmF0b3JBZGFwdGVyKENvbnRhaW5lck5vZGUq
IHJvb3QpOwotICAgIENoaWxkSXRlcmF0b3I8RWxlbWVudFR5cGU+IGJlZ2luKCk7Ci0gICAgQ2hp
bGRJdGVyYXRvcjxFbGVtZW50VHlwZT4gZW5kKCk7Ci0KLXByaXZhdGU6Ci0gICAgY29uc3QgQ29u
dGFpbmVyTm9kZSogbV9yb290OwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBl
PgotY2xhc3MgQ2hpbGRDb25zdEl0ZXJhdG9yQWRhcHRlciB7Ci1wdWJsaWM6Ci0gICAgQ2hpbGRD
b25zdEl0ZXJhdG9yQWRhcHRlcihjb25zdCBDb250YWluZXJOb2RlKiByb290KTsKLSAgICBDaGls
ZENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+IGJlZ2luKCkgY29uc3Q7Ci0gICAgQ2hpbGRDb25z
dEl0ZXJhdG9yPEVsZW1lbnRUeXBlPiBlbmQoKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBjb25z
dCBDb250YWluZXJOb2RlKiBtX3Jvb3Q7Ci19OwotCi1DaGlsZEl0ZXJhdG9yQWRhcHRlcjxFbGVt
ZW50PiBlbGVtZW50Q2hpbGRyZW4oQ29udGFpbmVyTm9kZSogcm9vdCk7Ci1DaGlsZENvbnN0SXRl
cmF0b3JBZGFwdGVyPEVsZW1lbnQ+IGVsZW1lbnRDaGlsZHJlbihjb25zdCBDb250YWluZXJOb2Rl
KiByb290KTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4gQ2hpbGRJdGVyYXRvckFk
YXB0ZXI8RWxlbWVudFR5cGU+IGNoaWxkcmVuT2ZUeXBlKENvbnRhaW5lck5vZGUqIHJvb3QpOwot
dGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPiBDaGlsZENvbnN0SXRlcmF0b3JBZGFwdGVy
PEVsZW1lbnRUeXBlPiBjaGlsZHJlbk9mVHlwZShjb25zdCBDb250YWluZXJOb2RlKiByb290KTsK
LQotLy8gQ2hpbGRJdGVyYXRvcgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVudFR5cGU+Ci1p
bmxpbmUgQ2hpbGRJdGVyYXRvcjxFbGVtZW50VHlwZT46OkNoaWxkSXRlcmF0b3IoY29uc3QgQ29u
dGFpbmVyTm9kZSogcm9vdCkKLSAgICA6IEVsZW1lbnRJdGVyYXRvcjxFbGVtZW50VHlwZT4ocm9v
dCkKLXsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotaW5saW5lIENoaWxk
SXRlcmF0b3I8RWxlbWVudFR5cGU+OjpDaGlsZEl0ZXJhdG9yKGNvbnN0IENvbnRhaW5lck5vZGUq
IHJvb3QsIEVsZW1lbnRUeXBlKiBjdXJyZW50KQotICAgIDogRWxlbWVudEl0ZXJhdG9yPEVsZW1l
bnRUeXBlPihyb290LCBjdXJyZW50KQotewotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVu
dFR5cGU+Ci1pbmxpbmUgQ2hpbGRJdGVyYXRvcjxFbGVtZW50VHlwZT4mIENoaWxkSXRlcmF0b3I8
RWxlbWVudFR5cGU+OjpvcGVyYXRvcisrKCkKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2hp
bGRJdGVyYXRvcjxFbGVtZW50VHlwZT4mPihFbGVtZW50SXRlcmF0b3I8RWxlbWVudFR5cGU+Ojp0
cmF2ZXJzZU5leHRTaWJsaW5nKCkpOwotfQotCi0vLyBDaGlsZENvbnN0SXRlcmF0b3IKLQotdGVt
cGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotaW5saW5lIENoaWxkQ29uc3RJdGVyYXRvcjxF
bGVtZW50VHlwZT46OkNoaWxkQ29uc3RJdGVyYXRvcihjb25zdCBDb250YWluZXJOb2RlKiByb290
KQotICAgIDogRWxlbWVudENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+KHJvb3QpCi17Ci19Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KLWlubGluZSBDaGlsZENvbnN0SXRlcmF0
b3I8RWxlbWVudFR5cGU+OjpDaGlsZENvbnN0SXRlcmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSog
cm9vdCwgY29uc3QgRWxlbWVudFR5cGUqIGN1cnJlbnQpCi0gICAgOiBFbGVtZW50Q29uc3RJdGVy
YXRvcjxFbGVtZW50VHlwZT4ocm9vdCwgY3VycmVudCkKLXsKLX0KLQotdGVtcGxhdGUgPHR5cGVu
YW1lIEVsZW1lbnRUeXBlPgotaW5saW5lIENoaWxkQ29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT4m
IENoaWxkQ29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT46Om9wZXJhdG9yKysoKQotewotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxDaGlsZENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+Jj4oRWxlbWVu
dENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+Ojp0cmF2ZXJzZU5leHRTaWJsaW5nKCkpOwotfQot
Ci0vLyBDaGlsZEl0ZXJhdG9yQWRhcHRlcgotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVudFR5
cGU+Ci1pbmxpbmUgQ2hpbGRJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+OjpDaGlsZEl0ZXJh
dG9yQWRhcHRlcihDb250YWluZXJOb2RlKiByb290KQotICAgIDogbV9yb290KHJvb3QpCi17Ci19
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KLWlubGluZSBDaGlsZEl0ZXJhdG9y
PEVsZW1lbnRUeXBlPiBDaGlsZEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50VHlwZT46OmJlZ2luKCkK
LXsKLSAgICByZXR1cm4gQ2hpbGRJdGVyYXRvcjxFbGVtZW50VHlwZT4obV9yb290LCBUcmF2ZXJz
YWw8RWxlbWVudFR5cGU+OjpmaXJzdENoaWxkKG1fcm9vdCkpOwotfQotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgRWxlbWVudFR5cGU+Ci1pbmxpbmUgQ2hpbGRJdGVyYXRvcjxFbGVtZW50VHlwZT4gQ2hp
bGRJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+OjplbmQoKQotewotICAgIHJldHVybiBDaGls
ZEl0ZXJhdG9yPEVsZW1lbnRUeXBlPihtX3Jvb3QpOwotfQotCi0vLyBDaGlsZENvbnN0SXRlcmF0
b3JBZGFwdGVyCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KLWlubGluZSBDaGls
ZENvbnN0SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPjo6Q2hpbGRDb25zdEl0ZXJhdG9yQWRh
cHRlcihjb25zdCBDb250YWluZXJOb2RlKiByb290KQotICAgIDogbV9yb290KHJvb3QpCi17Ci19
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KLWlubGluZSBDaGlsZENvbnN0SXRl
cmF0b3I8RWxlbWVudFR5cGU+IENoaWxkQ29uc3RJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+
OjpiZWdpbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIENoaWxkQ29uc3RJdGVyYXRvcjxFbGVtZW50
VHlwZT4obV9yb290LCBUcmF2ZXJzYWw8RWxlbWVudFR5cGU+OjpmaXJzdENoaWxkKG1fcm9vdCkp
OwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVudFR5cGU+Ci1pbmxpbmUgQ2hpbGRDb25z
dEl0ZXJhdG9yPEVsZW1lbnRUeXBlPiBDaGlsZENvbnN0SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRU
eXBlPjo6ZW5kKCkgY29uc3QKLXsKLSAgICByZXR1cm4gQ2hpbGRDb25zdEl0ZXJhdG9yPEVsZW1l
bnRUeXBlPihtX3Jvb3QpOwotfQotCi0vLyBTdGFuZGFsb25lIGZ1bmN0aW9ucwotCi1pbmxpbmUg
Q2hpbGRJdGVyYXRvckFkYXB0ZXI8RWxlbWVudD4gZWxlbWVudENoaWxkcmVuKENvbnRhaW5lck5v
ZGUqIHJvb3QpCi17Ci0gICAgcmV0dXJuIENoaWxkSXRlcmF0b3JBZGFwdGVyPEVsZW1lbnQ+KHJv
b3QpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVudFR5cGU+Ci1pbmxpbmUgQ2hpbGRJ
dGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+IGNoaWxkcmVuT2ZUeXBlKENvbnRhaW5lck5vZGUq
IHJvb3QpCi17Ci0gICAgcmV0dXJuIENoaWxkSXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPihy
b290KTsKLX0KLQotaW5saW5lIENoaWxkQ29uc3RJdGVyYXRvckFkYXB0ZXI8RWxlbWVudD4gZWxl
bWVudENoaWxkcmVuKGNvbnN0IENvbnRhaW5lck5vZGUqIHJvb3QpCi17Ci0gICAgcmV0dXJuIENo
aWxkQ29uc3RJdGVyYXRvckFkYXB0ZXI8RWxlbWVudD4ocm9vdCk7Ci19Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBFbGVtZW50VHlwZT4KLWlubGluZSBDaGlsZENvbnN0SXRlcmF0b3JBZGFwdGVyPEVs
ZW1lbnRUeXBlPiBjaGlsZHJlbk9mVHlwZShjb25zdCBDb250YWluZXJOb2RlKiByb290KQotewot
ICAgIHJldHVybiBDaGlsZENvbnN0SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPihyb290KTsK
LX0KLQotfQotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9EZXNjZW5kYW50SXRl
cmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRGVzY2VuZGFudEl0ZXJh
dG9yLmgJKHJldmlzaW9uIDE1NDkyNikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EZXNjZW5kYW50
SXRlcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSwxODMgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgRGVzY2VuZGFudEl0ZXJh
dG9yX2gKLSNkZWZpbmUgRGVzY2VuZGFudEl0ZXJhdG9yX2gKLQotI2luY2x1ZGUgIkVsZW1lbnRJ
dGVyYXRvci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBF
bGVtZW50VHlwZT4KLWNsYXNzIERlc2NlbmRhbnRJdGVyYXRvciA6IHB1YmxpYyBFbGVtZW50SXRl
cmF0b3I8RWxlbWVudFR5cGU+IHsKLXB1YmxpYzoKLSAgICBEZXNjZW5kYW50SXRlcmF0b3IoY29u
c3QgQ29udGFpbmVyTm9kZSogcm9vdCk7Ci0gICAgRGVzY2VuZGFudEl0ZXJhdG9yKGNvbnN0IENv
bnRhaW5lck5vZGUqIHJvb3QsIEVsZW1lbnRUeXBlKiBjdXJyZW50KTsKLSAgICBEZXNjZW5kYW50
SXRlcmF0b3ImIG9wZXJhdG9yKysoKTsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50
VHlwZT4KLWNsYXNzIERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yIDogcHVibGljIEVsZW1lbnRDb25z
dEl0ZXJhdG9yPEVsZW1lbnRUeXBlPiAgewotcHVibGljOgotICAgIERlc2NlbmRhbnRDb25zdEl0
ZXJhdG9yKGNvbnN0IENvbnRhaW5lck5vZGUqIHJvb3QpOwotICAgIERlc2NlbmRhbnRDb25zdEl0
ZXJhdG9yKGNvbnN0IENvbnRhaW5lck5vZGUqIHJvb3QsIGNvbnN0IEVsZW1lbnRUeXBlKiBjdXJy
ZW50KTsKLSAgICBEZXNjZW5kYW50Q29uc3RJdGVyYXRvciYgb3BlcmF0b3IrKygpOwotfTsKLQot
dGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotY2xhc3MgRGVzY2VuZGFudEl0ZXJhdG9y
QWRhcHRlciB7Ci1wdWJsaWM6Ci0gICAgRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcihDb250YWlu
ZXJOb2RlKiByb290KTsKLSAgICBEZXNjZW5kYW50SXRlcmF0b3I8RWxlbWVudFR5cGU+IGJlZ2lu
KCk7Ci0gICAgRGVzY2VuZGFudEl0ZXJhdG9yPEVsZW1lbnRUeXBlPiBlbmQoKTsKLQotcHJpdmF0
ZToKLSAgICBDb250YWluZXJOb2RlKiBtX3Jvb3Q7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
RWxlbWVudFR5cGU+Ci1jbGFzcyBEZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXIgewotcHVi
bGljOgotICAgIERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcihjb25zdCBDb250YWluZXJO
b2RlKiByb290KTsKLSAgICBEZXNjZW5kYW50Q29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT4gYmVn
aW4oKSBjb25zdDsKLSAgICBEZXNjZW5kYW50Q29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT4gZW5k
KCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgY29uc3QgQ29udGFpbmVyTm9kZSogbV9yb290Owot
fTsKLQotRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50PiBlbGVtZW50RGVzY2VuZGFu
dHMoQ29udGFpbmVyTm9kZSogcm9vdCk7Ci1EZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXI8
RWxlbWVudD4gZWxlbWVudERlc2NlbmRhbnRzKGNvbnN0IENvbnRhaW5lck5vZGUqIHJvb3QpOwot
dGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPiBEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVy
PEVsZW1lbnRUeXBlPiBkZXNjZW5kYW50c09mVHlwZShDb250YWluZXJOb2RlKiByb290KTsKLXRl
bXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4gRGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFw
dGVyPEVsZW1lbnRUeXBlPiBkZXNjZW5kYW50c09mVHlwZShjb25zdCBDb250YWluZXJOb2RlKiBy
b290KTsKLQotLy8gRGVzY2VuZGFudEl0ZXJhdG9yCi0KLXRlbXBsYXRlIDx0eXBlbmFtZSBFbGVt
ZW50VHlwZT4KLWlubGluZSBEZXNjZW5kYW50SXRlcmF0b3I8RWxlbWVudFR5cGU+OjpEZXNjZW5k
YW50SXRlcmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCkKLSAgICA6IEVsZW1lbnRJdGVy
YXRvcjxFbGVtZW50VHlwZT4ocm9vdCkKLXsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1l
bnRUeXBlPgotaW5saW5lIERlc2NlbmRhbnRJdGVyYXRvcjxFbGVtZW50VHlwZT46OkRlc2NlbmRh
bnRJdGVyYXRvcihjb25zdCBDb250YWluZXJOb2RlKiByb290LCBFbGVtZW50VHlwZSogY3VycmVu
dCkKLSAgICA6IEVsZW1lbnRJdGVyYXRvcjxFbGVtZW50VHlwZT4ocm9vdCwgY3VycmVudCkKLXsK
LX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotaW5saW5lIERlc2NlbmRhbnRJ
dGVyYXRvcjxFbGVtZW50VHlwZT4mIERlc2NlbmRhbnRJdGVyYXRvcjxFbGVtZW50VHlwZT46Om9w
ZXJhdG9yKysoKQotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZXNjZW5kYW50SXRlcmF0b3I8
RWxlbWVudFR5cGU+Jj4oRWxlbWVudEl0ZXJhdG9yPEVsZW1lbnRUeXBlPjo6dHJhdmVyc2VOZXh0
KCkpOwotfQotCi0vLyBEZXNjZW5kYW50Q29uc3RJdGVyYXRvcgotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgRWxlbWVudFR5cGU+Ci1pbmxpbmUgRGVzY2VuZGFudENvbnN0SXRlcmF0b3I8RWxlbWVudFR5
cGU+OjpEZXNjZW5kYW50Q29uc3RJdGVyYXRvcihjb25zdCBDb250YWluZXJOb2RlKiByb290KQot
ICAgIDogRWxlbWVudENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+KHJvb3QpCi0KLXsKLX0KLQot
dGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotaW5saW5lIERlc2NlbmRhbnRDb25zdEl0
ZXJhdG9yPEVsZW1lbnRUeXBlPjo6RGVzY2VuZGFudENvbnN0SXRlcmF0b3IoY29uc3QgQ29udGFp
bmVyTm9kZSogcm9vdCwgY29uc3QgRWxlbWVudFR5cGUqIGN1cnJlbnQpCi0gICAgOiBFbGVtZW50
Q29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT4ocm9vdCwgY3VycmVudCkKLXsKLX0KLQotdGVtcGxh
dGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotaW5saW5lIERlc2NlbmRhbnRDb25zdEl0ZXJhdG9y
PEVsZW1lbnRUeXBlPiYgRGVzY2VuZGFudENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+OjpvcGVy
YXRvcisrKCkKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RGVzY2VuZGFudENvbnN0SXRlcmF0
b3I8RWxlbWVudFR5cGU+Jj4oRWxlbWVudENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+Ojp0cmF2
ZXJzZU5leHQoKSk7Ci19Ci0KLS8vIERlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXIKLQotdGVtcGxh
dGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotaW5saW5lIERlc2NlbmRhbnRJdGVyYXRvckFkYXB0
ZXI8RWxlbWVudFR5cGU+OjpEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyKENvbnRhaW5lck5vZGUq
IHJvb3QpCi0gICAgOiBtX3Jvb3Qocm9vdCkKLXsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIEVs
ZW1lbnRUeXBlPgotaW5saW5lIERlc2NlbmRhbnRJdGVyYXRvcjxFbGVtZW50VHlwZT4gRGVzY2Vu
ZGFudEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50VHlwZT46OmJlZ2luKCkKLXsKLSAgICByZXR1cm4g
RGVzY2VuZGFudEl0ZXJhdG9yPEVsZW1lbnRUeXBlPihtX3Jvb3QsIFRyYXZlcnNhbDxFbGVtZW50
VHlwZT46OmZpcnN0V2l0aGluKG1fcm9vdCkpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgRWxl
bWVudFR5cGU+Ci1pbmxpbmUgRGVzY2VuZGFudEl0ZXJhdG9yPEVsZW1lbnRUeXBlPiBEZXNjZW5k
YW50SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPjo6ZW5kKCkKLXsKLSAgICByZXR1cm4gRGVz
Y2VuZGFudEl0ZXJhdG9yPEVsZW1lbnRUeXBlPihtX3Jvb3QpOwotfQotCi0vLyBEZXNjZW5kYW50
Q29uc3RJdGVyYXRvckFkYXB0ZXIKLQotdGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgot
aW5saW5lIERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50VHlwZT46OkRlc2Nl
bmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcihjb25zdCBDb250YWluZXJOb2RlKiByb290KQotICAg
IDogbV9yb290KHJvb3QpCi17Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4K
LWlubGluZSBEZXNjZW5kYW50Q29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT4gRGVzY2VuZGFudENv
bnN0SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPjo6YmVnaW4oKSBjb25zdAotewotICAgIHJl
dHVybiBEZXNjZW5kYW50Q29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT4obV9yb290LCBUcmF2ZXJz
YWw8RWxlbWVudFR5cGU+OjpmaXJzdFdpdGhpbihtX3Jvb3QpKTsKLX0KLQotdGVtcGxhdGUgPHR5
cGVuYW1lIEVsZW1lbnRUeXBlPgotaW5saW5lIERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yPEVsZW1l
bnRUeXBlPiBEZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+OjplbmQo
KSBjb25zdAotewotICAgIHJldHVybiBEZXNjZW5kYW50Q29uc3RJdGVyYXRvcjxFbGVtZW50VHlw
ZT4obV9yb290KTsKLX0KLQotLy8gU3RhbmRhbG9uZSBmdW5jdGlvbnMKLQotaW5saW5lIERlc2Nl
bmRhbnRJdGVyYXRvckFkYXB0ZXI8RWxlbWVudD4gZWxlbWVudERlc2NlbmRhbnRzKENvbnRhaW5l
ck5vZGUqIHJvb3QpCi17Ci0gICAgcmV0dXJuIERlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8RWxl
bWVudD4ocm9vdCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KLWlubGlu
ZSBEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPiBkZXNjZW5kYW50c09mVHlw
ZShDb250YWluZXJOb2RlKiByb290KQotewotICAgIHJldHVybiBEZXNjZW5kYW50SXRlcmF0b3JB
ZGFwdGVyPEVsZW1lbnRUeXBlPihyb290KTsKLX0KLQotaW5saW5lIERlc2NlbmRhbnRDb25zdEl0
ZXJhdG9yQWRhcHRlcjxFbGVtZW50PiBlbGVtZW50RGVzY2VuZGFudHMoY29uc3QgQ29udGFpbmVy
Tm9kZSogcm9vdCkKLXsKLSAgICByZXR1cm4gRGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFwdGVy
PEVsZW1lbnQ+KHJvb3QpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVudFR5cGU+Ci1p
bmxpbmUgRGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPiBkZXNjZW5k
YW50c09mVHlwZShjb25zdCBDb250YWluZXJOb2RlKiByb290KQotewotICAgIHJldHVybiBEZXNj
ZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+KHJvb3QpOwotfQotCi19Ci0K
LSNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAxNTQ5MjUpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3
ICszNyw2IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZENT
U1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1
ZGUgIkNoaWxkSXRlcmF0b3IuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJv
bWVDbGllbnQuaCIKICNpbmNsdWRlICJDb21tZW50LmgiCkBAIC01MCw3ICs0OSw2IEBACiAjaW5j
bHVkZSAiRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgog
I2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCi0jaW5jbHVkZSAiRGVzY2VuZGFudEl0ZXJhdG9y
LmgiCiAjaW5jbHVkZSAiRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkRvY3VtZW50RXZlbnRRdWV1
ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKQEAgLTYxLDYgKzU5LDcgQEAKICNp
bmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJF
bGVtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRW50aXR5
UmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudEZhY3Rvcnku
aCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50Q2hpbGRJdGVyYXRvci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50Q2hpbGRJdGVyYXRvci5oCShyZXZp
c2lvbiAxNTQ5MjYpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZEl0ZXJhdG9yLmg6MTU0
OTI2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRDaGlsZEl0ZXJhdG9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIENoaWxkSXRlcmF0b3JfaAorI2RlZmluZSBDaGlsZEl0
ZXJhdG9yX2gKKworI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KK2NsYXNzIENoaWxkSXRl
cmF0b3IgOiBwdWJsaWMgRWxlbWVudEl0ZXJhdG9yPEVsZW1lbnRUeXBlPiB7CitwdWJsaWM6Cisg
ICAgQ2hpbGRJdGVyYXRvcihjb25zdCBDb250YWluZXJOb2RlKiByb290KTsKKyAgICBDaGlsZEl0
ZXJhdG9yKGNvbnN0IENvbnRhaW5lck5vZGUqIHJvb3QsIEVsZW1lbnRUeXBlKiBjdXJyZW50KTsK
KyAgICBDaGlsZEl0ZXJhdG9yJiBvcGVyYXRvcisrKCk7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5h
bWUgRWxlbWVudFR5cGU+CitjbGFzcyBDaGlsZENvbnN0SXRlcmF0b3IgOiBwdWJsaWMgRWxlbWVu
dENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+IHsKK3B1YmxpYzoKKyAgICBDaGlsZENvbnN0SXRl
cmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCk7CisgICAgQ2hpbGRDb25zdEl0ZXJhdG9y
KGNvbnN0IENvbnRhaW5lck5vZGUqIHJvb3QsIGNvbnN0IEVsZW1lbnRUeXBlKiBjdXJyZW50KTsK
KyAgICBDaGlsZENvbnN0SXRlcmF0b3ImIG9wZXJhdG9yKysoKTsKK307CisKK3RlbXBsYXRlIDx0
eXBlbmFtZSBFbGVtZW50VHlwZT4KK2NsYXNzIENoaWxkSXRlcmF0b3JBZGFwdGVyIHsKK3B1Ymxp
YzoKKyAgICBDaGlsZEl0ZXJhdG9yQWRhcHRlcihDb250YWluZXJOb2RlKiByb290KTsKKyAgICBD
aGlsZEl0ZXJhdG9yPEVsZW1lbnRUeXBlPiBiZWdpbigpOworICAgIENoaWxkSXRlcmF0b3I8RWxl
bWVudFR5cGU+IGVuZCgpOworCitwcml2YXRlOgorICAgIGNvbnN0IENvbnRhaW5lck5vZGUqIG1f
cm9vdDsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KK2NsYXNzIENoaWxk
Q29uc3RJdGVyYXRvckFkYXB0ZXIgeworcHVibGljOgorICAgIENoaWxkQ29uc3RJdGVyYXRvckFk
YXB0ZXIoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCk7CisgICAgQ2hpbGRDb25zdEl0ZXJhdG9y
PEVsZW1lbnRUeXBlPiBiZWdpbigpIGNvbnN0OworICAgIENoaWxkQ29uc3RJdGVyYXRvcjxFbGVt
ZW50VHlwZT4gZW5kKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgY29uc3QgQ29udGFpbmVyTm9k
ZSogbV9yb290OworfTsKKworQ2hpbGRJdGVyYXRvckFkYXB0ZXI8RWxlbWVudD4gZWxlbWVudENo
aWxkcmVuKENvbnRhaW5lck5vZGUqIHJvb3QpOworQ2hpbGRDb25zdEl0ZXJhdG9yQWRhcHRlcjxF
bGVtZW50PiBlbGVtZW50Q2hpbGRyZW4oY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCk7Cit0ZW1w
bGF0ZSA8dHlwZW5hbWUgRWxlbWVudFR5cGU+IENoaWxkSXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRU
eXBlPiBjaGlsZHJlbk9mVHlwZShDb250YWluZXJOb2RlKiByb290KTsKK3RlbXBsYXRlIDx0eXBl
bmFtZSBFbGVtZW50VHlwZT4gQ2hpbGRDb25zdEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50VHlwZT4g
Y2hpbGRyZW5PZlR5cGUoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCk7CisKKy8vIENoaWxkSXRl
cmF0b3IKKwordGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgoraW5saW5lIENoaWxkSXRl
cmF0b3I8RWxlbWVudFR5cGU+OjpDaGlsZEl0ZXJhdG9yKGNvbnN0IENvbnRhaW5lck5vZGUqIHJv
b3QpCisgICAgOiBFbGVtZW50SXRlcmF0b3I8RWxlbWVudFR5cGU+KHJvb3QpCit7Cit9CisKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KK2lubGluZSBDaGlsZEl0ZXJhdG9yPEVsZW1l
bnRUeXBlPjo6Q2hpbGRJdGVyYXRvcihjb25zdCBDb250YWluZXJOb2RlKiByb290LCBFbGVtZW50
VHlwZSogY3VycmVudCkKKyAgICA6IEVsZW1lbnRJdGVyYXRvcjxFbGVtZW50VHlwZT4ocm9vdCwg
Y3VycmVudCkKK3sKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgoraW5saW5l
IENoaWxkSXRlcmF0b3I8RWxlbWVudFR5cGU+JiBDaGlsZEl0ZXJhdG9yPEVsZW1lbnRUeXBlPjo6
b3BlcmF0b3IrKygpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENoaWxkSXRlcmF0b3I8RWxl
bWVudFR5cGU+Jj4oRWxlbWVudEl0ZXJhdG9yPEVsZW1lbnRUeXBlPjo6dHJhdmVyc2VOZXh0U2li
bGluZygpKTsKK30KKworLy8gQ2hpbGRDb25zdEl0ZXJhdG9yCisKK3RlbXBsYXRlIDx0eXBlbmFt
ZSBFbGVtZW50VHlwZT4KK2lubGluZSBDaGlsZENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+OjpD
aGlsZENvbnN0SXRlcmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCkKKyAgICA6IEVsZW1l
bnRDb25zdEl0ZXJhdG9yPEVsZW1lbnRUeXBlPihyb290KQoreworfQorCit0ZW1wbGF0ZSA8dHlw
ZW5hbWUgRWxlbWVudFR5cGU+CitpbmxpbmUgQ2hpbGRDb25zdEl0ZXJhdG9yPEVsZW1lbnRUeXBl
Pjo6Q2hpbGRDb25zdEl0ZXJhdG9yKGNvbnN0IENvbnRhaW5lck5vZGUqIHJvb3QsIGNvbnN0IEVs
ZW1lbnRUeXBlKiBjdXJyZW50KQorICAgIDogRWxlbWVudENvbnN0SXRlcmF0b3I8RWxlbWVudFR5
cGU+KHJvb3QsIGN1cnJlbnQpCit7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlw
ZT4KK2lubGluZSBDaGlsZENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+JiBDaGlsZENvbnN0SXRl
cmF0b3I8RWxlbWVudFR5cGU+OjpvcGVyYXRvcisrKCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8Q2hpbGRDb25zdEl0ZXJhdG9yPEVsZW1lbnRUeXBlPiY+KEVsZW1lbnRDb25zdEl0ZXJhdG9y
PEVsZW1lbnRUeXBlPjo6dHJhdmVyc2VOZXh0U2libGluZygpKTsKK30KKworLy8gQ2hpbGRJdGVy
YXRvckFkYXB0ZXIKKwordGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgoraW5saW5lIENo
aWxkSXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPjo6Q2hpbGRJdGVyYXRvckFkYXB0ZXIoQ29u
dGFpbmVyTm9kZSogcm9vdCkKKyAgICA6IG1fcm9vdChyb290KQoreworfQorCit0ZW1wbGF0ZSA8
dHlwZW5hbWUgRWxlbWVudFR5cGU+CitpbmxpbmUgQ2hpbGRJdGVyYXRvcjxFbGVtZW50VHlwZT4g
Q2hpbGRJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+OjpiZWdpbigpCit7CisgICAgcmV0dXJu
IENoaWxkSXRlcmF0b3I8RWxlbWVudFR5cGU+KG1fcm9vdCwgVHJhdmVyc2FsPEVsZW1lbnRUeXBl
Pjo6Zmlyc3RDaGlsZChtX3Jvb3QpKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRU
eXBlPgoraW5saW5lIENoaWxkSXRlcmF0b3I8RWxlbWVudFR5cGU+IENoaWxkSXRlcmF0b3JBZGFw
dGVyPEVsZW1lbnRUeXBlPjo6ZW5kKCkKK3sKKyAgICByZXR1cm4gQ2hpbGRJdGVyYXRvcjxFbGVt
ZW50VHlwZT4obV9yb290KTsKK30KKworLy8gQ2hpbGRDb25zdEl0ZXJhdG9yQWRhcHRlcgorCit0
ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVudFR5cGU+CitpbmxpbmUgQ2hpbGRDb25zdEl0ZXJhdG9y
QWRhcHRlcjxFbGVtZW50VHlwZT46OkNoaWxkQ29uc3RJdGVyYXRvckFkYXB0ZXIoY29uc3QgQ29u
dGFpbmVyTm9kZSogcm9vdCkKKyAgICA6IG1fcm9vdChyb290KQoreworfQorCit0ZW1wbGF0ZSA8
dHlwZW5hbWUgRWxlbWVudFR5cGU+CitpbmxpbmUgQ2hpbGRDb25zdEl0ZXJhdG9yPEVsZW1lbnRU
eXBlPiBDaGlsZENvbnN0SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPjo6YmVnaW4oKSBjb25z
dAoreworICAgIHJldHVybiBDaGlsZENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+KG1fcm9vdCwg
VHJhdmVyc2FsPEVsZW1lbnRUeXBlPjo6Zmlyc3RDaGlsZChtX3Jvb3QpKTsKK30KKwordGVtcGxh
dGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgoraW5saW5lIENoaWxkQ29uc3RJdGVyYXRvcjxFbGVt
ZW50VHlwZT4gQ2hpbGRDb25zdEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50VHlwZT46OmVuZCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIENoaWxkQ29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT4obV9yb290
KTsKK30KKworLy8gU3RhbmRhbG9uZSBmdW5jdGlvbnMKKworaW5saW5lIENoaWxkSXRlcmF0b3JB
ZGFwdGVyPEVsZW1lbnQ+IGVsZW1lbnRDaGlsZHJlbihDb250YWluZXJOb2RlKiByb290KQorewor
ICAgIHJldHVybiBDaGlsZEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50Pihyb290KTsKK30KKwordGVt
cGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgoraW5saW5lIENoaWxkSXRlcmF0b3JBZGFwdGVy
PEVsZW1lbnRUeXBlPiBjaGlsZHJlbk9mVHlwZShDb250YWluZXJOb2RlKiByb290KQoreworICAg
IHJldHVybiBDaGlsZEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50VHlwZT4ocm9vdCk7Cit9CisKK2lu
bGluZSBDaGlsZENvbnN0SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnQ+IGVsZW1lbnRDaGlsZHJlbihj
b25zdCBDb250YWluZXJOb2RlKiByb290KQoreworICAgIHJldHVybiBDaGlsZENvbnN0SXRlcmF0
b3JBZGFwdGVyPEVsZW1lbnQ+KHJvb3QpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVu
dFR5cGU+CitpbmxpbmUgQ2hpbGRDb25zdEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50VHlwZT4gY2hp
bGRyZW5PZlR5cGUoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCkKK3sKKyAgICByZXR1cm4gQ2hp
bGRDb25zdEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50VHlwZT4ocm9vdCk7Cit9CisKK30KKworI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudENoaWxkSXRlcmF0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudENoaWxkSXRlcmF0b3IuaAkod29y
a2luZyBjb3B5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRDaGlsZEl0ZXJhdG9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIzLDE1OCArMjMsMTU4IEBACiAgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLSNpZm5kZWYgQ2hpbGRJdGVyYXRvcl9oCi0jZGVmaW5lIENoaWxkSXRlcmF0b3JfaAorI2lm
bmRlZiBFbGVtZW50Q2hpbGRJdGVyYXRvcl9oCisjZGVmaW5lIEVsZW1lbnRDaGlsZEl0ZXJhdG9y
X2gKIAogI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KLWNsYXNzIENoaWxkSXRlcmF0b3Ig
OiBwdWJsaWMgRWxlbWVudEl0ZXJhdG9yPEVsZW1lbnRUeXBlPiB7CitjbGFzcyBFbGVtZW50Q2hp
bGRJdGVyYXRvciA6IHB1YmxpYyBFbGVtZW50SXRlcmF0b3I8RWxlbWVudFR5cGU+IHsKIHB1Ymxp
YzoKLSAgICBDaGlsZEl0ZXJhdG9yKGNvbnN0IENvbnRhaW5lck5vZGUqIHJvb3QpOwotICAgIENo
aWxkSXRlcmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCwgRWxlbWVudFR5cGUqIGN1cnJl
bnQpOwotICAgIENoaWxkSXRlcmF0b3ImIG9wZXJhdG9yKysoKTsKKyAgICBFbGVtZW50Q2hpbGRJ
dGVyYXRvcihjb25zdCBDb250YWluZXJOb2RlKiByb290KTsKKyAgICBFbGVtZW50Q2hpbGRJdGVy
YXRvcihjb25zdCBDb250YWluZXJOb2RlKiByb290LCBFbGVtZW50VHlwZSogY3VycmVudCk7Cisg
ICAgRWxlbWVudENoaWxkSXRlcmF0b3ImIG9wZXJhdG9yKysoKTsKIH07CiAKIHRlbXBsYXRlIDx0
eXBlbmFtZSBFbGVtZW50VHlwZT4KLWNsYXNzIENoaWxkQ29uc3RJdGVyYXRvciA6IHB1YmxpYyBF
bGVtZW50Q29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT4geworY2xhc3MgRWxlbWVudENoaWxkQ29u
c3RJdGVyYXRvciA6IHB1YmxpYyBFbGVtZW50Q29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT4gewog
cHVibGljOgotICAgIENoaWxkQ29uc3RJdGVyYXRvcihjb25zdCBDb250YWluZXJOb2RlKiByb290
KTsKLSAgICBDaGlsZENvbnN0SXRlcmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCwgY29u
c3QgRWxlbWVudFR5cGUqIGN1cnJlbnQpOwotICAgIENoaWxkQ29uc3RJdGVyYXRvciYgb3BlcmF0
b3IrKygpOworICAgIEVsZW1lbnRDaGlsZENvbnN0SXRlcmF0b3IoY29uc3QgQ29udGFpbmVyTm9k
ZSogcm9vdCk7CisgICAgRWxlbWVudENoaWxkQ29uc3RJdGVyYXRvcihjb25zdCBDb250YWluZXJO
b2RlKiByb290LCBjb25zdCBFbGVtZW50VHlwZSogY3VycmVudCk7CisgICAgRWxlbWVudENoaWxk
Q29uc3RJdGVyYXRvciYgb3BlcmF0b3IrKygpOwogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIEVs
ZW1lbnRUeXBlPgotY2xhc3MgQ2hpbGRJdGVyYXRvckFkYXB0ZXIgeworY2xhc3MgRWxlbWVudENo
aWxkSXRlcmF0b3JBZGFwdGVyIHsKIHB1YmxpYzoKLSAgICBDaGlsZEl0ZXJhdG9yQWRhcHRlcihD
b250YWluZXJOb2RlKiByb290KTsKLSAgICBDaGlsZEl0ZXJhdG9yPEVsZW1lbnRUeXBlPiBiZWdp
bigpOwotICAgIENoaWxkSXRlcmF0b3I8RWxlbWVudFR5cGU+IGVuZCgpOworICAgIEVsZW1lbnRD
aGlsZEl0ZXJhdG9yQWRhcHRlcihDb250YWluZXJOb2RlKiByb290KTsKKyAgICBFbGVtZW50Q2hp
bGRJdGVyYXRvcjxFbGVtZW50VHlwZT4gYmVnaW4oKTsKKyAgICBFbGVtZW50Q2hpbGRJdGVyYXRv
cjxFbGVtZW50VHlwZT4gZW5kKCk7CiAKIHByaXZhdGU6CiAgICAgY29uc3QgQ29udGFpbmVyTm9k
ZSogbV9yb290OwogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotY2xhc3Mg
Q2hpbGRDb25zdEl0ZXJhdG9yQWRhcHRlciB7CitjbGFzcyBFbGVtZW50Q2hpbGRDb25zdEl0ZXJh
dG9yQWRhcHRlciB7CiBwdWJsaWM6Ci0gICAgQ2hpbGRDb25zdEl0ZXJhdG9yQWRhcHRlcihjb25z
dCBDb250YWluZXJOb2RlKiByb290KTsKLSAgICBDaGlsZENvbnN0SXRlcmF0b3I8RWxlbWVudFR5
cGU+IGJlZ2luKCkgY29uc3Q7Ci0gICAgQ2hpbGRDb25zdEl0ZXJhdG9yPEVsZW1lbnRUeXBlPiBl
bmQoKSBjb25zdDsKKyAgICBFbGVtZW50Q2hpbGRDb25zdEl0ZXJhdG9yQWRhcHRlcihjb25zdCBD
b250YWluZXJOb2RlKiByb290KTsKKyAgICBFbGVtZW50Q2hpbGRDb25zdEl0ZXJhdG9yPEVsZW1l
bnRUeXBlPiBiZWdpbigpIGNvbnN0OworICAgIEVsZW1lbnRDaGlsZENvbnN0SXRlcmF0b3I8RWxl
bWVudFR5cGU+IGVuZCgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGNvbnN0IENvbnRhaW5lck5v
ZGUqIG1fcm9vdDsKIH07CiAKLUNoaWxkSXRlcmF0b3JBZGFwdGVyPEVsZW1lbnQ+IGVsZW1lbnRD
aGlsZHJlbihDb250YWluZXJOb2RlKiByb290KTsKLUNoaWxkQ29uc3RJdGVyYXRvckFkYXB0ZXI8
RWxlbWVudD4gZWxlbWVudENoaWxkcmVuKGNvbnN0IENvbnRhaW5lck5vZGUqIHJvb3QpOwotdGVt
cGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPiBDaGlsZEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50
VHlwZT4gY2hpbGRyZW5PZlR5cGUoQ29udGFpbmVyTm9kZSogcm9vdCk7Ci10ZW1wbGF0ZSA8dHlw
ZW5hbWUgRWxlbWVudFR5cGU+IENoaWxkQ29uc3RJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+
IGNoaWxkcmVuT2ZUeXBlKGNvbnN0IENvbnRhaW5lck5vZGUqIHJvb3QpOworRWxlbWVudENoaWxk
SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnQ+IGVsZW1lbnRDaGlsZHJlbihDb250YWluZXJOb2RlKiBy
b290KTsKK0VsZW1lbnRDaGlsZENvbnN0SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnQ+IGVsZW1lbnRD
aGlsZHJlbihjb25zdCBDb250YWluZXJOb2RlKiByb290KTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBF
bGVtZW50VHlwZT4gRWxlbWVudENoaWxkSXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPiBjaGls
ZHJlbk9mVHlwZShDb250YWluZXJOb2RlKiByb290KTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBFbGVt
ZW50VHlwZT4gRWxlbWVudENoaWxkQ29uc3RJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+IGNo
aWxkcmVuT2ZUeXBlKGNvbnN0IENvbnRhaW5lck5vZGUqIHJvb3QpOwogCi0vLyBDaGlsZEl0ZXJh
dG9yCisvLyBFbGVtZW50Q2hpbGRJdGVyYXRvcgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVu
dFR5cGU+Ci1pbmxpbmUgQ2hpbGRJdGVyYXRvcjxFbGVtZW50VHlwZT46OkNoaWxkSXRlcmF0b3Io
Y29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCkKK2lubGluZSBFbGVtZW50Q2hpbGRJdGVyYXRvcjxF
bGVtZW50VHlwZT46OkVsZW1lbnRDaGlsZEl0ZXJhdG9yKGNvbnN0IENvbnRhaW5lck5vZGUqIHJv
b3QpCiAgICAgOiBFbGVtZW50SXRlcmF0b3I8RWxlbWVudFR5cGU+KHJvb3QpCiB7CiB9CiAKIHRl
bXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KLWlubGluZSBDaGlsZEl0ZXJhdG9yPEVsZW1l
bnRUeXBlPjo6Q2hpbGRJdGVyYXRvcihjb25zdCBDb250YWluZXJOb2RlKiByb290LCBFbGVtZW50
VHlwZSogY3VycmVudCkKK2lubGluZSBFbGVtZW50Q2hpbGRJdGVyYXRvcjxFbGVtZW50VHlwZT46
OkVsZW1lbnRDaGlsZEl0ZXJhdG9yKGNvbnN0IENvbnRhaW5lck5vZGUqIHJvb3QsIEVsZW1lbnRU
eXBlKiBjdXJyZW50KQogICAgIDogRWxlbWVudEl0ZXJhdG9yPEVsZW1lbnRUeXBlPihyb290LCBj
dXJyZW50KQogewogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVudFR5cGU+Ci1pbmxpbmUg
Q2hpbGRJdGVyYXRvcjxFbGVtZW50VHlwZT4mIENoaWxkSXRlcmF0b3I8RWxlbWVudFR5cGU+Ojpv
cGVyYXRvcisrKCkKK2lubGluZSBFbGVtZW50Q2hpbGRJdGVyYXRvcjxFbGVtZW50VHlwZT4mIEVs
ZW1lbnRDaGlsZEl0ZXJhdG9yPEVsZW1lbnRUeXBlPjo6b3BlcmF0b3IrKygpCiB7Ci0gICAgcmV0
dXJuIHN0YXRpY19jYXN0PENoaWxkSXRlcmF0b3I8RWxlbWVudFR5cGU+Jj4oRWxlbWVudEl0ZXJh
dG9yPEVsZW1lbnRUeXBlPjo6dHJhdmVyc2VOZXh0U2libGluZygpKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8RWxlbWVudENoaWxkSXRlcmF0b3I8RWxlbWVudFR5cGU+Jj4oRWxlbWVudEl0ZXJh
dG9yPEVsZW1lbnRUeXBlPjo6dHJhdmVyc2VOZXh0U2libGluZygpKTsKIH0KIAotLy8gQ2hpbGRD
b25zdEl0ZXJhdG9yCisvLyBFbGVtZW50Q2hpbGRDb25zdEl0ZXJhdG9yCiAKIHRlbXBsYXRlIDx0
eXBlbmFtZSBFbGVtZW50VHlwZT4KLWlubGluZSBDaGlsZENvbnN0SXRlcmF0b3I8RWxlbWVudFR5
cGU+OjpDaGlsZENvbnN0SXRlcmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCkKK2lubGlu
ZSBFbGVtZW50Q2hpbGRDb25zdEl0ZXJhdG9yPEVsZW1lbnRUeXBlPjo6RWxlbWVudENoaWxkQ29u
c3RJdGVyYXRvcihjb25zdCBDb250YWluZXJOb2RlKiByb290KQogICAgIDogRWxlbWVudENvbnN0
SXRlcmF0b3I8RWxlbWVudFR5cGU+KHJvb3QpCiB7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBF
bGVtZW50VHlwZT4KLWlubGluZSBDaGlsZENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+OjpDaGls
ZENvbnN0SXRlcmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCwgY29uc3QgRWxlbWVudFR5
cGUqIGN1cnJlbnQpCitpbmxpbmUgRWxlbWVudENoaWxkQ29uc3RJdGVyYXRvcjxFbGVtZW50VHlw
ZT46OkVsZW1lbnRDaGlsZENvbnN0SXRlcmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCwg
Y29uc3QgRWxlbWVudFR5cGUqIGN1cnJlbnQpCiAgICAgOiBFbGVtZW50Q29uc3RJdGVyYXRvcjxF
bGVtZW50VHlwZT4ocm9vdCwgY3VycmVudCkKIHsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIEVs
ZW1lbnRUeXBlPgotaW5saW5lIENoaWxkQ29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT4mIENoaWxk
Q29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT46Om9wZXJhdG9yKysoKQoraW5saW5lIEVsZW1lbnRD
aGlsZENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+JiBFbGVtZW50Q2hpbGRDb25zdEl0ZXJhdG9y
PEVsZW1lbnRUeXBlPjo6b3BlcmF0b3IrKygpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENo
aWxkQ29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT4mPihFbGVtZW50Q29uc3RJdGVyYXRvcjxFbGVt
ZW50VHlwZT46OnRyYXZlcnNlTmV4dFNpYmxpbmcoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PEVsZW1lbnRDaGlsZENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+Jj4oRWxlbWVudENvbnN0SXRl
cmF0b3I8RWxlbWVudFR5cGU+Ojp0cmF2ZXJzZU5leHRTaWJsaW5nKCkpOwogfQogCi0vLyBDaGls
ZEl0ZXJhdG9yQWRhcHRlcgorLy8gRWxlbWVudENoaWxkSXRlcmF0b3JBZGFwdGVyCiAKIHRlbXBs
YXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KLWlubGluZSBDaGlsZEl0ZXJhdG9yQWRhcHRlcjxF
bGVtZW50VHlwZT46OkNoaWxkSXRlcmF0b3JBZGFwdGVyKENvbnRhaW5lck5vZGUqIHJvb3QpCitp
bmxpbmUgRWxlbWVudENoaWxkSXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPjo6RWxlbWVudENo
aWxkSXRlcmF0b3JBZGFwdGVyKENvbnRhaW5lck5vZGUqIHJvb3QpCiAgICAgOiBtX3Jvb3Qocm9v
dCkKIHsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotaW5saW5lIENoaWxk
SXRlcmF0b3I8RWxlbWVudFR5cGU+IENoaWxkSXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPjo6
YmVnaW4oKQoraW5saW5lIEVsZW1lbnRDaGlsZEl0ZXJhdG9yPEVsZW1lbnRUeXBlPiBFbGVtZW50
Q2hpbGRJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+OjpiZWdpbigpCiB7Ci0gICAgcmV0dXJu
IENoaWxkSXRlcmF0b3I8RWxlbWVudFR5cGU+KG1fcm9vdCwgVHJhdmVyc2FsPEVsZW1lbnRUeXBl
Pjo6Zmlyc3RDaGlsZChtX3Jvb3QpKTsKKyAgICByZXR1cm4gRWxlbWVudENoaWxkSXRlcmF0b3I8
RWxlbWVudFR5cGU+KG1fcm9vdCwgVHJhdmVyc2FsPEVsZW1lbnRUeXBlPjo6Zmlyc3RDaGlsZCht
X3Jvb3QpKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotaW5saW5lIENo
aWxkSXRlcmF0b3I8RWxlbWVudFR5cGU+IENoaWxkSXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBl
Pjo6ZW5kKCkKK2lubGluZSBFbGVtZW50Q2hpbGRJdGVyYXRvcjxFbGVtZW50VHlwZT4gRWxlbWVu
dENoaWxkSXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPjo6ZW5kKCkKIHsKLSAgICByZXR1cm4g
Q2hpbGRJdGVyYXRvcjxFbGVtZW50VHlwZT4obV9yb290KTsKKyAgICByZXR1cm4gRWxlbWVudENo
aWxkSXRlcmF0b3I8RWxlbWVudFR5cGU+KG1fcm9vdCk7CiB9CiAKLS8vIENoaWxkQ29uc3RJdGVy
YXRvckFkYXB0ZXIKKy8vIEVsZW1lbnRDaGlsZENvbnN0SXRlcmF0b3JBZGFwdGVyCiAKIHRlbXBs
YXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KLWlubGluZSBDaGlsZENvbnN0SXRlcmF0b3JBZGFw
dGVyPEVsZW1lbnRUeXBlPjo6Q2hpbGRDb25zdEl0ZXJhdG9yQWRhcHRlcihjb25zdCBDb250YWlu
ZXJOb2RlKiByb290KQoraW5saW5lIEVsZW1lbnRDaGlsZENvbnN0SXRlcmF0b3JBZGFwdGVyPEVs
ZW1lbnRUeXBlPjo6RWxlbWVudENoaWxkQ29uc3RJdGVyYXRvckFkYXB0ZXIoY29uc3QgQ29udGFp
bmVyTm9kZSogcm9vdCkKICAgICA6IG1fcm9vdChyb290KQogewogfQogCiB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgRWxlbWVudFR5cGU+Ci1pbmxpbmUgQ2hpbGRDb25zdEl0ZXJhdG9yPEVsZW1lbnRUeXBl
PiBDaGlsZENvbnN0SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPjo6YmVnaW4oKSBjb25zdAor
aW5saW5lIEVsZW1lbnRDaGlsZENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+IEVsZW1lbnRDaGls
ZENvbnN0SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPjo6YmVnaW4oKSBjb25zdAogewotICAg
IHJldHVybiBDaGlsZENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+KG1fcm9vdCwgVHJhdmVyc2Fs
PEVsZW1lbnRUeXBlPjo6Zmlyc3RDaGlsZChtX3Jvb3QpKTsKKyAgICByZXR1cm4gRWxlbWVudENo
aWxkQ29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT4obV9yb290LCBUcmF2ZXJzYWw8RWxlbWVudFR5
cGU+OjpmaXJzdENoaWxkKG1fcm9vdCkpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVu
dFR5cGU+Ci1pbmxpbmUgQ2hpbGRDb25zdEl0ZXJhdG9yPEVsZW1lbnRUeXBlPiBDaGlsZENvbnN0
SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPjo6ZW5kKCkgY29uc3QKK2lubGluZSBFbGVtZW50
Q2hpbGRDb25zdEl0ZXJhdG9yPEVsZW1lbnRUeXBlPiBFbGVtZW50Q2hpbGRDb25zdEl0ZXJhdG9y
QWRhcHRlcjxFbGVtZW50VHlwZT46OmVuZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIENoaWxkQ29u
c3RJdGVyYXRvcjxFbGVtZW50VHlwZT4obV9yb290KTsKKyAgICByZXR1cm4gRWxlbWVudENoaWxk
Q29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT4obV9yb290KTsKIH0KIAogLy8gU3RhbmRhbG9uZSBm
dW5jdGlvbnMKIAotaW5saW5lIENoaWxkSXRlcmF0b3JBZGFwdGVyPEVsZW1lbnQ+IGVsZW1lbnRD
aGlsZHJlbihDb250YWluZXJOb2RlKiByb290KQoraW5saW5lIEVsZW1lbnRDaGlsZEl0ZXJhdG9y
QWRhcHRlcjxFbGVtZW50PiBlbGVtZW50Q2hpbGRyZW4oQ29udGFpbmVyTm9kZSogcm9vdCkKIHsK
LSAgICByZXR1cm4gQ2hpbGRJdGVyYXRvckFkYXB0ZXI8RWxlbWVudD4ocm9vdCk7CisgICAgcmV0
dXJuIEVsZW1lbnRDaGlsZEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50Pihyb290KTsKIH0KIAogdGVt
cGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotaW5saW5lIENoaWxkSXRlcmF0b3JBZGFwdGVy
PEVsZW1lbnRUeXBlPiBjaGlsZHJlbk9mVHlwZShDb250YWluZXJOb2RlKiByb290KQoraW5saW5l
IEVsZW1lbnRDaGlsZEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50VHlwZT4gY2hpbGRyZW5PZlR5cGUo
Q29udGFpbmVyTm9kZSogcm9vdCkKIHsKLSAgICByZXR1cm4gQ2hpbGRJdGVyYXRvckFkYXB0ZXI8
RWxlbWVudFR5cGU+KHJvb3QpOworICAgIHJldHVybiBFbGVtZW50Q2hpbGRJdGVyYXRvckFkYXB0
ZXI8RWxlbWVudFR5cGU+KHJvb3QpOwogfQogCi1pbmxpbmUgQ2hpbGRDb25zdEl0ZXJhdG9yQWRh
cHRlcjxFbGVtZW50PiBlbGVtZW50Q2hpbGRyZW4oY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCkK
K2lubGluZSBFbGVtZW50Q2hpbGRDb25zdEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50PiBlbGVtZW50
Q2hpbGRyZW4oY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCkKIHsKLSAgICByZXR1cm4gQ2hpbGRD
b25zdEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50Pihyb290KTsKKyAgICByZXR1cm4gRWxlbWVudENo
aWxkQ29uc3RJdGVyYXRvckFkYXB0ZXI8RWxlbWVudD4ocm9vdCk7CiB9CiAKIHRlbXBsYXRlIDx0
eXBlbmFtZSBFbGVtZW50VHlwZT4KLWlubGluZSBDaGlsZENvbnN0SXRlcmF0b3JBZGFwdGVyPEVs
ZW1lbnRUeXBlPiBjaGlsZHJlbk9mVHlwZShjb25zdCBDb250YWluZXJOb2RlKiByb290KQoraW5s
aW5lIEVsZW1lbnRDaGlsZENvbnN0SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPiBjaGlsZHJl
bk9mVHlwZShjb25zdCBDb250YWluZXJOb2RlKiByb290KQogewotICAgIHJldHVybiBDaGlsZENv
bnN0SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPihyb290KTsKKyAgICByZXR1cm4gRWxlbWVu
dENoaWxkQ29uc3RJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+KHJvb3QpOwogfQogCiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50RGVzY2VuZGFudEl0ZXJhdG9yLmgJ
KHJldmlzaW9uIDE1NDkyNikJKGZyb20gU291cmNlL1dlYkNvcmUvZG9tL0Rlc2NlbmRhbnRJdGVy
YXRvci5oOjE1NDkyNikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50RGVzY2VuZGFudEl0
ZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxODMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERlc2NlbmRhbnRJdGVyYXRv
cl9oCisjZGVmaW5lIERlc2NlbmRhbnRJdGVyYXRvcl9oCisKKyNpbmNsdWRlICJFbGVtZW50SXRl
cmF0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRWxl
bWVudFR5cGU+CitjbGFzcyBEZXNjZW5kYW50SXRlcmF0b3IgOiBwdWJsaWMgRWxlbWVudEl0ZXJh
dG9yPEVsZW1lbnRUeXBlPiB7CitwdWJsaWM6CisgICAgRGVzY2VuZGFudEl0ZXJhdG9yKGNvbnN0
IENvbnRhaW5lck5vZGUqIHJvb3QpOworICAgIERlc2NlbmRhbnRJdGVyYXRvcihjb25zdCBDb250
YWluZXJOb2RlKiByb290LCBFbGVtZW50VHlwZSogY3VycmVudCk7CisgICAgRGVzY2VuZGFudEl0
ZXJhdG9yJiBvcGVyYXRvcisrKCk7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVudFR5
cGU+CitjbGFzcyBEZXNjZW5kYW50Q29uc3RJdGVyYXRvciA6IHB1YmxpYyBFbGVtZW50Q29uc3RJ
dGVyYXRvcjxFbGVtZW50VHlwZT4gIHsKK3B1YmxpYzoKKyAgICBEZXNjZW5kYW50Q29uc3RJdGVy
YXRvcihjb25zdCBDb250YWluZXJOb2RlKiByb290KTsKKyAgICBEZXNjZW5kYW50Q29uc3RJdGVy
YXRvcihjb25zdCBDb250YWluZXJOb2RlKiByb290LCBjb25zdCBFbGVtZW50VHlwZSogY3VycmVu
dCk7CisgICAgRGVzY2VuZGFudENvbnN0SXRlcmF0b3ImIG9wZXJhdG9yKysoKTsKK307CisKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KK2NsYXNzIERlc2NlbmRhbnRJdGVyYXRvckFk
YXB0ZXIgeworcHVibGljOgorICAgIERlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXIoQ29udGFpbmVy
Tm9kZSogcm9vdCk7CisgICAgRGVzY2VuZGFudEl0ZXJhdG9yPEVsZW1lbnRUeXBlPiBiZWdpbigp
OworICAgIERlc2NlbmRhbnRJdGVyYXRvcjxFbGVtZW50VHlwZT4gZW5kKCk7CisKK3ByaXZhdGU6
CisgICAgQ29udGFpbmVyTm9kZSogbV9yb290OworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIEVs
ZW1lbnRUeXBlPgorY2xhc3MgRGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFwdGVyIHsKK3B1Ymxp
YzoKKyAgICBEZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXIoY29uc3QgQ29udGFpbmVyTm9k
ZSogcm9vdCk7CisgICAgRGVzY2VuZGFudENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+IGJlZ2lu
KCkgY29uc3Q7CisgICAgRGVzY2VuZGFudENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+IGVuZCgp
IGNvbnN0OworCitwcml2YXRlOgorICAgIGNvbnN0IENvbnRhaW5lck5vZGUqIG1fcm9vdDsKK307
CisKK0Rlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8RWxlbWVudD4gZWxlbWVudERlc2NlbmRhbnRz
KENvbnRhaW5lck5vZGUqIHJvb3QpOworRGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFwdGVyPEVs
ZW1lbnQ+IGVsZW1lbnREZXNjZW5kYW50cyhjb25zdCBDb250YWluZXJOb2RlKiByb290KTsKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4gRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxF
bGVtZW50VHlwZT4gZGVzY2VuZGFudHNPZlR5cGUoQ29udGFpbmVyTm9kZSogcm9vdCk7Cit0ZW1w
bGF0ZSA8dHlwZW5hbWUgRWxlbWVudFR5cGU+IERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRl
cjxFbGVtZW50VHlwZT4gZGVzY2VuZGFudHNPZlR5cGUoY29uc3QgQ29udGFpbmVyTm9kZSogcm9v
dCk7CisKKy8vIERlc2NlbmRhbnRJdGVyYXRvcgorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVu
dFR5cGU+CitpbmxpbmUgRGVzY2VuZGFudEl0ZXJhdG9yPEVsZW1lbnRUeXBlPjo6RGVzY2VuZGFu
dEl0ZXJhdG9yKGNvbnN0IENvbnRhaW5lck5vZGUqIHJvb3QpCisgICAgOiBFbGVtZW50SXRlcmF0
b3I8RWxlbWVudFR5cGU+KHJvb3QpCit7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50
VHlwZT4KK2lubGluZSBEZXNjZW5kYW50SXRlcmF0b3I8RWxlbWVudFR5cGU+OjpEZXNjZW5kYW50
SXRlcmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCwgRWxlbWVudFR5cGUqIGN1cnJlbnQp
CisgICAgOiBFbGVtZW50SXRlcmF0b3I8RWxlbWVudFR5cGU+KHJvb3QsIGN1cnJlbnQpCit7Cit9
CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KK2lubGluZSBEZXNjZW5kYW50SXRl
cmF0b3I8RWxlbWVudFR5cGU+JiBEZXNjZW5kYW50SXRlcmF0b3I8RWxlbWVudFR5cGU+OjpvcGVy
YXRvcisrKCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RGVzY2VuZGFudEl0ZXJhdG9yPEVs
ZW1lbnRUeXBlPiY+KEVsZW1lbnRJdGVyYXRvcjxFbGVtZW50VHlwZT46OnRyYXZlcnNlTmV4dCgp
KTsKK30KKworLy8gRGVzY2VuZGFudENvbnN0SXRlcmF0b3IKKwordGVtcGxhdGUgPHR5cGVuYW1l
IEVsZW1lbnRUeXBlPgoraW5saW5lIERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yPEVsZW1lbnRUeXBl
Pjo6RGVzY2VuZGFudENvbnN0SXRlcmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCkKKyAg
ICA6IEVsZW1lbnRDb25zdEl0ZXJhdG9yPEVsZW1lbnRUeXBlPihyb290KQorCit7Cit9CisKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KK2lubGluZSBEZXNjZW5kYW50Q29uc3RJdGVy
YXRvcjxFbGVtZW50VHlwZT46OkRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yKGNvbnN0IENvbnRhaW5l
ck5vZGUqIHJvb3QsIGNvbnN0IEVsZW1lbnRUeXBlKiBjdXJyZW50KQorICAgIDogRWxlbWVudENv
bnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+KHJvb3QsIGN1cnJlbnQpCit7Cit9CisKK3RlbXBsYXRl
IDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KK2lubGluZSBEZXNjZW5kYW50Q29uc3RJdGVyYXRvcjxF
bGVtZW50VHlwZT4mIERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yPEVsZW1lbnRUeXBlPjo6b3BlcmF0
b3IrKygpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERlc2NlbmRhbnRDb25zdEl0ZXJhdG9y
PEVsZW1lbnRUeXBlPiY+KEVsZW1lbnRDb25zdEl0ZXJhdG9yPEVsZW1lbnRUeXBlPjo6dHJhdmVy
c2VOZXh0KCkpOworfQorCisvLyBEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyCisKK3RlbXBsYXRl
IDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KK2lubGluZSBEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVy
PEVsZW1lbnRUeXBlPjo6RGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcihDb250YWluZXJOb2RlKiBy
b290KQorICAgIDogbV9yb290KHJvb3QpCit7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBFbGVt
ZW50VHlwZT4KK2lubGluZSBEZXNjZW5kYW50SXRlcmF0b3I8RWxlbWVudFR5cGU+IERlc2NlbmRh
bnRJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+OjpiZWdpbigpCit7CisgICAgcmV0dXJuIERl
c2NlbmRhbnRJdGVyYXRvcjxFbGVtZW50VHlwZT4obV9yb290LCBUcmF2ZXJzYWw8RWxlbWVudFR5
cGU+OjpmaXJzdFdpdGhpbihtX3Jvb3QpKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1l
bnRUeXBlPgoraW5saW5lIERlc2NlbmRhbnRJdGVyYXRvcjxFbGVtZW50VHlwZT4gRGVzY2VuZGFu
dEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50VHlwZT46OmVuZCgpCit7CisgICAgcmV0dXJuIERlc2Nl
bmRhbnRJdGVyYXRvcjxFbGVtZW50VHlwZT4obV9yb290KTsKK30KKworLy8gRGVzY2VuZGFudENv
bnN0SXRlcmF0b3JBZGFwdGVyCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KK2lu
bGluZSBEZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+OjpEZXNjZW5k
YW50Q29uc3RJdGVyYXRvckFkYXB0ZXIoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCkKKyAgICA6
IG1fcm9vdChyb290KQoreworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVudFR5cGU+Citp
bmxpbmUgRGVzY2VuZGFudENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+IERlc2NlbmRhbnRDb25z
dEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50VHlwZT46OmJlZ2luKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gRGVzY2VuZGFudENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+KG1fcm9vdCwgVHJhdmVyc2Fs
PEVsZW1lbnRUeXBlPjo6Zmlyc3RXaXRoaW4obV9yb290KSk7Cit9CisKK3RlbXBsYXRlIDx0eXBl
bmFtZSBFbGVtZW50VHlwZT4KK2lubGluZSBEZXNjZW5kYW50Q29uc3RJdGVyYXRvcjxFbGVtZW50
VHlwZT4gRGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPjo6ZW5kKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gRGVzY2VuZGFudENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+
KG1fcm9vdCk7Cit9CisKKy8vIFN0YW5kYWxvbmUgZnVuY3Rpb25zCisKK2lubGluZSBEZXNjZW5k
YW50SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnQ+IGVsZW1lbnREZXNjZW5kYW50cyhDb250YWluZXJO
b2RlKiByb290KQoreworICAgIHJldHVybiBEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyPEVsZW1l
bnQ+KHJvb3QpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVudFR5cGU+CitpbmxpbmUg
RGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50VHlwZT4gZGVzY2VuZGFudHNPZlR5cGUo
Q29udGFpbmVyTm9kZSogcm9vdCkKK3sKKyAgICByZXR1cm4gRGVzY2VuZGFudEl0ZXJhdG9yQWRh
cHRlcjxFbGVtZW50VHlwZT4ocm9vdCk7Cit9CisKK2lubGluZSBEZXNjZW5kYW50Q29uc3RJdGVy
YXRvckFkYXB0ZXI8RWxlbWVudD4gZWxlbWVudERlc2NlbmRhbnRzKGNvbnN0IENvbnRhaW5lck5v
ZGUqIHJvb3QpCit7CisgICAgcmV0dXJuIERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcjxF
bGVtZW50Pihyb290KTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgoraW5s
aW5lIERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50VHlwZT4gZGVzY2VuZGFu
dHNPZlR5cGUoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCkKK3sKKyAgICByZXR1cm4gRGVzY2Vu
ZGFudENvbnN0SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPihyb290KTsKK30KKworfQorCisj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50RGVzY2VuZGFudEl0ZXJhdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnREZXNjZW5kYW50SXRl
cmF0b3IuaAkod29ya2luZyBjb3B5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnREZXNj
ZW5kYW50SXRlcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTU5ICsyMywxNTkgQEAKICAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBEZXNjZW5kYW50SXRlcmF0b3JfaAotI2RlZmlu
ZSBEZXNjZW5kYW50SXRlcmF0b3JfaAorI2lmbmRlZiBFbGVtZW50RGVzY2VuZGFudEl0ZXJhdG9y
X2gKKyNkZWZpbmUgRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvcl9oCiAKICNpbmNsdWRlICJFbGVt
ZW50SXRlcmF0b3IuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0ZW1wbGF0ZSA8dHlwZW5h
bWUgRWxlbWVudFR5cGU+Ci1jbGFzcyBEZXNjZW5kYW50SXRlcmF0b3IgOiBwdWJsaWMgRWxlbWVu
dEl0ZXJhdG9yPEVsZW1lbnRUeXBlPiB7CitjbGFzcyBFbGVtZW50RGVzY2VuZGFudEl0ZXJhdG9y
IDogcHVibGljIEVsZW1lbnRJdGVyYXRvcjxFbGVtZW50VHlwZT4gewogcHVibGljOgotICAgIERl
c2NlbmRhbnRJdGVyYXRvcihjb25zdCBDb250YWluZXJOb2RlKiByb290KTsKLSAgICBEZXNjZW5k
YW50SXRlcmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCwgRWxlbWVudFR5cGUqIGN1cnJl
bnQpOwotICAgIERlc2NlbmRhbnRJdGVyYXRvciYgb3BlcmF0b3IrKygpOworICAgIEVsZW1lbnRE
ZXNjZW5kYW50SXRlcmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCk7CisgICAgRWxlbWVu
dERlc2NlbmRhbnRJdGVyYXRvcihjb25zdCBDb250YWluZXJOb2RlKiByb290LCBFbGVtZW50VHlw
ZSogY3VycmVudCk7CisgICAgRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvciYgb3BlcmF0b3IrKygp
OwogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotY2xhc3MgRGVzY2VuZGFu
dENvbnN0SXRlcmF0b3IgOiBwdWJsaWMgRWxlbWVudENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+
ICB7CitjbGFzcyBFbGVtZW50RGVzY2VuZGFudENvbnN0SXRlcmF0b3IgOiBwdWJsaWMgRWxlbWVu
dENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+ICB7CiBwdWJsaWM6Ci0gICAgRGVzY2VuZGFudENv
bnN0SXRlcmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCk7Ci0gICAgRGVzY2VuZGFudENv
bnN0SXRlcmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCwgY29uc3QgRWxlbWVudFR5cGUq
IGN1cnJlbnQpOwotICAgIERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yJiBvcGVyYXRvcisrKCk7Cisg
ICAgRWxlbWVudERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yKGNvbnN0IENvbnRhaW5lck5vZGUqIHJv
b3QpOworICAgIEVsZW1lbnREZXNjZW5kYW50Q29uc3RJdGVyYXRvcihjb25zdCBDb250YWluZXJO
b2RlKiByb290LCBjb25zdCBFbGVtZW50VHlwZSogY3VycmVudCk7CisgICAgRWxlbWVudERlc2Nl
bmRhbnRDb25zdEl0ZXJhdG9yJiBvcGVyYXRvcisrKCk7CiB9OwogCiB0ZW1wbGF0ZSA8dHlwZW5h
bWUgRWxlbWVudFR5cGU+Ci1jbGFzcyBEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyIHsKK2NsYXNz
IEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyIHsKIHB1YmxpYzoKLSAgICBEZXNjZW5k
YW50SXRlcmF0b3JBZGFwdGVyKENvbnRhaW5lck5vZGUqIHJvb3QpOwotICAgIERlc2NlbmRhbnRJ
dGVyYXRvcjxFbGVtZW50VHlwZT4gYmVnaW4oKTsKLSAgICBEZXNjZW5kYW50SXRlcmF0b3I8RWxl
bWVudFR5cGU+IGVuZCgpOworICAgIEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyKENv
bnRhaW5lck5vZGUqIHJvb3QpOworICAgIEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3I8RWxlbWVu
dFR5cGU+IGJlZ2luKCk7CisgICAgRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvcjxFbGVtZW50VHlw
ZT4gZW5kKCk7CiAKIHByaXZhdGU6CiAgICAgQ29udGFpbmVyTm9kZSogbV9yb290OwogfTsKIAog
dGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotY2xhc3MgRGVzY2VuZGFudENvbnN0SXRl
cmF0b3JBZGFwdGVyIHsKK2NsYXNzIEVsZW1lbnREZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0
ZXIgewogcHVibGljOgotICAgIERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcihjb25zdCBD
b250YWluZXJOb2RlKiByb290KTsKLSAgICBEZXNjZW5kYW50Q29uc3RJdGVyYXRvcjxFbGVtZW50
VHlwZT4gYmVnaW4oKSBjb25zdDsKLSAgICBEZXNjZW5kYW50Q29uc3RJdGVyYXRvcjxFbGVtZW50
VHlwZT4gZW5kKCkgY29uc3Q7CisgICAgRWxlbWVudERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRh
cHRlcihjb25zdCBDb250YWluZXJOb2RlKiByb290KTsKKyAgICBFbGVtZW50RGVzY2VuZGFudENv
bnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+IGJlZ2luKCkgY29uc3Q7CisgICAgRWxlbWVudERlc2Nl
bmRhbnRDb25zdEl0ZXJhdG9yPEVsZW1lbnRUeXBlPiBlbmQoKSBjb25zdDsKIAogcHJpdmF0ZToK
ICAgICBjb25zdCBDb250YWluZXJOb2RlKiBtX3Jvb3Q7CiB9OwogCi1EZXNjZW5kYW50SXRlcmF0
b3JBZGFwdGVyPEVsZW1lbnQ+IGVsZW1lbnREZXNjZW5kYW50cyhDb250YWluZXJOb2RlKiByb290
KTsKLURlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50PiBlbGVtZW50RGVzY2Vu
ZGFudHMoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCk7Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgRWxl
bWVudFR5cGU+IERlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+IGRlc2NlbmRh
bnRzT2ZUeXBlKENvbnRhaW5lck5vZGUqIHJvb3QpOwotdGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1l
bnRUeXBlPiBEZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+IGRlc2Nl
bmRhbnRzT2ZUeXBlKGNvbnN0IENvbnRhaW5lck5vZGUqIHJvb3QpOworRWxlbWVudERlc2NlbmRh
bnRJdGVyYXRvckFkYXB0ZXI8RWxlbWVudD4gZWxlbWVudERlc2NlbmRhbnRzKENvbnRhaW5lck5v
ZGUqIHJvb3QpOworRWxlbWVudERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50
PiBlbGVtZW50RGVzY2VuZGFudHMoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCk7Cit0ZW1wbGF0
ZSA8dHlwZW5hbWUgRWxlbWVudFR5cGU+IEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVy
PEVsZW1lbnRUeXBlPiBkZXNjZW5kYW50c09mVHlwZShDb250YWluZXJOb2RlKiByb290KTsKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4gRWxlbWVudERlc2NlbmRhbnRDb25zdEl0ZXJh
dG9yQWRhcHRlcjxFbGVtZW50VHlwZT4gZGVzY2VuZGFudHNPZlR5cGUoY29uc3QgQ29udGFpbmVy
Tm9kZSogcm9vdCk7CiAKLS8vIERlc2NlbmRhbnRJdGVyYXRvcgorLy8gRWxlbWVudERlc2NlbmRh
bnRJdGVyYXRvcgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVudFR5cGU+Ci1pbmxpbmUgRGVz
Y2VuZGFudEl0ZXJhdG9yPEVsZW1lbnRUeXBlPjo6RGVzY2VuZGFudEl0ZXJhdG9yKGNvbnN0IENv
bnRhaW5lck5vZGUqIHJvb3QpCitpbmxpbmUgRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvcjxFbGVt
ZW50VHlwZT46OkVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSog
cm9vdCkKICAgICA6IEVsZW1lbnRJdGVyYXRvcjxFbGVtZW50VHlwZT4ocm9vdCkKIHsKIH0KIAog
dGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotaW5saW5lIERlc2NlbmRhbnRJdGVyYXRv
cjxFbGVtZW50VHlwZT46OkRlc2NlbmRhbnRJdGVyYXRvcihjb25zdCBDb250YWluZXJOb2RlKiBy
b290LCBFbGVtZW50VHlwZSogY3VycmVudCkKK2lubGluZSBFbGVtZW50RGVzY2VuZGFudEl0ZXJh
dG9yPEVsZW1lbnRUeXBlPjo6RWxlbWVudERlc2NlbmRhbnRJdGVyYXRvcihjb25zdCBDb250YWlu
ZXJOb2RlKiByb290LCBFbGVtZW50VHlwZSogY3VycmVudCkKICAgICA6IEVsZW1lbnRJdGVyYXRv
cjxFbGVtZW50VHlwZT4ocm9vdCwgY3VycmVudCkKIHsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1l
IEVsZW1lbnRUeXBlPgotaW5saW5lIERlc2NlbmRhbnRJdGVyYXRvcjxFbGVtZW50VHlwZT4mIERl
c2NlbmRhbnRJdGVyYXRvcjxFbGVtZW50VHlwZT46Om9wZXJhdG9yKysoKQoraW5saW5lIEVsZW1l
bnREZXNjZW5kYW50SXRlcmF0b3I8RWxlbWVudFR5cGU+JiBFbGVtZW50RGVzY2VuZGFudEl0ZXJh
dG9yPEVsZW1lbnRUeXBlPjo6b3BlcmF0b3IrKygpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PERlc2NlbmRhbnRJdGVyYXRvcjxFbGVtZW50VHlwZT4mPihFbGVtZW50SXRlcmF0b3I8RWxlbWVu
dFR5cGU+Ojp0cmF2ZXJzZU5leHQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVsZW1lbnRE
ZXNjZW5kYW50SXRlcmF0b3I8RWxlbWVudFR5cGU+Jj4oRWxlbWVudEl0ZXJhdG9yPEVsZW1lbnRU
eXBlPjo6dHJhdmVyc2VOZXh0KCkpOwogfQogCi0vLyBEZXNjZW5kYW50Q29uc3RJdGVyYXRvcgor
Ly8gRWxlbWVudERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBF
bGVtZW50VHlwZT4KLWlubGluZSBEZXNjZW5kYW50Q29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT46
OkRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yKGNvbnN0IENvbnRhaW5lck5vZGUqIHJvb3QpCitpbmxp
bmUgRWxlbWVudERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yPEVsZW1lbnRUeXBlPjo6RWxlbWVudERl
c2NlbmRhbnRDb25zdEl0ZXJhdG9yKGNvbnN0IENvbnRhaW5lck5vZGUqIHJvb3QpCiAgICAgOiBF
bGVtZW50Q29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT4ocm9vdCkKIAogewogfQogCiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgRWxlbWVudFR5cGU+Ci1pbmxpbmUgRGVzY2VuZGFudENvbnN0SXRlcmF0b3I8
RWxlbWVudFR5cGU+OjpEZXNjZW5kYW50Q29uc3RJdGVyYXRvcihjb25zdCBDb250YWluZXJOb2Rl
KiByb290LCBjb25zdCBFbGVtZW50VHlwZSogY3VycmVudCkKK2lubGluZSBFbGVtZW50RGVzY2Vu
ZGFudENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+OjpFbGVtZW50RGVzY2VuZGFudENvbnN0SXRl
cmF0b3IoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCwgY29uc3QgRWxlbWVudFR5cGUqIGN1cnJl
bnQpCiAgICAgOiBFbGVtZW50Q29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT4ocm9vdCwgY3VycmVu
dCkKIHsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotaW5saW5lIERlc2Nl
bmRhbnRDb25zdEl0ZXJhdG9yPEVsZW1lbnRUeXBlPiYgRGVzY2VuZGFudENvbnN0SXRlcmF0b3I8
RWxlbWVudFR5cGU+OjpvcGVyYXRvcisrKCkKK2lubGluZSBFbGVtZW50RGVzY2VuZGFudENvbnN0
SXRlcmF0b3I8RWxlbWVudFR5cGU+JiBFbGVtZW50RGVzY2VuZGFudENvbnN0SXRlcmF0b3I8RWxl
bWVudFR5cGU+OjpvcGVyYXRvcisrKCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RGVzY2Vu
ZGFudENvbnN0SXRlcmF0b3I8RWxlbWVudFR5cGU+Jj4oRWxlbWVudENvbnN0SXRlcmF0b3I8RWxl
bWVudFR5cGU+Ojp0cmF2ZXJzZU5leHQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVsZW1l
bnREZXNjZW5kYW50Q29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT4mPihFbGVtZW50Q29uc3RJdGVy
YXRvcjxFbGVtZW50VHlwZT46OnRyYXZlcnNlTmV4dCgpKTsKIH0KIAotLy8gRGVzY2VuZGFudEl0
ZXJhdG9yQWRhcHRlcgorLy8gRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXIKIAogdGVt
cGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotaW5saW5lIERlc2NlbmRhbnRJdGVyYXRvckFk
YXB0ZXI8RWxlbWVudFR5cGU+OjpEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyKENvbnRhaW5lck5v
ZGUqIHJvb3QpCitpbmxpbmUgRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8RWxlbWVu
dFR5cGU+OjpFbGVtZW50RGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcihDb250YWluZXJOb2RlKiBy
b290KQogICAgIDogbV9yb290KHJvb3QpCiB7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBFbGVt
ZW50VHlwZT4KLWlubGluZSBEZXNjZW5kYW50SXRlcmF0b3I8RWxlbWVudFR5cGU+IERlc2NlbmRh
bnRJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+OjpiZWdpbigpCitpbmxpbmUgRWxlbWVudERl
c2NlbmRhbnRJdGVyYXRvcjxFbGVtZW50VHlwZT4gRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvckFk
YXB0ZXI8RWxlbWVudFR5cGU+OjpiZWdpbigpCiB7Ci0gICAgcmV0dXJuIERlc2NlbmRhbnRJdGVy
YXRvcjxFbGVtZW50VHlwZT4obV9yb290LCBUcmF2ZXJzYWw8RWxlbWVudFR5cGU+OjpmaXJzdFdp
dGhpbihtX3Jvb3QpKTsKKyAgICByZXR1cm4gRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvcjxFbGVt
ZW50VHlwZT4obV9yb290LCBUcmF2ZXJzYWw8RWxlbWVudFR5cGU+OjpmaXJzdFdpdGhpbihtX3Jv
b3QpKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotaW5saW5lIERlc2Nl
bmRhbnRJdGVyYXRvcjxFbGVtZW50VHlwZT4gRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxFbGVt
ZW50VHlwZT46OmVuZCgpCitpbmxpbmUgRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvcjxFbGVtZW50
VHlwZT4gRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+OjplbmQo
KQogewotICAgIHJldHVybiBEZXNjZW5kYW50SXRlcmF0b3I8RWxlbWVudFR5cGU+KG1fcm9vdCk7
CisgICAgcmV0dXJuIEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3I8RWxlbWVudFR5cGU+KG1fcm9v
dCk7CiB9CiAKLS8vIERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcgorLy8gRWxlbWVudERl
c2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgRWxlbWVu
dFR5cGU+Ci1pbmxpbmUgRGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBl
Pjo6RGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFwdGVyKGNvbnN0IENvbnRhaW5lck5vZGUqIHJv
b3QpCitpbmxpbmUgRWxlbWVudERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50
VHlwZT46OkVsZW1lbnREZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXIoY29uc3QgQ29udGFp
bmVyTm9kZSogcm9vdCkKICAgICA6IG1fcm9vdChyb290KQogewogfQogCiB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgRWxlbWVudFR5cGU+Ci1pbmxpbmUgRGVzY2VuZGFudENvbnN0SXRlcmF0b3I8RWxlbWVu
dFR5cGU+IERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50VHlwZT46OmJlZ2lu
KCkgY29uc3QKK2lubGluZSBFbGVtZW50RGVzY2VuZGFudENvbnN0SXRlcmF0b3I8RWxlbWVudFR5
cGU+IEVsZW1lbnREZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXI8RWxlbWVudFR5cGU+Ojpi
ZWdpbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yPEVsZW1l
bnRUeXBlPihtX3Jvb3QsIFRyYXZlcnNhbDxFbGVtZW50VHlwZT46OmZpcnN0V2l0aGluKG1fcm9v
dCkpOworICAgIHJldHVybiBFbGVtZW50RGVzY2VuZGFudENvbnN0SXRlcmF0b3I8RWxlbWVudFR5
cGU+KG1fcm9vdCwgVHJhdmVyc2FsPEVsZW1lbnRUeXBlPjo6Zmlyc3RXaXRoaW4obV9yb290KSk7
CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlwZT4KLWlubGluZSBEZXNjZW5kYW50
Q29uc3RJdGVyYXRvcjxFbGVtZW50VHlwZT4gRGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFwdGVy
PEVsZW1lbnRUeXBlPjo6ZW5kKCkgY29uc3QKK2lubGluZSBFbGVtZW50RGVzY2VuZGFudENvbnN0
SXRlcmF0b3I8RWxlbWVudFR5cGU+IEVsZW1lbnREZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0
ZXI8RWxlbWVudFR5cGU+OjplbmQoKSBjb25zdAogewotICAgIHJldHVybiBEZXNjZW5kYW50Q29u
c3RJdGVyYXRvcjxFbGVtZW50VHlwZT4obV9yb290KTsKKyAgICByZXR1cm4gRWxlbWVudERlc2Nl
bmRhbnRDb25zdEl0ZXJhdG9yPEVsZW1lbnRUeXBlPihtX3Jvb3QpOwogfQogCiAvLyBTdGFuZGFs
b25lIGZ1bmN0aW9ucwogCi1pbmxpbmUgRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50
PiBlbGVtZW50RGVzY2VuZGFudHMoQ29udGFpbmVyTm9kZSogcm9vdCkKK2lubGluZSBFbGVtZW50
RGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50PiBlbGVtZW50RGVzY2VuZGFudHMoQ29u
dGFpbmVyTm9kZSogcm9vdCkKIHsKLSAgICByZXR1cm4gRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRl
cjxFbGVtZW50Pihyb290KTsKKyAgICByZXR1cm4gRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvckFk
YXB0ZXI8RWxlbWVudD4ocm9vdCk7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBFbGVtZW50VHlw
ZT4KLWlubGluZSBEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPiBkZXNjZW5k
YW50c09mVHlwZShDb250YWluZXJOb2RlKiByb290KQoraW5saW5lIEVsZW1lbnREZXNjZW5kYW50
SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPiBkZXNjZW5kYW50c09mVHlwZShDb250YWluZXJO
b2RlKiByb290KQogewotICAgIHJldHVybiBEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyPEVsZW1l
bnRUeXBlPihyb290KTsKKyAgICByZXR1cm4gRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvckFkYXB0
ZXI8RWxlbWVudFR5cGU+KHJvb3QpOwogfQogCi1pbmxpbmUgRGVzY2VuZGFudENvbnN0SXRlcmF0
b3JBZGFwdGVyPEVsZW1lbnQ+IGVsZW1lbnREZXNjZW5kYW50cyhjb25zdCBDb250YWluZXJOb2Rl
KiByb290KQoraW5saW5lIEVsZW1lbnREZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXI8RWxl
bWVudD4gZWxlbWVudERlc2NlbmRhbnRzKGNvbnN0IENvbnRhaW5lck5vZGUqIHJvb3QpCiB7Ci0g
ICAgcmV0dXJuIERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50Pihyb290KTsK
KyAgICByZXR1cm4gRWxlbWVudERlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50
Pihyb290KTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgotaW5saW5lIERl
c2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcjxFbGVtZW50VHlwZT4gZGVzY2VuZGFudHNPZlR5
cGUoY29uc3QgQ29udGFpbmVyTm9kZSogcm9vdCkKK2lubGluZSBFbGVtZW50RGVzY2VuZGFudENv
bnN0SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPiBkZXNjZW5kYW50c09mVHlwZShjb25zdCBD
b250YWluZXJOb2RlKiByb290KQogewotICAgIHJldHVybiBEZXNjZW5kYW50Q29uc3RJdGVyYXRv
ckFkYXB0ZXI8RWxlbWVudFR5cGU+KHJvb3QpOworICAgIHJldHVybiBFbGVtZW50RGVzY2VuZGFu
dENvbnN0SXRlcmF0b3JBZGFwdGVyPEVsZW1lbnRUeXBlPihyb290KTsKIH0KIAogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRJdGVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50SXRlcmF0b3IuaAkocmV2aXNpb24gMTU0OTI2KQorKysgU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRJdGVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yODQs
NCArMjg0LDcgQEAgaW5saW5lIGJvb2wgRWxlbWVudENvbnN0SXRlcmF0b3I8RWxlbWVudAogCiB9
CiAKKyNpbmNsdWRlICJFbGVtZW50Q2hpbGRJdGVyYXRvci5oIgorI2luY2x1ZGUgIkVsZW1lbnRE
ZXNjZW5kYW50SXRlcmF0b3IuaCIKKwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCShyZXZp
c2lvbiAxNTQ5MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0LDExICs0NCwxMSBAQAogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRE9NU2V0dGFibGVU
b2tlbkxpc3QuaCIKLSNpbmNsdWRlICJEZXNjZW5kYW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJEb2N1
bWVudFR5cGUuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudEl0ZXJh
dG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudFJhcmVEYXRhLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIK
ICNpbmNsdWRlICJFdmVudENvbnRleHQuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
U2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3Bw
CShyZXZpc2lvbiAxNTQ5MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzAsOSArMzAsOSBAQAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUu
aCIKICNpbmNsdWRlICJET01TZWxlY3Rpb24uaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKLSNp
bmNsdWRlICJEZXNjZW5kYW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRl
ICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1l
Vmlldy5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFu
ZC5jcHAJKHJldmlzaW9uIDE1NDkyNSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlT
dHlsZUNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxMCArMzEsMTAgQEAKICNpbmNs
dWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgog
I2luY2x1ZGUgIkNTU1ZhbHVlUG9vbC5oIgotI2luY2x1ZGUgIkNoaWxkSXRlcmF0b3IuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgogI2luY2x1ZGUg
IkVkaXRvci5oIgorI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiSFRNTEZvbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEludGVyY2hh
bmdlLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCShyZXZpc2lvbiAxNTQ5MjUp
CisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM2LDEwICszNiwxMCBAQAogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRl
ICJDaGlsZExpc3RNdXRhdGlvblNjb3BlLmgiCiAjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmgi
Ci0jaW5jbHVkZSAiRGVzY2VuZGFudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFn
bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgor
I2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAJKHJldmlz
aW9uIDE1NDkyNSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiSFRNTEFwcGxldEVsZW1lbnQuaCIKIAotI2luY2x1ZGUgIkNoaWxkSXRlcmF0b3Iu
aCIKKyNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1
NDkyNSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJIVE1MRmllbGRTZXRFbGVtZW50LmgiCiAKLSNpbmNsdWRlICJDaGlsZEl0ZXJhdG9yLmgi
Ci0jaW5jbHVkZSAiRGVzY2VuZGFudEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiRWxlbWVudEl0ZXJh
dG9yLmgiCiAjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJIVE1MTGVnZW5k
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTQ5MjUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw4ICsy
NSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSFRNTExhYmVsRWxlbWVudC5o
IgogCi0jaW5jbHVkZSAiRGVzY2VuZGFudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCIK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTQ5
MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjMsOCArMjMsOCBAQAogI2luY2x1ZGUgIkhUTUxNYXBFbGVtZW50LmgiCiAKICNp
bmNsdWRlICJBdHRyaWJ1dGUuaCIKLSNpbmNsdWRlICJEZXNjZW5kYW50SXRlcmF0b3IuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgogI2luY2x1
ZGUgIkhUTUxBcmVhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCiAjaW5j
bHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTQ5MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAj
aW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2UuaCIKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKLSNpbmNsdWRlICJDaGlsZEl0
ZXJhdG9yLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiQ2xpZW50UmVjdC5oIgpAQCAtMzksOSArMzgsOSBAQAogI2luY2x1ZGUgIkNv
bnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNT
U1ZhbHVlS2V5d29yZHMuaCIKLSNpbmNsdWRlICJEZXNjZW5kYW50SXRlcmF0b3IuaCIKICNpbmNs
dWRlICJEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5o
IgorI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5j
bHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTQ5MjUp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjcsOSArMjcsOSBAQAogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgogI2luY2x1ZGUg
IkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgotI2luY2x1ZGUg
IkNoaWxkSXRlcmF0b3IuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVD
bGllbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudE5h
bWVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZvcm1EYXRhTGlz
dC5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1BsYWNlaG9sZGVyRG9jdW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9QbGFjZWhvbGRlckRvY3VtZW50
LmNwcAkocmV2aXNpb24gMTU0OTI1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1BsYWNlaG9s
ZGVyRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGxhY2Vob2xkZXJEb2N1bWVudC5oIgogCi0jaW5jbHVk
ZSAiQ2hpbGRJdGVyYXRvci5oIgorI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJF
ZmZlY3RSZW5kZXJlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcAkocmV2aXNpb24gMTU0OTI1KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjksOSArMjksOSBAQAogCiAjaW5jbHVkZSAiRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCIKIAot
I2luY2x1ZGUgIkNoaWxkSXRlcmF0b3IuaCIKICNpbmNsdWRlICJDb2xvclNwYWNlLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRl
ICJGRUNvbG9yTWF0cml4LmgiCiAjaW5jbHVkZSAiRkVDb21wb25lbnRUcmFuc2Zlci5oIgogI2lu
Y2x1ZGUgIkZFRHJvcFNoYWRvdy5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVS
ZXNvbHZlVHJlZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVS
ZXNvbHZlVHJlZS5jcHAJKHJldmlzaW9uIDE1NDkyNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlUmVzb2x2ZVRyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNyw4IEBACiAj
aW5jbHVkZSAiU3R5bGVSZXNvbHZlVHJlZS5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgotI2luY2x1ZGUgIkNoaWxkSXRlcmF0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5j
bHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudFJhcmVEYXRhLmgiCiAj
aW5jbHVkZSAiRWxlbWVudFRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIkZsb3dUaHJlYWRDb250cm9s
bGVyLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTQ5MjUp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDggKzMxLDggQEAKICNpbmNsdWRlICJDU1NDdXJzb3JJbWFnZVZhbHVlLmgiCiAjaW5jbHVk
ZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKLSNpbmNsdWRl
ICJEZXNjZW5kYW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkVsZW1lbnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1NWR0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
VkdFbGVtZW50LmNwcAkocmV2aXNpb24gMTU0OTI1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NWR0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNyw4IEBACiAjaW5jbHVk
ZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAi
Q1NTSGVscGVyLmgiCi0jaW5jbHVkZSAiRGVzY2VuZGFudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVu
dExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZsb2F0Q29u
dmVyc2lvbi5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TTUlMVGltZUNv
bnRhaW5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9T
TUlMVGltZUNvbnRhaW5lci5jcHAJKHJldmlzaW9uIDE1NDkyNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9hbmltYXRpb24vU01JTFRpbWVDb250YWluZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Nyw4ICsyNyw4IEBACiAjaW5jbHVkZSAiU01JTFRpbWVDb250YWluZXIuaCIKIAogI2lmIEVOQUJM
RShTVkcpCi0jaW5jbHVkZSAiRGVzY2VuZGFudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5o
IgogI2luY2x1ZGUgIlNWR1NNSUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5o
IgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCShyZXZpc2lv
biAxNTQ5MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSAiU1ZHSW1hZ2UuaCIKIAog
I2luY2x1ZGUgIkNocm9tZS5oIgotI2luY2x1ZGUgIkRlc2NlbmRhbnRJdGVyYXRvci5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAj
aW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRl
ICJJbWFnZU9ic2VydmVyLmgiCg==
</data>
<flag name="review"
          id="232290"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>