<?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>19529</bug_id>
          
          <creation_ts>2008-06-12 18:38:27 -0700</creation_ts>
          <short_desc>Empty clients need to be refactored</short_desc>
          <delta_ts>2008-06-19 14:26:14 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>83140</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-06-12 18:38:27 -0700</bug_when>
    <thetext>As part of bug5727, we need to refactor the empty clients so that they can be used by elsewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83141</commentid>
    <comment_count>1</comment_count>
      <attachid>21669</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-06-12 18:41:57 -0700</bug_when>
    <thetext>Created attachment 21669
Proposed solution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83143</commentid>
    <comment_count>2</comment_count>
      <attachid>21669</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-12 19:42:40 -0700</bug_when>
    <thetext>Comment on attachment 21669
Proposed solution

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83922</commentid>
    <comment_count>3</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-06-19 14:26:14 -0700</bug_when>
    <thetext>Landed in r34665.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21669</attachid>
            <date>2008-06-12 18:41:57 -0700</date>
            <delta_ts>2008-06-12 19:42:40 -0700</delta_ts>
            <desc>Proposed solution</desc>
            <filename>EmptyClients-CL.patch</filename>
            <type>text/plain</type>
            <size>38875</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAJKHJldmlzaW9uIDM0NTE0KQorKysgV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0
Nyw3IEBACiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAKLSNpbmNsdWRlICJTVkdJbWFnZUVtcHR5Q2xpZW50cy5oIgorI2luY2x1ZGUgIkVtcHR5Q2xp
ZW50cy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE5NSwxMiArMTk1LDEyIEBACiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIGlmIChhbGxEYXRhUmVjZWl2ZWQpIHsKLSAg
ICAgICAgc3RhdGljIENocm9tZUNsaWVudCogZHVtbXlDaHJvbWVDbGllbnQgPSBuZXcgU1ZHRW1w
dHlDaHJvbWVDbGllbnQ7Ci0gICAgICAgIHN0YXRpYyBGcmFtZUxvYWRlckNsaWVudCogZHVtbXlG
cmFtZUxvYWRlckNsaWVudCA9ICBuZXcgU1ZHRW1wdHlGcmFtZUxvYWRlckNsaWVudDsKLSAgICAg
ICAgc3RhdGljIEVkaXRvckNsaWVudCogZHVtbXlFZGl0b3JDbGllbnQgPSBuZXcgU1ZHRW1wdHlF
ZGl0b3JDbGllbnQ7Ci0gICAgICAgIHN0YXRpYyBDb250ZXh0TWVudUNsaWVudCogZHVtbXlDb250
ZXh0TWVudUNsaWVudCA9IG5ldyBTVkdFbXB0eUNvbnRleHRNZW51Q2xpZW50OwotICAgICAgICBz
dGF0aWMgRHJhZ0NsaWVudCogZHVtbXlEcmFnQ2xpZW50ID0gbmV3IFNWR0VtcHR5RHJhZ0NsaWVu
dDsKLSAgICAgICAgc3RhdGljIEluc3BlY3RvckNsaWVudCogZHVtbXlJbnNwZWN0b3JDbGllbnQg
PSBuZXcgU1ZHRW1wdHlJbnNwZWN0b3JDbGllbnQ7CisgICAgICAgIHN0YXRpYyBDaHJvbWVDbGll
bnQqIGR1bW15Q2hyb21lQ2xpZW50ID0gbmV3IEVtcHR5Q2hyb21lQ2xpZW50OworICAgICAgICBz
dGF0aWMgRnJhbWVMb2FkZXJDbGllbnQqIGR1bW15RnJhbWVMb2FkZXJDbGllbnQgPSAgbmV3IEVt
cHR5RnJhbWVMb2FkZXJDbGllbnQ7CisgICAgICAgIHN0YXRpYyBFZGl0b3JDbGllbnQqIGR1bW15
RWRpdG9yQ2xpZW50ID0gbmV3IEVtcHR5RWRpdG9yQ2xpZW50OworICAgICAgICBzdGF0aWMgQ29u
dGV4dE1lbnVDbGllbnQqIGR1bW15Q29udGV4dE1lbnVDbGllbnQgPSBuZXcgRW1wdHlDb250ZXh0
TWVudUNsaWVudDsKKyAgICAgICAgc3RhdGljIERyYWdDbGllbnQqIGR1bW15RHJhZ0NsaWVudCA9
IG5ldyBFbXB0eURyYWdDbGllbnQ7CisgICAgICAgIHN0YXRpYyBJbnNwZWN0b3JDbGllbnQqIGR1
bW15SW5zcGVjdG9yQ2xpZW50ID0gbmV3IEVtcHR5SW5zcGVjdG9yQ2xpZW50OwogCiAgICAgICAg
IC8vIEZJWE1FOiBJZiB0aGlzIFNWRyBlbmRzIHVwIGxvYWRpbmcgaXRzZWxmLCB3ZSdsbCBsZWFr
IHRoaXMgRnJhbWUgKGFuZCBhc3NvY2lhdGVkIERPTSAmIHJlbmRlciB0cmVlcykuCiAgICAgICAg
IC8vIFRoZSBDYWNoZSBjb2RlIGRvZXMgbm90IGtub3cgYWJvdXQgQ2FjaGVkSW1hZ2VzIGhvbGRp
bmcgRnJhbWVzIGFuZCB3b24ndCBrbm93IHRvIGJyZWFrIHRoZSBjeWNsZS4KSW5kZXg6IFdlYkNv
cmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRW1wdHlDbGllbnRzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VFbXB0eUNsaWVudHMuaAkocmV2aXNpb24gMzQ1MTQp
CisrKyBXZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZUVtcHR5Q2xpZW50cy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDQwNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEVyaWMg
U2VpZGVsIChlcmljQHdlYmtpdC5vcmcpCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgU1ZHSW1hZ2VFbXB0eUNs
aWVudHNfaAotI2RlZmluZSBTVkdJbWFnZUVtcHR5Q2xpZW50c19oCi0KLSNpZiBFTkFCTEUoU1ZH
KQotCi0jaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCi0jaW5jbHVkZSAiQ29udGV4dE1lbnVDbGll
bnQuaCIKLSNpbmNsdWRlICJEcmFnQ2xpZW50LmgiCi0jaW5jbHVkZSAiRWRpdG9yQ2xpZW50Lmgi
Ci0jaW5jbHVkZSAiRm9jdXNEaXJlY3Rpb24uaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dC5oIgotI2luY2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZl
ci5oIgotCi0vKgotIFRoaXMgZmlsZSBob2xkcyBlbXB0eSBDbGllbnQgc3R1YnMgZm9yIHVzZSBi
eSBTVkdJbWFnZS4KLSBTVkdJbWFnZSBuZWVkcyB0byBjcmVhdGUgYSBkdW1teSBQYWdlLT5GcmFt
ZS0+RnJhbWVWaWV3IHRyZWUgZm9yIHVzZSBpbiBwYXJzaW5nIGFuIFNWR0RvY3VtZW50LgotIFRo
aXMgdHJlZSBkZXBlbmRzIGhlYXZpbHkgb24gQ2xpZW50cyAodXN1YWxseSBwcm92aWRlZCBieSBX
ZWJLaXQgY2xhc3NlcykuCi0gCi0gU1ZHSW1hZ2UgaGFzIG5vIHdheSB0byBhY2Nlc3MgdGhlIGN1
cnJlbnQgUGFnZSAobm9yIHNob3VsZCBpdCwgc2luY2UgSW1hZ2VzIGFyZSBub3QgdGllZCB0byBh
IHBhZ2UpLgotIFNlZSBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTcx
IGZvciBtb3JlIGRpc2N1c3Npb24gb24gdGhpcyBpc3N1ZS4KLSAKLSBJZGVhbGx5LCB3aGVuZXZl
ciB5b3UgY2hhbmdlIGEgQ2xpZW50IGNsYXNzLCB5b3Ugc2hvdWxkIGFkZCBhIHN0dWIgaGVyZS4K
LSBCcml0dGxlLCB5ZXMuICBVbmZvcnR1bmF0ZSwgeWVzLiAgSG9wZWZ1bGx5IHRlbXBvcmFyeS4K
LSovCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgU1ZHRW1wdHlDaHJvbWVDbGllbnQg
OiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5TVkdFbXB0eUNo
cm9tZUNsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKSB7IH0K
LSAgICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKSB7
IH0KLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgeyByZXR1cm4gRmxvYXRSZWN0
KCk7IH0KLSAgICAKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVjdCgpIHsgcmV0dXJuIEZs
b2F0UmVjdCgpOyB9Ci0gICAgCi0gICAgdmlydHVhbCBmbG9hdCBzY2FsZUZhY3RvcigpIHsgcmV0
dXJuIDEuZjsgfQotICAgIAotICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpIHsgfQotICAgIHZpcnR1
YWwgdm9pZCB1bmZvY3VzKCkgeyB9Ci0gICAgCi0gICAgdmlydHVhbCBib29sIGNhblRha2VGb2N1
cyhGb2N1c0RpcmVjdGlvbikgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGFr
ZUZvY3VzKEZvY3VzRGlyZWN0aW9uKSB7IH0KLSAgICAKLSAgICB2aXJ0dWFsIFBhZ2UqIGNyZWF0
ZVdpbmRvdyhGcmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0
dXJlcyYpIHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2hvdygpIHsgfQotICAgIAot
ICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5Nb2RhbCgpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmly
dHVhbCB2b2lkIHJ1bk1vZGFsKCkgeyB9Ci0gICAgCi0gICAgdmlydHVhbCB2b2lkIHNldFRvb2xi
YXJzVmlzaWJsZShib29sKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgdG9vbGJhcnNWaXNpYmxlKCkg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVmlz
aWJsZShib29sKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc3RhdHVzYmFyVmlzaWJsZSgpIHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgCi0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbGJhcnNWaXNpYmxl
KGJvb2wpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxiYXJzVmlzaWJsZSgpIHsgcmV0dXJu
IGZhbHNlOyB9Ci0gICAgCi0gICAgdmlydHVhbCB2b2lkIHNldE1lbnViYXJWaXNpYmxlKGJvb2wp
IHsgfQotICAgIHZpcnR1YWwgYm9vbCBtZW51YmFyVmlzaWJsZSgpIHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgCi0gICAgdmlydHVhbCB2b2lkIHNldFJlc2l6YWJsZShib29sKSB7IH0KLSAgICAKLSAg
ICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IHVuc2lnbmVkIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKSB7IH0KLSAg
ICAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUqIGZyYW1lKSB7IHJldHVybiB0cnVlOyB9
Ci0gICAgCi0gICAgdmlydHVhbCB2b2lkIGNsb3NlV2luZG93U29vbigpIHsgfQotICAgIAotICAg
IHZpcnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqLCBjb25zdCBTdHJpbmcmKSB7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBT
dHJpbmcmKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0
UHJvbXB0KEZyYW1lKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1
bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBi
b29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIAot
ICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYpIHsgfQotICAg
IAotICAgIHZpcnR1YWwgYm9vbCB0YWJzVG9MaW5rcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgCi0gICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QgeyBy
ZXR1cm4gSW50UmVjdCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGFkZFRvRGlydHlSZWdpb24oY29u
c3QgSW50UmVjdCYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxCYWNraW5nU3RvcmUoaW50
IGR4LCBpbnQgZHksIGNvbnN0IEludFJlY3QmIHNjcm9sbFZpZXdSZWN0LCBjb25zdCBJbnRSZWN0
JiBjbGlwUmVjdCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZSgpIHsg
fQotCi0gICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRl
c3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSB7IH0KLSAgICAKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcmKSB7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBw
cmludChGcmFtZSopIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90
YShGcmFtZSosIGNvbnN0IFN0cmluZyYpIHsgfQotfTsKLQotY2xhc3MgU1ZHRW1wdHlGcmFtZUxv
YWRlckNsaWVudCA6IHB1YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgdmly
dHVhbCB+U1ZHRW1wdHlGcmFtZUxvYWRlckNsaWVudCgpIHsgIH0KLSAgICB2aXJ0dWFsIHZvaWQg
ZnJhbWVMb2FkZXJEZXN0cm95ZWQoKSB7IH0KLSAgICAKLSAgICB2aXJ0dWFsIGJvb2wgaGFzV2Vi
VmlldygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0gLy8gbWFpbmx5IGZvciBhc3NlcnRpb25zCi0g
ICAgdmlydHVhbCBib29sIGhhc0ZyYW1lVmlldygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0gLy8g
ZGl0dG8KLSAgICAKLSAgICB2aXJ0dWFsIHZvaWQgbWFrZVJlcHJlc2VudGF0aW9uKERvY3VtZW50
TG9hZGVyKikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0KCkgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIGZvcmNlTGF5b3V0Rm9yTm9uSFRNTCgpIHsgfQotICAgIAotICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVIaXN0b3J5Rm9yQ29tbWl0KCkgeyB9Ci0gICAgCi0gICAgdmlydHVhbCB2b2lk
IHVwZGF0ZUhpc3RvcnlGb3JCYWNrRm9yd2FyZE5hdmlnYXRpb24oKSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlSGlzdG9yeUZvclJlbG9hZCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVIaXN0b3J5Rm9yU3RhbmRhcmRMb2FkKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUhp
c3RvcnlGb3JJbnRlcm5hbExvYWQoKSB7IH0KLSAgICAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
SGlzdG9yeUFmdGVyQ2xpZW50UmVkaXJlY3QoKSB7IH0KLSAgICAKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0Q29waWVzT25TY3JvbGwoKSB7IH0KLSAgICAgICAgCi0gICAgdmlydHVhbCB2b2lkIGRldGFj
aGVkRnJvbVBhcmVudDIoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoZWRGcm9tUGFyZW50
MygpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQ0KCkgeyB9Ci0gICAg
Ci0gICAgdmlydHVhbCB2b2lkIGRvd25sb2FkKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpIHsgfQotICAgIAotICAgIHZpcnR1YWwgdm9pZCBhc3NpZ25JZGVudGlmaWVyVG9Jbml0aWFs
UmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFNlbmRS
ZXF1ZXN0KERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2Fu
Y2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRMb2Fk
ZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBsZW5ndGhSZWNlaXZlZCkgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhEb2N1bWVudExvYWRlcios
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
RGlkRmFpbExvYWRpbmcoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IFJlc291cmNlRXJyb3ImKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hEaWRM
b2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgaW50IGxlbmd0aCkgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRIYW5kbGVPbmxvYWRF
dmVudHMoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVk
aXJlY3RGb3JQcm92aXNpb25hbExvYWQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hE
aWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdp
bGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgS1VSTCYsIGRvdWJsZSBpbnRlcnZhbCwgZG91
YmxlIGZpcmVEYXRlKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VMb2Nh
dGlvbldpdGhpblBhZ2UoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsQ2xvc2Uo
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlSWNvbigpIHsgfQotICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKCkgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUp
IHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENvbW1pdExvYWQoKSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNl
RXJyb3ImKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBS
ZXNvdXJjZUVycm9yJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmluaXNoRG9j
dW1lbnRMb2FkKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZCgp
IHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpcnN0TGF5b3V0KCkgeyB9Ci0gICAg
Ci0gICAgdmlydHVhbCBGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKCkgeyByZXR1cm4gMDsgfQot
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNob3coKSB7IH0KLSAgICAKLSAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JNSU1FVHlwZShGcmFtZVBvbGljeUZ1bmN0aW9uLCBj
b25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVQ
b2xpY3lGdW5jdGlvbiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKEZyYW1lUG9saWN5RnVuY3Rpb24s
IGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSB7IH0KLSAgICAKLSAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBvbGljeShjb25zdCBSZXNvdXJjZUVycm9y
JikgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShGcmFtZVBv
bGljeUZ1bmN0aW9uLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4pIHsgfQotICAgIAotICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERpZExvYWRNYWluUmVzb3VyY2UoRG9jdW1lbnRMb2FkZXIqKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgcmV2ZXJ0VG9Qcm92aXNpb25hbFN0YXRlKERvY3VtZW50TG9hZGVy
KikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldE1haW5Eb2N1bWVudEVycm9yKERvY3VtZW50TG9h
ZGVyKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIHsgfQotICAgIAotICAgIHZpcnR1YWwgdm9pZCB3
aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hh
bmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcG9zdFByb2dyZXNz
U3RhcnRlZE5vdGlmaWNhdGlvbigpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBwb3N0UHJvZ3Jlc3NF
c3RpbWF0ZUNoYW5nZWROb3RpZmljYXRpb24oKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcG9zdFBy
b2dyZXNzRmluaXNoZWROb3RpZmljYXRpb24oKSB7IH0KLSAgICAKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0TWFpbkZyYW1lRG9jdW1lbnRSZWFkeShib29sKSB7IH0KLSAgICAKLSAgICB2aXJ0dWFsIHZv
aWQgc3RhcnREb3dubG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSB7IH0KLSAgICAKLSAgICB2
aXJ0dWFsIHZvaWQgd2lsbENoYW5nZVRpdGxlKERvY3VtZW50TG9hZGVyKikgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIGRpZENoYW5nZVRpdGxlKERvY3VtZW50TG9hZGVyKikgeyB9Ci0gICAgCi0gICAg
dmlydHVhbCB2b2lkIGNvbW1pdHRlZExvYWQoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBjaGFyKiwg
aW50KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZmluaXNoZWRMb2FkaW5nKERvY3VtZW50TG9hZGVy
KikgeyB9Ci0gICAgCi0gICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYpIHsgcmV0dXJuIFJlc291cmNlRXJyb3IoKTsgfQotICAgIHZp
cnR1YWwgUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jikg
eyByZXR1cm4gUmVzb3VyY2VFcnJvcigpOyB9Ci0gICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGNh
bm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSB7IHJldHVybiBSZXNvdXJj
ZUVycm9yKCk7IH0KLSAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgaW50ZXJydXB0Rm9yUG9saWN5
Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgeyByZXR1cm4gUmVzb3VyY2VFcnJv
cigpOyB9Ci0gICAgCi0gICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlw
ZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSB7IHJldHVybiBSZXNvdXJjZUVycm9yKCk7
IH0KLSAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmKSB7IHJldHVybiBSZXNvdXJjZUVycm9yKCk7IH0KLSAgICAKLSAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYpIHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgICAgIAotICAgIHZpcnR1YWwgYm9vbCBjYW5IYW5kbGVSZXF1ZXN0
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmly
dHVhbCBib29sIGNhblNob3dNSU1FVHlwZShjb25zdCBTdHJpbmcmIE1JTUVUeXBlKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCByZXByZXNlbnRhdGlvbkV4aXN0c0Zv
clVSTFNjaGVtZShjb25zdCBTdHJpbmcmIFVSTFNjaGVtZSkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIFN0cmluZyBnZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVtZShjb25z
dCBTdHJpbmcmIFVSTFNjaGVtZSkgY29uc3QgeyByZXR1cm4gIiI7IH0KLSAgICAKLSAgICB2aXJ0
dWFsIHZvaWQgZnJhbWVMb2FkQ29tcGxldGVkKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHJlc3Rv
cmVWaWV3U3RhdGUoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcHJvdmlzaW9uYWxMb2FkU3RhcnRl
ZCgpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRUcmVhdFVSTEFzU2FtZUFzQ3VycmVudChj
b25zdCBLVVJMJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYWRk
SGlzdG9yeUl0ZW1Gb3JGcmFnbWVudFNjcm9sbCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRG
aW5pc2hMb2FkKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEYXRhU291cmNlUmVw
bGFjZW1lbnQoKSB7IH0KLSAgICAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RG9jdW1lbnRMb2Fk
ZXI+IGNyZWF0ZURvY3VtZW50TG9hZGVyKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgU3Vic3RpdHV0ZURhdGEmIHN1YnN0aXR1dGVEYXRhKSB7IHJldHVybiBuZXcgRG9jdW1l
bnRMb2FkZXIocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEpOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNl
dFRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IEtVUkwmKSB7IH0KLSAgICAKLSAgICB2
aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgS1VSTCYpIHsgcmV0dXJuICIiOyB9Ci0KLSAg
ICB2aXJ0dWFsIHZvaWQgc2F2ZVBsYXRmb3JtRGF0YVRvQ2FjaGVkUGFnZShDYWNoZWRQYWdlKikg
eyB9Ci0gICAgdmlydHVhbCB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZyb21DYWNoZWRQYWdl
KENhY2hlZFBhZ2UqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVk
Rm9yTmV3UGFnZSgpIHsgfSAgICAKLQotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0
b3J5KGNvbnN0IEtVUkwmKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkR29Ub0hpc3RvcnlJ
dGVtKEhpc3RvcnlJdGVtKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgc2F2ZVZpZXdTdGF0ZVRvSXRlbShIaXN0b3J5SXRlbSopIHsgfQotICAgIHZpcnR1YWwgYm9v
bCBjYW5DYWNoZVBhZ2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotCi0gICAgdmlydHVhbCBQ
YXNzUmVmUHRyPEZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NT
Y3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCkgeyByZXR1cm4gMDsg
fQotICAgIHZpcnR1YWwgV2lkZ2V0KiBjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYsRWxlbWVu
dCosIGNvbnN0IEtVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCkgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgV2lk
Z2V0KiBjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmLCBFbGVtZW50KiwgY29u
c3QgS1VSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKSB7
IHJldHVybiAwOyB9Ci0gICAgCi0gICAgdmlydHVhbCBPYmplY3RDb250ZW50VHlwZSBvYmplY3RD
b250ZW50VHlwZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIHsgcmV0
dXJuIE9iamVjdENvbnRlbnRUeXBlKCk7IH0KLSAgICB2aXJ0dWFsIFN0cmluZyBvdmVycmlkZU1l
ZGlhVHlwZSgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQg
cmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0Kikge30KLSAgICB2aXJ0dWFsIHZvaWQgd2luZG93
T2JqZWN0Q2xlYXJlZCgpIHt9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFBlcmZvcm1GaXJzdE5hdmln
YXRpb24oKSBjb25zdCB7fQotCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlm
aWNhdGlvbihib29sIGxpc3Rlbikge30KLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFs
IE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNoZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwg
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBOU0NhY2hlZFVSTFJlc3BvbnNlKiByZXNwb25zZSkg
Y29uc3QgeyByZXR1cm4gcmVzcG9uc2U7IH0KLSNlbmRpZgotCi19OwotCi1jbGFzcyBTVkdFbXB0
eUVkaXRvckNsaWVudCA6IHB1YmxpYyBFZGl0b3JDbGllbnQgewotcHVibGljOgotICAgIHZpcnR1
YWwgflNWR0VtcHR5RWRpdG9yQ2xpZW50KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0
cm95ZWQoKSB7IH0KLSAgICAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoUmFu
Z2UqKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTaG93RGVsZXRl
SW50ZXJmYWNlKEhUTUxFbGVtZW50KikgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0gCi0gICAgdmly
dHVhbCBib29sIGlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFs
c2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKSB7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlR3JhbW1hckNoZWNraW5nKCkgeyB9Ci0g
ICAgdmlydHVhbCBpbnQgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKSB7IHJldHVybiAtMTsgfQot
ICAgIAotICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RXb3JkQmVmb3JlTWVudUV2ZW50KCkgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0YWJsZSgpIHsgcmV0dXJuIGZhbHNl
OyB9Ci0gICAgCi0gICAgdmlydHVhbCBib29sIHNob3VsZEJlZ2luRWRpdGluZyhSYW5nZSopIHsg
cmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZEVuZEVkaXRpbmcoUmFuZ2Uq
KSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnROb2RlKE5v
ZGUqLCBSYW5nZSosIEVkaXRvckluc2VydEFjdGlvbikgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAv
LyAgdmlydHVhbCBib29sIHNob3VsZEluc2VydE5vZGUoTm9kZSosIFJhbmdlKiByZXBsYWNpbmdS
YW5nZSwgV2ViVmlld0luc2VydEFjdGlvbikgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkSW5zZXJ0VGV4dChjb25zdCBTdHJpbmcmLCBSYW5nZSosIEVkaXRvckluc2Vy
dEFjdGlvbikgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdl
U2VsZWN0ZWRSYW5nZShSYW5nZSogZnJvbVJhbmdlLCBSYW5nZSogdG9SYW5nZSwgRUFmZmluaXR5
LCBib29sIHN0aWxsU2VsZWN0aW5nKSB7IHJldHVybiBmYWxzZTsgfQotCi0gICAgdmlydHVhbCBi
b29sIHNob3VsZEFwcGx5U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiosIFJhbmdlKikgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTW92ZVJhbmdlQWZ0ZXJEZWxldGUo
UmFuZ2UqLCBSYW5nZSopIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgLy8gIHZpcnR1YWwgYm9vbCBz
aG91bGRDaGFuZ2VUeXBpbmdTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiBmcm9tU3R5bGUsIENT
U1N0eWxlRGVjbGFyYXRpb24qIHRvU3R5bGUpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgLy8gIHZp
cnR1YWwgYm9vbCBkb0NvbW1hbmRCeVNlbGVjdG9yKFNFTCBzZWxlY3RvcikgeyByZXR1cm4gZmFs
c2U7IH0KLSAgICAvLwotICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpbkVkaXRpbmcoKSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKCkgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIHJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24oKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkRW5kRWRpdGluZygpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRXcml0ZVNlbGVjdGlvblRv
UGFzdGVib2FyZCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRTZWxlY3Rpb25UeXBlc0Zv
clBhc3RlYm9hcmQoKSB7IH0KLSAgICAvLyAgdmlydHVhbCB2b2lkIHdlYlZpZXdEaWRDaGFuZ2VU
eXBpbmdTdHlsZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24geyB9Ci0gICAgLy8gIHZp
cnR1YWwgdm9pZCB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOihOU05vdGlmaWNhdGlvbiAqKW5v
dGlmaWNhdGlvbiB7IH0KLSAgICAvLyAgdmlydHVhbCBOU1VuZG9NYW5hZ2VyKiB1bmRvTWFuYWdl
ckZvcldlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHsgcmV0dXJuIDA7IH0KLSAgICAKLSAgICB2
aXJ0dWFsIHZvaWQgcmVnaXN0ZXJDb21tYW5kRm9yVW5kbyhQYXNzUmVmUHRyPEVkaXRDb21tYW5k
PikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQ29tbWFuZEZvclJlZG8oUGFzc1JlZlB0
cjxFZGl0Q29tbWFuZD4pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBjbGVhclVuZG9SZWRvT3BlcmF0
aW9ucygpIHsgfQotICAgIAotICAgIHZpcnR1YWwgYm9vbCBjYW5VbmRvKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2FuUmVkbygpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgCi0gICAgdmlydHVhbCB2b2lkIHVuZG8oKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgcmVkbygpIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoS2V5
Ym9hcmRFdmVudCopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVJbnB1dE1ldGhvZEtleWRv
d24oS2V5Ym9hcmRFdmVudCopIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIHRleHRGaWVsZERpZEJl
Z2luRWRpdGluZyhFbGVtZW50KikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHRleHRGaWVsZERpZEVu
ZEVkaXRpbmcoRWxlbWVudCopIHsgfQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0RGlkQ2hhbmdlSW5U
ZXh0RmllbGQoRWxlbWVudCopIHsgfQotICAgIHZpcnR1YWwgYm9vbCBkb1RleHRGaWVsZENvbW1h
bmRGcm9tRXZlbnQoRWxlbWVudCosIEtleWJvYXJkRXZlbnQqKSB7IHJldHVybiBmYWxzZTsgfQot
ICAgIHZpcnR1YWwgdm9pZCB0ZXh0V2lsbEJlRGVsZXRlZEluVGV4dEZpZWxkKEVsZW1lbnQqKSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dERpZENoYW5nZUluVGV4dEFyZWEoRWxlbWVudCopIHsg
fQotICAgIAotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIHZvaWQgbWFya2VkVGV4dEFi
YW5kb25lZChGcmFtZSopIHsgfQotICAgIAotICAgIHZpcnR1YWwgTlNTdHJpbmcqIHVzZXJWaXNp
YmxlU3RyaW5nKE5TVVJMKikgeyByZXR1cm4gMDsgfQotI2lmZGVmIEJVSUxESU5HX09OX1RJR0VS
Ci0gICAgdmlydHVhbCBOU0FycmF5KiBwYXN0ZWJvYXJkVHlwZXNGb3JTZWxlY3Rpb24oRnJhbWUq
KSB7IHJldHVybiAwOyB9Ci0jZW5kaWYKLSNlbmRpZgotICAgIHZpcnR1YWwgdm9pZCBpZ25vcmVX
b3JkSW5TcGVsbERvY3VtZW50KGNvbnN0IFN0cmluZyYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBs
ZWFybldvcmQoY29uc3QgU3RyaW5nJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNoZWNrU3BlbGxp
bmdPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCBsZW5ndGgsIGludCogbWlzc3BlbGxpbmdMb2Nh
dGlvbiwgaW50KiBtaXNzcGVsbGluZ0xlbmd0aCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNoZWNr
R3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgVmVjdG9yPEdyYW1tYXJE
ZXRhaWw+JiwgaW50KiBiYWRHcmFtbWFyTG9jYXRpb24sIGludCogYmFkR3JhbW1hckxlbmd0aCkg
eyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhj
b25zdCBTdHJpbmcmLCBjb25zdCBHcmFtbWFyRGV0YWlsJikgeyB9Ci0gICAgdmlydHVhbCB2b2lk
IHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJikgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdykgeyB9Ci0gICAgdmlydHVh
bCBib29sIHNwZWxsaW5nVUlJc1Nob3dpbmcoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1
YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYg
Z3Vlc3NlcykgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBl
bmFibGVkKSB7IH0KLSAgCi0gICAgCi19OwotCi1jbGFzcyBTVkdFbXB0eUNvbnRleHRNZW51Q2xp
ZW50IDogcHVibGljIENvbnRleHRNZW51Q2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5T
VkdFbXB0eUNvbnRleHRNZW51Q2xpZW50KCkgeyAgfQotICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0
TWVudURlc3Ryb3llZCgpIHsgfQotICAgIAotICAgIHZpcnR1YWwgUGxhdGZvcm1NZW51RGVzY3Jp
cHRpb24gZ2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMoQ29udGV4dE1lbnUqKSB7IHJldHVy
biAwOyB9Ci0gICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRN
ZW51SXRlbSosIGNvbnN0IENvbnRleHRNZW51KikgeyB9Ci0gICAgCi0gICAgdmlydHVhbCB2b2lk
IGRvd25sb2FkVVJMKGNvbnN0IEtVUkwmIHVybCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNvcHlJ
bWFnZVRvQ2xpcGJvYXJkKGNvbnN0IEhpdFRlc3RSZXN1bHQmKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgc2VhcmNoV2l0aEdvb2dsZShjb25zdCBGcmFtZSopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBs
b29rVXBJbkRpY3Rpb25hcnkoRnJhbWUqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc3BlYWsoY29u
c3QgU3RyaW5nJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BTcGVha2luZygpIHsgfQotCi0j
aWYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgdm9pZCBzZWFyY2hXaXRoU3BvdGxpZ2h0KCkg
eyB9Ci0jZW5kaWYKLX07Ci0KLWNsYXNzIFNWR0VtcHR5RHJhZ0NsaWVudCA6IHB1YmxpYyBEcmFn
Q2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5TVkdFbXB0eURyYWdDbGllbnQoKSB7fQot
ICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVz
dGluYXRpb25BY3Rpb24sIERyYWdEYXRhKikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxQZXJm
b3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uLCBjb25zdCBJbnRQb2ludCYsIENs
aXBib2FyZCopIHsgfQotICAgIHZpcnR1YWwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGFjdGlvbk1h
c2tGb3JEcmFnKERyYWdEYXRhKikgeyByZXR1cm4gRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTm9uZTsg
fQotICAgIHZpcnR1YWwgRHJhZ1NvdXJjZUFjdGlvbiBkcmFnU291cmNlQWN0aW9uTWFza0ZvclBv
aW50KGNvbnN0IEludFBvaW50JikgeyByZXR1cm4gRHJhZ1NvdXJjZUFjdGlvbk5vbmU7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmLCBj
b25zdCBJbnRQb2ludCYsIENsaXBib2FyZCosIEZyYW1lKiwgYm9vbCkgeyB9Ci0gICAgdmlydHVh
bCBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRm9yTGluayhLVVJMJiwgY29uc3QgU3RyaW5n
JiBsYWJlbCwgRnJhbWUqKSB7IHJldHVybiAwOyB9IAotICAgIHZpcnR1YWwgdm9pZCBkcmFnQ29u
dHJvbGxlckRlc3Ryb3llZCgpIHsgfQotfTsKLQotY2xhc3MgU1ZHRW1wdHlJbnNwZWN0b3JDbGll
bnQgOiBwdWJsaWMgSW5zcGVjdG9yQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5TVkdF
bXB0eUluc3BlY3RvckNsaWVudCgpIHt9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdG9yRGVz
dHJveWVkKCkge307Ci0KLSAgICB2aXJ0dWFsIFBhZ2UqIGNyZWF0ZVBhZ2UoKSB7IHJldHVybiAw
OyB9OwotCi0gICAgdmlydHVhbCBTdHJpbmcgbG9jYWxpemVkU3RyaW5nc1VSTCgpIHsgcmV0dXJu
IFN0cmluZygpOyB9OwotCi0gICAgdmlydHVhbCB2b2lkIHNob3dXaW5kb3coKSB7fTsKLSAgICB2
aXJ0dWFsIHZvaWQgY2xvc2VXaW5kb3coKSB7fTsKLQotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hX
aW5kb3coKSB7fTsKLSAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoV2luZG93KCkge307Ci0KLSAgICB2
aXJ0dWFsIHZvaWQgaGlnaGxpZ2h0KE5vZGUqKSB7fTsKLSAgICB2aXJ0dWFsIHZvaWQgaGlkZUhp
Z2hsaWdodCgpIHt9OwotICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0
IFN0cmluZyYgbmV3VVJMKSB7fTsKLX07Ci0gICAgCi19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoU1ZH
KQotCi0jZW5kaWYgLy8gU1ZHSW1hZ2VFbXB0eUNsaWVudHNfaAotCkluZGV4OiBXZWJDb3JlL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMzQ1MTQp
CisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisy
MDA4LTA2LTEyICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAxOTUyOSA6
IEVtcHR5IGNsaWVudHMgbmVlZCB0byBiZSByZWZhY3RvcmVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUyOQorCisgICAgICAgIC0gU1ZHSW1hZ2VF
bXB0eUNsaWVudHMnIHJlZmFjdG9yaW5nIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gdXNlIHRoZW0g
Zm9yIG90aGVyCisgICAgICAgIGVsZW1lbnRzLgorCisgICAgICAgIC0gVHJpbW1lZCBlbXB0eSBz
cGFjZXMgdGhhdCB3ZXJlIHBvaW50ZWQgb3V0IGJ5IGdpdC4KKworICAgICAgICAqIGxvYWRlci9F
bXB0eUNsaWVudHMuaDogQ29waWVkIGZyb20gV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VF
bXB0eUNsaWVudHMuaC4KKworICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6On5F
bXB0eUNocm9tZUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xp
ZW50Ojp+RW1wdHlGcmFtZUxvYWRlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUZy
YW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50Ojp+RW1wdHlFZGl0b3JDbGllbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNvbnRleHRNZW51Q2xpZW50Ojp+RW1wdHlDb250
ZXh0TWVudUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eURyYWdDbGllbnQ6On5FbXB0
eURyYWdDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlEcmFnQ2xpZW50OjpjcmVhdGVE
cmFnSW1hZ2VGb3JMaW5rKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5SW5zcGVjdG9yQ2xpZW50
Ojp+RW1wdHlJbnNwZWN0b3JDbGllbnQpOgorICAgICAgICBSZW5hbWVkIFNWR0VtcHR5KkNsaWVu
dCBjbGFzc2VzIHRvIEVtcHR5KkNsaWVudC4KKworICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJ
bWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6ZGF0YUNoYW5nZWQpOgorICAg
ICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZUVtcHR5Q2xpZW50cy5oOiBSZW1vdmVkLgorCiAy
MDA4LTA2LTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUnVi
YmVyc3RhbXBlZCBieSBNYWNpZWouCkluZGV4OiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24g
MzQ1MTQpCisrKyBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpA
QCAtMjAsOTggKzIwLDEwMCBAQAogICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQogICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFNWR0lt
YWdlRW1wdHlDbGllbnRzX2gKLSNkZWZpbmUgU1ZHSW1hZ2VFbXB0eUNsaWVudHNfaAorI2lmbmRl
ZiBFbXB0eUNsaWVudHNfaAorI2RlZmluZSBFbXB0eUNsaWVudHNfaAogCi0jaWYgRU5BQkxFKFNW
RykKLQogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xp
ZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEcmFnQ2xpZW50
LmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAj
aW5jbHVkZSAiRm9jdXNEaXJlY3Rpb24uaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5o
IgogI2luY2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgorI2luY2x1ZGUgIlJlc291cmNlRXJyb3Iu
aCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKIAogLyoKLSBUaGlzIGZpbGUgaG9sZHMgZW1w
dHkgQ2xpZW50IHN0dWJzIGZvciB1c2UgYnkgU1ZHSW1hZ2UuCi0gU1ZHSW1hZ2UgbmVlZHMgdG8g
Y3JlYXRlIGEgZHVtbXkgUGFnZS0+RnJhbWUtPkZyYW1lVmlldyB0cmVlIGZvciB1c2UgaW4gcGFy
c2luZyBhbiBTVkdEb2N1bWVudC4KKyBUaGlzIGZpbGUgaG9sZHMgZW1wdHkgQ2xpZW50IHN0dWJz
IGZvciB1c2UgYnkgV2ViQ29yZS4KKyBWaWV3bGVzcyBlbGVtZW50IG5lZWRzIHRvIGNyZWF0ZSBh
IGR1bW15IFBhZ2UtPkZyYW1lLT5GcmFtZVZpZXcgdHJlZSBmb3IgdXNlIGluIHBhcnNpbmcgb3Ig
ZXhlY3V0aW5nIEphdmFTY3JpcHQuCiAgVGhpcyB0cmVlIGRlcGVuZHMgaGVhdmlseSBvbiBDbGll
bnRzICh1c3VhbGx5IHByb3ZpZGVkIGJ5IFdlYktpdCBjbGFzc2VzKS4KLSAKLSBTVkdJbWFnZSBo
YXMgbm8gd2F5IHRvIGFjY2VzcyB0aGUgY3VycmVudCBQYWdlIChub3Igc2hvdWxkIGl0LCBzaW5j
ZSBJbWFnZXMgYXJlIG5vdCB0aWVkIHRvIGEgcGFnZSkuCi0gU2VlIGh0dHA6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTU5NzEgZm9yIG1vcmUgZGlzY3Vzc2lvbiBvbiB0aGlzIGlz
c3VlLgotIAorCisgVGhpcyBmaWxlIHdhcyBmaXJzdCBjcmVhdGVkIGZvciBTVkdJbWFnZSBhcyBp
dCBoYWQgbm8gd2F5IHRvIGFjY2VzcyB0aGUgY3VycmVudCBQYWdlIChub3Igc2hvdWxkIGl0LAor
IHNpbmNlIEltYWdlcyBhcmUgbm90IHRpZWQgdG8gYSBwYWdlKS4KKyBTZWUgaHR0cDovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk3MSBmb3IgdGhlIG9yaWdpbmFsIGRpc2N1c3Np
b24gYWJvdXQgdGhpcyBmaWxlLgorCiAgSWRlYWxseSwgd2hlbmV2ZXIgeW91IGNoYW5nZSBhIENs
aWVudCBjbGFzcywgeW91IHNob3VsZCBhZGQgYSBzdHViIGhlcmUuCiAgQnJpdHRsZSwgeWVzLiAg
VW5mb3J0dW5hdGUsIHllcy4gIEhvcGVmdWxseSB0ZW1wb3JhcnkuCiAqLwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIFNWR0VtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNs
aWVudCB7CitjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewog
cHVibGljOgotICAgIHZpcnR1YWwgflNWR0VtcHR5Q2hyb21lQ2xpZW50KCkgeyB9CisgICAgdmly
dHVhbCB+RW1wdHlDaHJvbWVDbGllbnQoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVz
dHJveWVkKCkgeyB9Ci0gICAgCisKICAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25z
dCBGbG9hdFJlY3QmKSB7IH0KICAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgeyBy
ZXR1cm4gRmxvYXRSZWN0KCk7IH0KLSAgICAKKwogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VS
ZWN0KCkgeyByZXR1cm4gRmxvYXRSZWN0KCk7IH0KLSAgICAKKwogICAgIHZpcnR1YWwgZmxvYXQg
c2NhbGVGYWN0b3IoKSB7IHJldHVybiAxLmY7IH0KLSAgICAKKwogICAgIHZpcnR1YWwgdm9pZCBm
b2N1cygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCkgeyB9Ci0gICAgCisKICAgICB2
aXJ0dWFsIGJvb2wgY2FuVGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9uKSB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24pIHsgfQotICAgIAor
CiAgICAgdmlydHVhbCBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxvYWRS
ZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmKSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVh
bCB2b2lkIHNob3coKSB7IH0KLSAgICAKKwogICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5Nb2RhbCgp
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsKCkgeyB9Ci0gICAg
CisKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wpIHsgfQogICAgIHZp
cnR1YWwgYm9vbCB0b29sYmFyc1Zpc2libGUoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIAorCiAg
ICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclZpc2libGUoYm9vbCkgeyB9CiAgICAgdmlydHVh
bCBib29sIHN0YXR1c2JhclZpc2libGUoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIAorCiAgICAg
dmlydHVhbCB2b2lkIHNldFNjcm9sbGJhcnNWaXNpYmxlKGJvb2wpIHsgfQogICAgIHZpcnR1YWwg
Ym9vbCBzY3JvbGxiYXJzVmlzaWJsZSgpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgCisKICAgICB2
aXJ0dWFsIHZvaWQgc2V0TWVudWJhclZpc2libGUoYm9vbCkgeyB9CiAgICAgdmlydHVhbCBib29s
IG1lbnViYXJWaXNpYmxlKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAKKwogICAgIHZpcnR1YWwg
dm9pZCBzZXRSZXNpemFibGUoYm9vbCkgeyB9Ci0gICAgCisKICAgICB2aXJ0dWFsIHZvaWQgYWRk
TWVzc2FnZVRvQ29uc29sZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGludCBsaW5l
TnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKSB7IH0KLSAgICAKKwogICAgIHZpcnR1YWwg
Ym9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBGcmFtZSogZnJhbWUpIHsgcmV0dXJuIHRydWU7IH0KLSAgICAKKwogICAgIHZp
cnR1YWwgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSB7IH0KLSAgICAKKwogICAgIHZpcnR1YWwgdm9p
ZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqLCBjb25zdCBTdHJpbmcmKSB7IH0KICAgICB2aXJ0
dWFsIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmKSB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1l
KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3Ry
aW5nJiByZXN1bHQpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZElu
dGVycnVwdEphdmFTY3JpcHQoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIAorCiAgICAgdmlydHVh
bCB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgeyB9Ci0gICAgCisKICAgICB2
aXJ0dWFsIGJvb2wgdGFic1RvTGlua3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIAor
CiAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QgeyByZXR1cm4g
SW50UmVjdCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGFkZFRvRGlydHlSZWdpb24oY29uc3QgSW50
UmVjdCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxCYWNraW5nU3RvcmUoaW50IGR4LCBp
bnQgZHksIGNvbnN0IEludFJlY3QmIHNjcm9sbFZpZXdSZWN0LCBjb25zdCBJbnRSZWN0JiBjbGlw
UmVjdCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZSgpIHsgfQogCiAg
ICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1
bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSB7IH0KLSAgICAKKwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIHByaW50
KEZyYW1lKikgeyB9CkBAIC0xMTksMzUgKzEyMSwzNSBAQAogICAgIHZpcnR1YWwgdm9pZCBleGNl
ZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmKSB7IH0KIH07CiAKLWNsYXNz
IFNWR0VtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewor
Y2xhc3MgRW1wdHlGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7
CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+U1ZHRW1wdHlGcmFtZUxvYWRlckNsaWVudCgpIHsgIH0K
KyAgICB2aXJ0dWFsIH5FbXB0eUZyYW1lTG9hZGVyQ2xpZW50KCkgeyAgfQogICAgIHZpcnR1YWwg
dm9pZCBmcmFtZUxvYWRlckRlc3Ryb3llZCgpIHsgfQotICAgIAorCiAgICAgdmlydHVhbCBib29s
IGhhc1dlYlZpZXcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9IC8vIG1haW5seSBmb3IgYXNzZXJ0
aW9ucwogICAgIHZpcnR1YWwgYm9vbCBoYXNGcmFtZVZpZXcoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9IC8vIGRpdHRvCi0gICAgCisKICAgICB2aXJ0dWFsIHZvaWQgbWFrZVJlcHJlc2VudGF0aW9u
KERvY3VtZW50TG9hZGVyKikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0KCkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0Rm9yTm9uSFRNTCgpIHsgfQotICAgIAorCiAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUhpc3RvcnlGb3JDb21taXQoKSB7IH0KLSAgICAKKwogICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVIaXN0b3J5Rm9yQmFja0ZvcndhcmROYXZpZ2F0aW9uKCkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUhpc3RvcnlGb3JSZWxvYWQoKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlSGlzdG9yeUZvclN0YW5kYXJkTG9hZCgpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVIaXN0b3J5Rm9ySW50ZXJuYWxMb2FkKCkgeyB9Ci0gICAgCisKICAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlSGlzdG9yeUFmdGVyQ2xpZW50UmVkaXJlY3QoKSB7IH0KLSAgICAKKwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb3BpZXNPblNjcm9sbCgpIHsgfQotICAgICAgICAKKwogICAg
IHZpcnR1YWwgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQyKCkgeyB9CiAgICAgdmlydHVhbCB2b2lk
IGRldGFjaGVkRnJvbVBhcmVudDMoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoZWRGcm9t
UGFyZW50NCgpIHsgfQotICAgIAorCiAgICAgdmlydHVhbCB2b2lkIGRvd25sb2FkKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgfQotICAgIAorCiAgICAgdmlydHVhbCB2b2lkIGFz
c2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlZGlyZWN0UmVzcG9uc2UpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSB7IH0KQEAgLTE1Nyw3
ICsxNTksNyBAQAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcoRG9j
dW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpZEZhaWxMb2FkaW5nKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJikgeyB9CiAgICAgdmlydHVhbCBib29s
IGRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKERvY3VtZW50TG9hZGVyKiwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGludCBsZW5n
dGgpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgCisKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hE
aWRIYW5kbGVPbmxvYWRFdmVudHMoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRS
ZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpIHsgfQpAQCAtMTczLDU0ICsx
NzUsNTQgQEAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hEb2N1bWVudExvYWQo
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmlyc3RMYXlvdXQoKSB7IH0KLSAgICAKKwogICAgIHZp
cnR1YWwgRnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZSgpIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hTaG93KCkgeyB9Ci0gICAgCisKICAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JNSU1FVHlwZShGcmFtZVBvbGljeUZ1bmN0aW9uLCBjb25zdCBT
dHJpbmcmIE1JTUVUeXBlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVQb2xpY3lG
dW5jdGlvbiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKEZyYW1lUG9saWN5RnVuY3Rpb24sIGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSB7IH0KLSAgICAKKwogICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KGNvbnN0IFJlc291cmNlRXJyb3ImKSB7
IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKEZyYW1lUG9saWN5
RnVuY3Rpb24sIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPikgeyB9Ci0gICAgCisKICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRMb2FkTWFpblJlc291cmNlKERvY3VtZW50TG9hZGVyKikgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIHJldmVydFRvUHJvdmlzaW9uYWxTdGF0ZShEb2N1bWVudExvYWRlciop
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRNYWluRG9jdW1lbnRFcnJvcihEb2N1bWVudExvYWRl
ciosIGNvbnN0IFJlc291cmNlRXJyb3ImKSB7IH0KLSAgICAKKwogICAgIHZpcnR1YWwgdm9pZCB3
aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hh
bmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcG9zdFByb2dyZXNz
U3RhcnRlZE5vdGlmaWNhdGlvbigpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwb3N0UHJvZ3Jlc3NF
c3RpbWF0ZUNoYW5nZWROb3RpZmljYXRpb24oKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcG9zdFBy
b2dyZXNzRmluaXNoZWROb3RpZmljYXRpb24oKSB7IH0KLSAgICAKKwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRNYWluRnJhbWVEb2N1bWVudFJlYWR5KGJvb2wpIHsgfQotICAgIAorCiAgICAgdmlydHVh
bCB2b2lkIHN0YXJ0RG93bmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgeyB9Ci0gICAgCisK
ICAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZVRpdGxlKERvY3VtZW50TG9hZGVyKikgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVRpdGxlKERvY3VtZW50TG9hZGVyKikgeyB9Ci0gICAg
CisKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0dGVkTG9hZChEb2N1bWVudExvYWRlciosIGNvbnN0
IGNoYXIqLCBpbnQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hlZExvYWRpbmcoRG9jdW1l
bnRMb2FkZXIqKSB7IH0KLSAgICAKKwogICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBjYW5jZWxs
ZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSB7IHJldHVybiBSZXNvdXJjZUVycm9yKCk7
IH0KICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYpIHsgcmV0dXJuIFJlc291cmNlRXJyb3IoKTsgfQogICAgIHZpcnR1YWwgUmVzb3Vy
Y2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgeyByZXR1
cm4gUmVzb3VyY2VFcnJvcigpOyB9CiAgICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGludGVycnVw
dEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIHsgcmV0dXJuIFJl
c291cmNlRXJyb3IoKTsgfQotICAgIAorCiAgICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGNhbm5v
dFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSB7IHJldHVybiBSZXNv
dXJjZUVycm9yKCk7IH0KICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlz
dEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSB7IHJldHVybiBSZXNvdXJjZUVycm9yKCk7
IH0KLSAgICAKKwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRGYWxsQmFjayhjb25zdCBSZXNvdXJj
ZUVycm9yJikgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgCisKICAgICB2aXJ0dWFsIGJvb2wg
Y2FuSGFuZGxlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBjYW5TaG93TUlNRVR5cGUoY29uc3QgU3RyaW5nJiBN
SU1FVHlwZSkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgcmVwcmVz
ZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiBVUkxTY2hlbWUpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBTdHJpbmcgZ2VuZXJhdGVkTUlNRVR5cGVG
b3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiBVUkxTY2hlbWUpIGNvbnN0IHsgcmV0dXJuICIiOyB9
Ci0gICAgCisKICAgICB2aXJ0dWFsIHZvaWQgZnJhbWVMb2FkQ29tcGxldGVkKCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIHJlc3RvcmVWaWV3U3RhdGUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcHJv
dmlzaW9uYWxMb2FkU3RhcnRlZCgpIHsgfQpAQCAtMjI4LDE1ICsyMzAsMTUgQEAKICAgICB2aXJ0
dWFsIHZvaWQgYWRkSGlzdG9yeUl0ZW1Gb3JGcmFnbWVudFNjcm9sbCgpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBkaWRGaW5pc2hMb2FkKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JE
YXRhU291cmNlUmVwbGFjZW1lbnQoKSB7IH0KLSAgICAKKwogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxEb2N1bWVudExvYWRlcj4gY3JlYXRlRG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEpIHsgcmV0
dXJuIG5ldyBEb2N1bWVudExvYWRlcihyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSk7IH0KICAgICB2
aXJ0dWFsIHZvaWQgc2V0VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgS1VSTCYpIHsg
fQotICAgIAorCiAgICAgdmlydHVhbCBTdHJpbmcgdXNlckFnZW50KGNvbnN0IEtVUkwmKSB7IHJl
dHVybiAiIjsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNhdmVQbGF0Zm9ybURhdGFUb0NhY2hlZFBh
Z2UoQ2FjaGVkUGFnZSopIHsgfQogICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0
ZWRGcm9tQ2FjaGVkUGFnZShDYWNoZWRQYWdlKikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHRyYW5z
aXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKSB7IH0gICAgCisgICAgdmlydHVhbCB2b2lkIHRy
YW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVHbG9iYWxIaXN0b3J5KGNvbnN0IEtVUkwmKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkR29Ub0hpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
QEAgLTI0Nyw3ICsyNDksNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgs
IGludCBtYXJnaW5IZWlnaHQpIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIFdpZGdldCogY3Jl
YXRlUGx1Z2luKGNvbnN0IEludFNpemUmLEVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgVmVj
dG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYsIGJvb2wp
IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIFdpZGdldCogY3JlYXRlSmF2YUFwcGxldFdpZGdl
dChjb25zdCBJbnRTaXplJiwgRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgeyByZXR1cm4gMDsgfQotICAgIAorCiAgICAg
dmlydHVhbCBPYmplY3RDb250ZW50VHlwZSBvYmplY3RDb250ZW50VHlwZShjb25zdCBLVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIHsgcmV0dXJuIE9iamVjdENvbnRlbnRUeXBlKCk7
IH0KICAgICB2aXJ0dWFsIFN0cmluZyBvdmVycmlkZU1lZGlhVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IFN0cmluZygpOyB9CiAKQEAgLTI2MywyMyArMjY1LDIzIEBACiAKIH07CiAKLWNsYXNzIFNWR0Vt
cHR5RWRpdG9yQ2xpZW50IDogcHVibGljIEVkaXRvckNsaWVudCB7CitjbGFzcyBFbXB0eUVkaXRv
ckNsaWVudCA6IHB1YmxpYyBFZGl0b3JDbGllbnQgewogcHVibGljOgotICAgIHZpcnR1YWwgflNW
R0VtcHR5RWRpdG9yQ2xpZW50KCkgeyB9CisgICAgdmlydHVhbCB+RW1wdHlFZGl0b3JDbGllbnQo
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpIHsgfQotICAgIAorCiAgICAg
dmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKFJhbmdlKikgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZShIVE1MRWxlbWVudCop
IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9IAorICAgIHZpcnR1YWwgYm9vbCBzbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRp
bnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCB2b2lkIHRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCkgeyB9CiAgICAgdmlydHVhbCBi
b29sIGlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCB2b2lkIHRvZ2dsZUdyYW1tYXJDaGVja2luZygpIHsgfQogICAgIHZpcnR1YWwgaW50IHNw
ZWxsQ2hlY2tlckRvY3VtZW50VGFnKCkgeyByZXR1cm4gLTE7IH0KLSAgICAKKwogICAgIHZpcnR1
YWwgYm9vbCBzZWxlY3RXb3JkQmVmb3JlTWVudUV2ZW50KCkgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNFZGl0YWJsZSgpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgCisKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkQmVnaW5FZGl0aW5nKFJhbmdlKikgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRW5kRWRpdGluZyhSYW5nZSopIHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydE5vZGUoTm9kZSosIFJhbmdlKiwg
RWRpdG9ySW5zZXJ0QWN0aW9uKSB7IHJldHVybiBmYWxzZTsgfQpAQCAtMzAxLDE0ICszMDMsMTQg
QEAKICAgICAvLyAgdmlydHVhbCB2b2lkIHdlYlZpZXdEaWRDaGFuZ2VUeXBpbmdTdHlsZTooTlNO
b3RpZmljYXRpb24gKilub3RpZmljYXRpb24geyB9CiAgICAgLy8gIHZpcnR1YWwgdm9pZCB3ZWJW
aWV3RGlkQ2hhbmdlU2VsZWN0aW9uOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbiB7IH0K
ICAgICAvLyAgdmlydHVhbCBOU1VuZG9NYW5hZ2VyKiB1bmRvTWFuYWdlckZvcldlYlZpZXc6KFdl
YlZpZXcgKil3ZWJWaWV3IHsgcmV0dXJuIDA7IH0KLSAgICAKKwogICAgIHZpcnR1YWwgdm9pZCBy
ZWdpc3RlckNvbW1hbmRGb3JVbmRvKFBhc3NSZWZQdHI8RWRpdENvbW1hbmQ+KSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgcmVnaXN0ZXJDb21tYW5kRm9yUmVkbyhQYXNzUmVmUHRyPEVkaXRDb21tYW5k
PikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkgeyB9Ci0g
ICAgCisKICAgICB2aXJ0dWFsIGJvb2wgY2FuVW5kbygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGNhblJlZG8oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAg
IAorCiAgICAgdmlydHVhbCB2b2lkIHVuZG8oKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVkbygp
IHsgfQogCkBAIC0zMjEsMTAgKzMyMywxMCBAQAogICAgIHZpcnR1YWwgYm9vbCBkb1RleHRGaWVs
ZENvbW1hbmRGcm9tRXZlbnQoRWxlbWVudCosIEtleWJvYXJkRXZlbnQqKSB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgdm9pZCB0ZXh0V2lsbEJlRGVsZXRlZEluVGV4dEZpZWxkKEVsZW1l
bnQqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdGV4dERpZENoYW5nZUluVGV4dEFyZWEoRWxlbWVu
dCopIHsgfQotICAgIAorCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBtYXJr
ZWRUZXh0QWJhbmRvbmVkKEZyYW1lKikgeyB9Ci0gICAgCisKICAgICB2aXJ0dWFsIE5TU3RyaW5n
KiB1c2VyVmlzaWJsZVN0cmluZyhOU1VSTCopIHsgcmV0dXJuIDA7IH0KICNpZmRlZiBCVUlMRElO
R19PTl9USUdFUgogICAgIHZpcnR1YWwgTlNBcnJheSogcGFzdGVib2FyZFR5cGVzRm9yU2VsZWN0
aW9uKEZyYW1lKikgeyByZXR1cm4gMDsgfQpAQCAtMzQwLDE4ICszNDIsMTggQEAKICAgICB2aXJ0
dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+
JiBndWVzc2VzKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29s
IGVuYWJsZWQpIHsgfQotICAKLSAgICAKKworCiB9OwogCi1jbGFzcyBTVkdFbXB0eUNvbnRleHRN
ZW51Q2xpZW50IDogcHVibGljIENvbnRleHRNZW51Q2xpZW50IHsKK2NsYXNzIEVtcHR5Q29udGV4
dE1lbnVDbGllbnQgOiBwdWJsaWMgQ29udGV4dE1lbnVDbGllbnQgewogcHVibGljOgotICAgIHZp
cnR1YWwgflNWR0VtcHR5Q29udGV4dE1lbnVDbGllbnQoKSB7ICB9CisgICAgdmlydHVhbCB+RW1w
dHlDb250ZXh0TWVudUNsaWVudCgpIHsgIH0KICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVE
ZXN0cm95ZWQoKSB7IH0KLSAgICAKKwogICAgIHZpcnR1YWwgUGxhdGZvcm1NZW51RGVzY3JpcHRp
b24gZ2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMoQ29udGV4dE1lbnUqKSB7IHJldHVybiAw
OyB9CiAgICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51
SXRlbSosIGNvbnN0IENvbnRleHRNZW51KikgeyB9Ci0gICAgCisKICAgICB2aXJ0dWFsIHZvaWQg
ZG93bmxvYWRVUkwoY29uc3QgS1VSTCYgdXJsKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY29weUlt
YWdlVG9DbGlwYm9hcmQoY29uc3QgSGl0VGVzdFJlc3VsdCYpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBzZWFyY2hXaXRoR29vZ2xlKGNvbnN0IEZyYW1lKikgeyB9CkBAIC0zNjQsMjEgKzM2NiwyMSBA
QAogI2VuZGlmCiB9OwogCi1jbGFzcyBTVkdFbXB0eURyYWdDbGllbnQgOiBwdWJsaWMgRHJhZ0Ns
aWVudCB7CitjbGFzcyBFbXB0eURyYWdDbGllbnQgOiBwdWJsaWMgRHJhZ0NsaWVudCB7CiBwdWJs
aWM6Ci0gICAgdmlydHVhbCB+U1ZHRW1wdHlEcmFnQ2xpZW50KCkge30KKyAgICB2aXJ0dWFsIH5F
bXB0eURyYWdDbGllbnQoKSB7fQogICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybURyYWdEZXN0
aW5hdGlvbkFjdGlvbihEcmFnRGVzdGluYXRpb25BY3Rpb24sIERyYWdEYXRhKikgeyB9CiAgICAg
dmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9u
LCBjb25zdCBJbnRQb2ludCYsIENsaXBib2FyZCopIHsgfQogICAgIHZpcnR1YWwgRHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uIGFjdGlvbk1hc2tGb3JEcmFnKERyYWdEYXRhKikgeyByZXR1cm4gRHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uTm9uZTsgfQogICAgIHZpcnR1YWwgRHJhZ1NvdXJjZUFjdGlvbiBkcmFn
U291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNvbnN0IEludFBvaW50JikgeyByZXR1cm4gRHJhZ1Nv
dXJjZUFjdGlvbk5vbmU7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKERyYWdJbWFnZVJl
ZiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRQb2ludCYsIENsaXBib2FyZCosIEZyYW1lKiwg
Ym9vbCkgeyB9Ci0gICAgdmlydHVhbCBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRm9yTGlu
ayhLVVJMJiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgRnJhbWUqKSB7IHJldHVybiAwOyB9IAorICAg
IHZpcnR1YWwgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoS1VSTCYsIGNvbnN0
IFN0cmluZyYgbGFiZWwsIEZyYW1lKikgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBk
cmFnQ29udHJvbGxlckRlc3Ryb3llZCgpIHsgfQogfTsKIAotY2xhc3MgU1ZHRW1wdHlJbnNwZWN0
b3JDbGllbnQgOiBwdWJsaWMgSW5zcGVjdG9yQ2xpZW50IHsKK2NsYXNzIEVtcHR5SW5zcGVjdG9y
Q2xpZW50IDogcHVibGljIEluc3BlY3RvckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+
U1ZHRW1wdHlJbnNwZWN0b3JDbGllbnQoKSB7fQorICAgIHZpcnR1YWwgfkVtcHR5SW5zcGVjdG9y
Q2xpZW50KCkge30KIAogICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0b3JEZXN0cm95ZWQoKSB7fTsK
IApAQCAtMzk2LDEwICszOTgsNyBAQAogICAgIHZpcnR1YWwgdm9pZCBoaWRlSGlnaGxpZ2h0KCkg
e307CiAgICAgdmlydHVhbCB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJiBu
ZXdVUkwpIHt9OwogfTsKLSAgICAKKwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKFNWRykKLQotI2Vu
ZGlmIC8vIFNWR0ltYWdlRW1wdHlDbGllbnRzX2gKLQorI2VuZGlmIC8vIEVtcHR5Q2xpZW50c19o
Cg==
</data>
<flag name="review"
          id="9501"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>