<?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>97278</bug_id>
          
          <creation_ts>2012-09-20 18:18:05 -0700</creation_ts>
          <short_desc>[WK2] Add basic testing support for Geolocation</short_desc>
          <delta_ts>2013-10-01 09:01:48 -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>Tools / Tests</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="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>maheshk</cc>
    
    <cc>mario</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>725043</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-20 18:18:05 -0700</bug_when>
    <thetext>The current implementation is a sad hack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725056</commentid>
    <comment_count>1</comment_count>
      <attachid>165031</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-20 18:34:01 -0700</bug_when>
    <thetext>Created attachment 165031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725176</commentid>
    <comment_count>2</comment_count>
      <attachid>165031</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-20 23:04:37 -0700</bug_when>
    <thetext>Comment on attachment 165031
Patch

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

LGTM

&gt; Tools/ChangeLog:10
&gt; +
&gt; +

nit: double newline

&gt; Tools/WebKitTestRunner/TestController.cpp:393
&gt; +        decidePolicyForGeolocationPermissionRequest, // decidePolicyForGeolocationPermissionRequest

I dont think that commetn adds any value anymore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725814</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-21 14:12:25 -0700</bug_when>
    <thetext>Committed r129252: &lt;http://trac.webkit.org/changeset/129252&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935034</commentid>
    <comment_count>4</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-10-01 09:01:48 -0700</bug_when>
    <thetext>*** Bug 59201 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165031</attachid>
            <date>2012-09-20 18:34:01 -0700</date>
            <delta_ts>2012-09-20 23:04:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97278-20120920183326.patch</filename>
            <type>text/plain</type>
            <size>37972</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWFhNzljMDJkOTFiNmZi
NDY3YWJmZjA1ZGJkNzU0YzFlYTFhMmU5My4uOWJmNDU0MmRlYTRkZmQ3ZDg4OGMxMjFlNGYxZmJi
ZTBlMGY2N2UyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA5LTIwICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBi
YXNpYyB0ZXN0aW5nIHN1cHBvcnQgZm9yIEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzI3OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLTnVtYmVyLmg6IEZp
eCBhbiB1bmZvcnR1bmF0ZSBjb3B5LXBhc3RlIDopCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoKKyAgICAgICAgKEluamVjdGVkQnVu
ZGxlKToKKyAgICAgICAgUmVtb3ZlIHRoZSBjb2RlIGZvcmNpbmcgdGhlIEdlb2xvY2F0aW9uIHBl
cm1pc3Npb25zLiBJdCB3YXMgd29ya2luZyBhcm91bmQgdGhlIG5vcm1hbAorICAgICAgICBHZW9s
b2NhdGlvbiBjb2RlIGFuZCB1cGRhdGluZyBhbGwgdGhlIEdlb2xvY2F0aW9uQ29udHJvbGxlciwg
d2hpY2ggaXMgYSB0ZXJyaWJsZSBpZGVhLgorCiAyMDEyLTA5LTIwICBQYXRyaWNrIEdhbnN0ZXJl
ciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBTdHJpbmc6Om51bWJlclRvU3Ry
aW5nRml4ZWRXaWR0aCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tOdW1iZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS051bWJlci5oCmluZGV4
IDFiMDdiZWY4YmY5ZDBiNTliNzQ3OTk5NDZjYjk2ZWM3NmE4M2NhNGMuLmM4YzkxMjk2NWIwZTFh
MzEyYjI0NGZmZWM4NDUxZTZjNzlkZjVlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS051bWJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S051bWJlci5oCkBAIC00NSw3ICs0NSw3IEBAIFdLX0VYUE9SVCBkb3VibGUgV0tEb3VibGVHZXRW
YWx1ZShXS0RvdWJsZVJlZiBkb3VibGVSZWYpOwogLyogV0tVSW50NjQgKi8KIFdLX0VYUE9SVCBX
S1R5cGVJRCBXS1VJbnQ2NEdldFR5cGVJRCgpOwogV0tfRVhQT1JUIFdLVUludDY0UmVmIFdLVUlu
dDY0Q3JlYXRlKHVpbnQ2NF90IHZhbHVlKTsKLVdLX0VYUE9SVCB1aW50NjRfdCBXS1VJbnQ2NEdl
dFZhbHVlKFdLVUludDY0UmVmIGRvdWJsZVJlZik7CitXS19FWFBPUlQgdWludDY0X3QgV0tVSW50
NjRHZXRWYWx1ZShXS1VJbnQ2NFJlZiBpbnRlZ2VyUmVmKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVz
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCmluZGV4IDI3NmY3ZDNjYmY0OThmNDY0OWYwNDYzZDQ2
MzFiNTQyNTIyYzhkZDkuLjIwODUyNTNiYWQ4MDgwNTJkMjliNDNjNGNkNDFmMWY1ZjgxNDMxNjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCkBAIC0xNjIsMTEgKzE2Miw2IEBAIHZvaWQgV0tCdW5k
bGVTZXRQbHVnaW5zRW5hYmxlZChXS0J1bmRsZVJlZiBidW5kbGVSZWYsIFdLQnVuZGxlUGFnZUdy
b3VwUmVmIHBhZ2VHCiAgICAgdG9JbXBsKGJ1bmRsZVJlZiktPnNldFBsdWdpbnNFbmFibGVkKHRv
SW1wbChwYWdlR3JvdXBSZWYpLCBlbmFibGVkKTsKIH0KIAotdm9pZCBXS0J1bmRsZVNldEdlb2xv
Y2F0aW9uUGVybWlzc2lvbihXS0J1bmRsZVJlZiBidW5kbGVSZWYsIFdLQnVuZGxlUGFnZUdyb3Vw
UmVmIHBhZ2VHcm91cFJlZiwgYm9vbCBlbmFibGVkKQotewotICAgIHRvSW1wbChidW5kbGVSZWYp
LT5zZXRHZW9Mb2NhdGlvblBlcm1pc3Npb24odG9JbXBsKHBhZ2VHcm91cFJlZiksIGVuYWJsZWQp
OwotfQotCiB2b2lkIFdLQnVuZGxlU2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChXS0J1
bmRsZVJlZiBidW5kbGVSZWYsIFdLQnVuZGxlUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiwgYm9v
bCBlbmFibGVkKQogewogICAgIHRvSW1wbChidW5kbGVSZWYpLT5zZXRKYXZhU2NyaXB0Q2FuQWNj
ZXNzQ2xpcGJvYXJkKHRvSW1wbChwYWdlR3JvdXBSZWYpLCBlbmFibGVkKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUHJpdmF0ZS5oCmluZGV4IDNhMTUxMmFhZmE4NjgwYTlhMTlhY2Q1MzM3MmEyZTM3
ZWM4MmI3ZTUuLmYwMzJjNjIyMmE4MTIzZTg1NDRjODI3N2JjY2E0YWUzYzhhNDJjZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaApAQCAtNjAsNyArNjAsNiBAQCBXS19FWFBPUlQg
dm9pZCBXS0J1bmRsZVNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhXS0J1bmRsZVJlZiBi
dW5kbGUsIFdLQnVuZAogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVTZXRNaW5pbXVtTG9naWNhbEZv
bnRTaXplKFdLQnVuZGxlUmVmIGJ1bmRsZVJlZiwgV0tCdW5kbGVQYWdlR3JvdXBSZWYgcGFnZUdy
b3VwUmVmLCBpbnQgc2l6ZSk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNldEZyYW1lRmxhdHRl
bmluZ0VuYWJsZWQoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VHcm91cFJlZiBwYWdl
R3JvdXAsIGJvb2wgZW5hYmxlZCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNldFBsdWdpbnNF
bmFibGVkKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVQYWdlR3JvdXBSZWYgcGFnZUdyb3Vw
LCBib29sIGVuYWJsZWQpOwotV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVTZXRHZW9sb2NhdGlvblBl
cm1pc3Npb24oV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VHcm91cFJlZiBwYWdlR3Jv
dXAsIGJvb2wgZW5hYmxlZCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNldEphdmFTY3JpcHRD
YW5BY2Nlc3NDbGlwYm9hcmQoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VHcm91cFJl
ZiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxlZCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNldFBy
aXZhdGVCcm93c2luZ0VuYWJsZWQoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VHcm91
cFJlZiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxlZCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNl
dFBvcHVwQmxvY2tpbmdFbmFibGVkKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVQYWdlR3Jv
dXBSZWYgcGFnZUdyb3VwLCBib29sIGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRl
eCAyMDZmNDdlZTY0NjAwMWU3YjUxYzViMTMyZDJkMDY0ZGVjY2YzZGRkLi40NzBkMzliMTc0MDI2
NTRhNzZiYjc0ZDJhNWMzZDFlZTVjY2YwZTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAt
MjQ4LDE4ICsyNDgsNiBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRQbHVnaW5zRW5hYmxlZChX
ZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBib29sIGVuYWJsZQogICAgICAgICAoKml0ZXIp
LT5zZXR0aW5ncygpLT5zZXRQbHVnaW5zRW5hYmxlZChlbmFibGVkKTsKIH0KIAotdm9pZCBJbmpl
Y3RlZEJ1bmRsZTo6c2V0R2VvTG9jYXRpb25QZXJtaXNzaW9uKFdlYlBhZ2VHcm91cFByb3h5KiBw
YWdlR3JvdXAsIGJvb2wgZW5hYmxlZCkKLXsKLSNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCi0gICAg
Y29uc3QgSGFzaFNldDxQYWdlKj4mIHBhZ2VzID0gUGFnZUdyb3VwOjpwYWdlR3JvdXAocGFnZUdy
b3VwLT5pZGVudGlmaWVyKCkpLT5wYWdlcygpOwotICAgIGZvciAoSGFzaFNldDxQYWdlKj46Oml0
ZXJhdG9yIGl0ZXIgPSBwYWdlcy5iZWdpbigpOyBpdGVyICE9IHBhZ2VzLmVuZCgpOyArK2l0ZXIp
Ci0gICAgICAgIHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KEdlb2xvY2F0aW9u
Q29udHJvbGxlcjo6ZnJvbSgqaXRlciktPmNsaWVudCgpKS0+c2V0UGVybWlzc2lvbihlbmFibGVk
KTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHBhZ2VHcm91cCk7Ci0gICAgVU5VU0VEX1BBUkFN
KGVuYWJsZWQpOwotI2VuZGlmIC8vIEVOQUJMRShHRU9MT0NBVElPTikKLX0KLQogdm9pZCBJbmpl
Y3RlZEJ1bmRsZTo6c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChXZWJQYWdlR3JvdXBQ
cm94eSogcGFnZUdyb3VwLCBib29sIGVuYWJsZWQpCiB7CiAgICAgY29uc3QgSGFzaFNldDxQYWdl
Kj4mIHBhZ2VzID0gUGFnZUdyb3VwOjpwYWdlR3JvdXAocGFnZUdyb3VwLT5pZGVudGlmaWVyKCkp
LT5wYWdlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCmluZGV4IDQwNGE1MDU5MzRlZjBiYWZkY2ZmNmIx
MTU3NzkzNWNhODY3MTY0MzYuLjExOTcyNTZkNWE3OGY0YWU1NjA5YjU2NjFmOWU2NWE2NzMzNzFm
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmgKQEAgLTExMSw3ICsxMTEsNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRNaW5pbXVtTG9naWNhbEZvbnRTaXplKFdlYlBhZ2VHcm91cFByb3h5KiwgaW50IHNp
emUpOwogICAgIHZvaWQgc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChXZWJQYWdlR3JvdXBQcm94
eSosIGJvb2wpOwogICAgIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoV2ViUGFnZUdyb3VwUHJveHkq
LCBib29sKTsKLSAgICB2b2lkIHNldEdlb0xvY2F0aW9uUGVybWlzc2lvbihXZWJQYWdlR3JvdXBQ
cm94eSosIGJvb2wpOwogICAgIHZvaWQgc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChX
ZWJQYWdlR3JvdXBQcm94eSosIGJvb2wpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChXZWJQYWdlR3JvdXBQcm94eSosIGJvb2wpOwogICAgIHZvaWQgc2V0UG9wdXBCbG9ja2lu
Z0VuYWJsZWQoV2ViUGFnZUdyb3VwUHJveHkqLCBib29sKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhZWMwMzUwYWQ4OWM3OWI2N2IwMGJjNDBi
Njg4NThiOTE2NjRlMGQyLi40NGIxNmE0MTgzNGIxYmEzNzI5MjBmMjhhNTdiNmIxNTc0YWY0MTdm
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNjEgQEAKKzIwMTItMDktMjAgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIGJhc2ljIHRlc3Rpbmcgc3VwcG9ydCBmb3IgR2Vv
bG9jYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk3Mjc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXBkYXRlIHRoZSBHZW9sb2NhdGlvbiB0ZXN0aW5nIHRvIHVzZSB0aGUgcHJvcGVyIEFQSSBpbiB0
aGUgVUlQcm9jZXNzLgorCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvR05VbWFrZWZpbGUuYW06CisKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcDogQWRkZWQu
CisgICAgICAgIChXVFI6OnN0YXJ0VXBkYXRpbmdDYWxsYmFjayk6CisgICAgICAgIChXVFI6OnN0
b3BVcGRhdGluZ0NhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6R2VvbG9jYXRpb25Qcm92aWRlck1v
Y2s6Okdlb2xvY2F0aW9uUHJvdmllck1vY2spOgorICAgICAgICAoV1RSOjpHZW9sb2NhdGlvblBy
b3ZpZGVyTW9jazo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24pOgorICAgICAgICAoV1RSOjpH
ZW9sb2NhdGlvblByb3ZpZGVyTW9jazo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXVFI6Okdl
b2xvY2F0aW9uUHJvdmlkZXJNb2NrOjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoR2VvbG9jYXRp
b25Qcm92aWRlck1vY2spOgorICAgICAgICBUaGUgR2VvbG9jYXRpb25Qcm92aWRlciBzdG9yZSB0
aGUgbG9jYXRpb24gdXBkYXRlIGFuZCBkZWxpdmVyIHRoZW0gYXMgbmVlZGVkLgorCisgICAgICAg
IFdlYkNvcmUgR2VvbG9jYXRpb25Db250cm9sbGVyIGRvIG5vdCBzdXBwb3J0IGFzeW5jaHJvbm91
cyB1cGRhdGUgb24gc3RhcnQvc3RvcC4gVGhpcyBpcyBub3QKKyAgICAgICAgYSBwcm9ibGVtIGlu
IHRoaXMgY2FzZSBiZWNhdXNlIGFsbCB0aGUgbWVzc2FnZXMgYmV0d2VlbiB0aGUgV2ViUHJvY2Vz
cyBhbmQgdGhlIFVJUHJvY2VzcyBhcmUKKyAgICAgICAgYXN5bmNocm9ub3VzLiBCZWNhdXNlIG9m
IHRoaXMsIHVubGlrZSBHZW9sb2NhdGlvbkNsaWVudE1vY2ssIHdlIGRvIG5vdCB1c2UgYSB0aW1l
ciBmb3IgZXZlbnQKKyAgICAgICAgZGVsaXZlcnkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAg
ICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6c2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKToKKyAgICAg
ICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmg6
CisgICAgICAgIChJbmplY3RlZEJ1bmRsZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6
c2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0
TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24pOgorICAgICAgICBGcm9tIHRoZSBJbmplY3RlZEJ1bmRs
ZSwgd2Ugbm93IHBhc3MgdGhlIGluZm9ybWF0aW9uIHRvIHRoZSBVSVByb2Nlc3Mgc28gdGhhdAor
ICAgICAgICBHZW9sb2NhdGlvblByb3ZpZGVyIGFuZCB0aGUgVGVzdENvbnRyb2xsZXIgY2FuIHJl
c3BvbmQgYXBwcm9wcmlhdGVseS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UYXJnZXQucHJpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6VGVzdENv
bnRyb2xsZXIpOgorICAgICAgICAoV1RSOjpkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVy
UGFnZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChUZXN0
Q29udHJvbGxlcik6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRHZW9sb2NhdGlv
blBlcm1pc3Npb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aXNHZW9sb2NhdGlv
blBlcm1pc3Npb25BbGxvd2VkKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1dlYktp
dFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL3dpbi9XZWJLaXRUZXN0UnVubmVyLnZjcHJvajoKKwogMjAxMi0wOS0xOSAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBydW4tcGVyZi10ZXN0cyBz
aG91bGQgcmVjb3JkIGluZGl2aWR1YWwgdmFsdWUgaW5zdGVhZCBvZiBzdGF0aXN0aWNzCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dAppbmRleCBhM2VhODhkY2FlODM0MzExMWZhMjFi
MmQzZjVjNTQyY2ZjMzM0YTFhLi45ZGYzNjIyMTE4NWI0YjEyMzkwMDBjZTJjMmYzMDcxOTE3NDk3
YWM2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQKQEAgLTUsNiArNSw3IEBA
IEZJTEUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9JbmplY3RlZEJ1bmRs
ZSkKIAogU0VUKFdlYktpdFRlc3RSdW5uZXJfU09VUkNFUwogICAgICR7V0VCS0lUX1RFU1RSVU5O
RVJfRElSfS9DeWNsaWNSZWR1bmRhbmN5Q2hlY2suY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5F
Ul9ESVJ9L0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcAogICAgICR7V0VCS0lUX1RFU1RSVU5O
RVJfRElSfS9QaXhlbER1bXBTdXBwb3J0LmNwcAogICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElS
fS9UZXN0Q29udHJvbGxlci5jcHAKICAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vVGVzdElu
dm9jYXRpb24uY3BwCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0dOVW1ha2Vm
aWxlLmFtIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9HTlVtYWtlZmlsZS5hbQppbmRleCBjOGRh
Y2EyY2NhMjNhY2I3ZmM4MjY4MzJkNzBlOTg2NjJmOGMxMmUxLi4yNTUwNzAyY2MyZDc1YjQyN2Qw
ZTk4MmVhMzcyY2U2ZDgxODQyMjIwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0dOVW1ha2VmaWxlLmFtCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvR05VbWFrZWZpbGUu
YW0KQEAgLTE5LDYgKzE5LDggQEAgUHJvZ3JhbXNfV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTID0g
XAogCVRvb2xzL1dlYktpdFRlc3RSdW5uZXIvY2Fpcm8vVGVzdEludm9jYXRpb25DYWlyby5jcHAg
XAogCVRvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ3ljbGljUmVkdW5kYW5jeUNoZWNrLmNwcCBcCiAJ
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DeWNsaWNSZWR1bmRhbmN5Q2hlY2suaCBcCisJVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9HZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHAgXAorCVRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92aWRlck1vY2suaCBcCiAJVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9QaXhlbER1bXBTdXBwb3J0LmNwcCBcCiAJVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9QaXhlbER1bXBTdXBwb3J0LmggXAogCVRvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1X
ZWJWaWV3LmggXApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9HZW9sb2NhdGlv
blByb3ZpZGVyTW9jay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJv
dmlkZXJNb2NrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWJiZjZlMGRkNmM4ODdkMjFiNWY3NTE4YWQ0MmVm
YzcyMDA3MTcwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9HZW9s
b2NhdGlvblByb3ZpZGVyTW9jay5jcHAKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvblByb3ZpZGVyTW9jay5oIgor
CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0dlb2xvY2F0aW9uTWFuYWdlci5oPgorI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisKK25hbWVzcGFj
ZSBXVFIgeworCitzdGF0aWMgdm9pZCBzdGFydFVwZGF0aW5nQ2FsbGJhY2soV0tHZW9sb2NhdGlv
bk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQor
eworICAgIEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrKiBnZW9sb2NhdGlvblByb3ZpZGVyID0gc3Rh
dGljX2Nhc3Q8R2VvbG9jYXRpb25Qcm92aWRlck1vY2sqPihjb25zdF9jYXN0PHZvaWQqPihjbGll
bnRJbmZvKSk7CisgICAgZ2VvbG9jYXRpb25Qcm92aWRlci0+c3RhcnRVcGRhdGluZyhnZW9sb2Nh
dGlvbk1hbmFnZXIpOworfQorCitzdGF0aWMgdm9pZCBzdG9wVXBkYXRpbmdDYWxsYmFjayhXS0dl
b2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1hbmFnZXIsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pCit7CisgICAgR2VvbG9jYXRpb25Qcm92aWRlck1vY2sqIGdlb2xvY2F0aW9uUHJvdmlk
ZXIgPSBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvblByb3ZpZGVyTW9jayo+KGNvbnN0X2Nhc3Q8dm9p
ZCo+KGNsaWVudEluZm8pKTsKKyAgICBnZW9sb2NhdGlvblByb3ZpZGVyLT5zdG9wVXBkYXRpbmco
Z2VvbG9jYXRpb25NYW5hZ2VyKTsKK30KKworR2VvbG9jYXRpb25Qcm92aWRlck1vY2s6Okdlb2xv
Y2F0aW9uUHJvdmlkZXJNb2NrKFdLQ29udGV4dFJlZiBjb250ZXh0KQorICAgIDogbV9pc0FjdGl2
ZShmYWxzZSkKK3sKKyAgICBtX2dlb2xvY2F0aW9uTWFuYWdlciA9IFdLQ29udGV4dEdldEdlb2xv
Y2F0aW9uTWFuYWdlcihjb250ZXh0KTsKKworICAgIFdLR2VvbG9jYXRpb25Qcm92aWRlciBwcm92
aWRlckNhbGxiYWNrID0geworICAgICAgICBrV0tHZW9sb2NhdGlvblByb3ZpZGVyQ3VycmVudFZl
cnNpb24sCisgICAgICAgIHRoaXMsCisgICAgICAgIHN0YXJ0VXBkYXRpbmdDYWxsYmFjaywKKyAg
ICAgICAgc3RvcFVwZGF0aW5nQ2FsbGJhY2sgfTsKKyAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclNl
dFByb3ZpZGVyKG1fZ2VvbG9jYXRpb25NYW5hZ2VyLCAmcHJvdmlkZXJDYWxsYmFjayk7Cit9CisK
K3ZvaWQgR2VvbG9jYXRpb25Qcm92aWRlck1vY2s6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9u
KGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQorewor
ICAgIG1fcG9zaXRpb24uYWRvcHQoV0tHZW9sb2NhdGlvblBvc2l0aW9uQ3JlYXRlKGN1cnJlbnRU
aW1lKCksIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5KSk7CisgICAgaWYgKG1faXNBY3Rp
dmUpCisgICAgICAgIFdLR2VvbG9jYXRpb25NYW5hZ2VyUHJvdmlkZXJEaWRDaGFuZ2VQb3NpdGlv
bihtX2dlb2xvY2F0aW9uTWFuYWdlciwgbV9wb3NpdGlvbi5nZXQoKSk7Cit9CisKK3ZvaWQgR2Vv
bG9jYXRpb25Qcm92aWRlck1vY2s6OnN0YXJ0VXBkYXRpbmcoV0tHZW9sb2NhdGlvbk1hbmFnZXJS
ZWYgZ2VvbG9jYXRpb25NYW5hZ2VyKQoreworICAgIEFTU0VSVF9VTlVTRUQoZ2VvbG9jYXRpb25N
YW5hZ2VyLCBnZW9sb2NhdGlvbk1hbmFnZXIgPT0gbV9nZW9sb2NhdGlvbk1hbmFnZXIpOworCisg
ICAgbV9pc0FjdGl2ZSA9IHRydWU7CisgICAgaWYgKG1fcG9zaXRpb24pCisgICAgICAgIFdLR2Vv
bG9jYXRpb25NYW5hZ2VyUHJvdmlkZXJEaWRDaGFuZ2VQb3NpdGlvbihtX2dlb2xvY2F0aW9uTWFu
YWdlciwgbV9wb3NpdGlvbi5nZXQoKSk7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25Qcm92aWRlck1v
Y2s6OnN0b3BVcGRhdGluZyhXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1hbmFn
ZXIpCit7CisgICAgQVNTRVJUX1VOVVNFRChnZW9sb2NhdGlvbk1hbmFnZXIsIGdlb2xvY2F0aW9u
TWFuYWdlciA9PSBtX2dlb2xvY2F0aW9uTWFuYWdlcik7CisKKyAgICBtX2lzQWN0aXZlID0gZmFs
c2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9HZW9sb2NhdGlvblByb3ZpZGVyTW9jay5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9HZW9sb2NhdGlvblByb3ZpZGVyTW9jay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmNjI4NGEyZjRhZTAxZDIy
NjZjMzdhMDAwZDgwYzBkYjhkMGQyZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmgKQEAgLTAsMCArMSw1MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgR2VvbG9jYXRpb25Qcm92aWRlck1vY2tfaAorI2RlZmluZSBHZW9s
b2NhdGlvblByb3ZpZGVyTW9ja19oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+
CisKK25hbWVzcGFjZSBXVFIgeworCitjbGFzcyBHZW9sb2NhdGlvblByb3ZpZGVyTW9jayB7Citw
dWJsaWM6CisgICAgR2VvbG9jYXRpb25Qcm92aWRlck1vY2soV0tDb250ZXh0UmVmKTsKKworICAg
IHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUg
bG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpOworCisgICAgdm9pZCBzdGFydFVwZGF0aW5nKFdL
R2VvbG9jYXRpb25NYW5hZ2VyUmVmKTsKKyAgICB2b2lkIHN0b3BVcGRhdGluZyhXS0dlb2xvY2F0
aW9uTWFuYWdlclJlZik7CisKK3ByaXZhdGU6CisgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYg
bV9nZW9sb2NhdGlvbk1hbmFnZXI7CisgICAgYm9vbCBtX2lzQWN0aXZlOworCisgICAgV0tSZXRh
aW5QdHI8V0tHZW9sb2NhdGlvblBvc2l0aW9uUmVmPiBtX3Bvc2l0aW9uOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV1RSCisKKyNlbmRpZiAvLyBHZW9sb2NhdGlvblByb3ZpZGVyTW9ja19oCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCBhMGUzZWVkYThmZTUyN2YwY2E4YjVkNzhhNDI3NWEy
ZmY1M2QxMzZiLi41YjE3N2Q1YmNlZWRlMzI0ZmQ1YTdjN2ZmN2Q2MzZiN2JkNDMwMGEyIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTYwLDcgKzYwLDYgQEAgbW9kdWxlIFdUUiB7CiAg
ICAgICAgIHZvaWQgc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGluIGJvb2xlYW4gdmFs
dWUpOwogICAgICAgICB2b2lkIHNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoaW4gYm9vbGVhbiB2
YWx1ZSk7CiAgICAgICAgIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoaW4gYm9vbGVhbiB2YWx1ZSk7
Ci0gICAgICAgIHZvaWQgc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGluIGJvb2xlYW4gdmFsdWUp
OwogICAgICAgICB2b2lkIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoaW4gYm9vbGVh
biB2YWx1ZSk7CiAgICAgICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChpbiBib29s
ZWFuIHZhbHVlKTsKICAgICAgICAgdm9pZCBzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChpbiBib29s
ZWFuIHZhbHVlKTsKQEAgLTE3OSw2ICsxNzgsMTAgQEAgbW9kdWxlIFdUUiB7CiAgICAgICAgIHZv
aWQgcmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKTsKICAgICAgICAgdm9pZCBz
aW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKGluIG9iamVjdCBub3RpZmljYXRpb24pOwogCisg
ICAgICAgIC8vIEdlb2xvY2F0aW9uCisgICAgICAgIHZvaWQgc2V0R2VvbG9jYXRpb25QZXJtaXNz
aW9uKGluIGJvb2xlYW4gdmFsdWUpOworICAgICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBv
c2l0aW9uKGluIGRvdWJsZSBsYXRpdHVkZSwgaW4gZG91YmxlIGxvbmdpdHVkZSwgaW4gZG91Ymxl
IGFjY3VyYWN5KTsKKwogICAgICAgICBib29sZWFuIGNhbGxTaG91bGRDbG9zZU9uV2ViVmlldygp
OwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggNmMzNDVjNTc1ZmU5MzhkMDVhY2JmYjBm
MWRkODk1YjVjOGUxZTYzZi4uMmIyNDI0MGVmMzE2YTRjMmEwMDZiODZjZWU2M2Y2ODJhNDBlMzk4
YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTM1OCw0ICszNTgsMzIgQEAgdm9pZCBJbmplY3RlZEJ1
bmRsZTo6cG9zdFNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2sodWludDY0X3Qgbm90aWZpY2F0
aW9uSUQpCiAgICAgV0tCdW5kbGVQb3N0TWVzc2FnZShtX2J1bmRsZSwgbWVzc2FnZU5hbWUuZ2V0
KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0R2Vv
bG9jYXRpb25QZXJtaXNzaW9uKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0
cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIlNldEdlb2xvY2F0aW9uUGVybWlzc2lvbiIpKTsKKyAgICBXS1JldGFpblB0cjxXS0Jvb2xl
YW5SZWY+IG1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZShlbmFibGVkKSk7Cisg
ICAgV0tCdW5kbGVQb3N0TWVzc2FnZShtX2J1bmRsZSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3Nh
Z2VCb2R5LmdldCgpKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNj
dXJhY3kpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0
V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRNb2NrR2VvbG9jYXRpb25Qb3Np
dGlvbiIpKTsKKworICAgIFdLUmV0YWluUHRyPFdLTXV0YWJsZURpY3Rpb25hcnlSZWY+IG1lc3Nh
Z2VCb2R5KEFkb3B0V0ssIFdLTXV0YWJsZURpY3Rpb25hcnlDcmVhdGUoKSk7CisKKyAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gbGF0aXR1ZGVLZXlXSyhBZG9wdFdLLCBXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygibGF0aXR1ZGUiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tEb3VibGVS
ZWY+IGxhdGl0dWRlV0soQWRvcHRXSywgV0tEb3VibGVDcmVhdGUobGF0aXR1ZGUpKTsKKyAgICBX
S0RpY3Rpb25hcnlBZGRJdGVtKG1lc3NhZ2VCb2R5LmdldCgpLCBsYXRpdHVkZUtleVdLLmdldCgp
LCBsYXRpdHVkZVdLLmdldCgpKTsKKworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBsb25n
aXR1ZGVLZXlXSyhBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygibG9uZ2l0
dWRlIikpOworICAgIFdLUmV0YWluUHRyPFdLRG91YmxlUmVmPiBsb25naXR1ZGVXSyhBZG9wdFdL
LCBXS0RvdWJsZUNyZWF0ZShsb25naXR1ZGUpKTsKKyAgICBXS0RpY3Rpb25hcnlBZGRJdGVtKG1l
c3NhZ2VCb2R5LmdldCgpLCBsb25naXR1ZGVLZXlXSy5nZXQoKSwgbG9uZ2l0dWRlV0suZ2V0KCkp
OworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGFjY3VyYWN5S2V5V0soQWRvcHRXSywg
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImFjY3VyYWN5IikpOworICAgIFdLUmV0YWlu
UHRyPFdLRG91YmxlUmVmPiBhY2N1cmFjeVdLKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRlKGFjY3Vy
YWN5KSk7CisgICAgV0tEaWN0aW9uYXJ5QWRkSXRlbShtZXNzYWdlQm9keS5nZXQoKSwgYWNjdXJh
Y3lLZXlXSy5nZXQoKSwgYWNjdXJhY3lXSy5nZXQoKSk7CisKKyAgICBXS0J1bmRsZVBvc3RNZXNz
YWdlKG1fYnVuZGxlLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCkpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAppbmRleCA3ZTg5YWM0YmNmNjZmZGI4OWU5
M2I4MTEyYWE3YWE2NWVlOGEyOTllLi42NzNhNGJlMzQzYzU0ZWI4YjM1MDFhNGY0ZDM0ZDM0ODI1
NjE2YWZmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5oCkBAIC05MCw2ICs5MCwxMCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBwb3N0U2V0V2luZG93SXNLZXkoYm9vbCk7CiAgICAgdm9pZCBwb3N0U2ltdWxhdGVXZWJOb3Rp
ZmljYXRpb25DbGljayh1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CiAKKyAgICAvLyBHZW9sb2Nh
dGlvbi4KKyAgICB2b2lkIHNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihib29sKTsKKyAgICB2b2lk
IHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdp
dHVkZSwgZG91YmxlIGFjY3VyYWN5KTsKKwogcHJpdmF0ZToKICAgICBJbmplY3RlZEJ1bmRsZSgp
OwogICAgIH5JbmplY3RlZEJ1bmRsZSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggNjE5N2E3OTRmZDE5YWYyZDVi
Mzc1Y2E3Mzk0NjU5YTAyMzU0NmUwOC4uMTNjMTgzODhiMzg2NGQ2Y2U1NWU5NmUxYjAwMGZjYjkx
ZTcxNDllMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0zOTMsMTEgKzM5Myw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6
c2V0UGx1Z2luc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIFdLQnVuZGxlU2V0UGx1Z2luc0Vu
YWJsZWQoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCBJbmplY3RlZEJ1bmRsZTo6
c2hhcmVkKCkucGFnZUdyb3VwKCksIGVuYWJsZWQpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNl
dEdlb2xvY2F0aW9uUGVybWlzc2lvbihib29sIGVuYWJsZWQpCi17Ci0gICAgV0tCdW5kbGVTZXRH
ZW9sb2NhdGlvblBlcm1pc3Npb24oSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCBJ
bmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZUdyb3VwKCksIGVuYWJsZWQpOwotfQotCiB2b2lk
IFRlc3RSdW5uZXI6OnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoYm9vbCBlbmFibGVk
KQogewogICAgICBXS0J1bmRsZVNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoSW5qZWN0
ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFn
ZUdyb3VwKCksIGVuYWJsZWQpOwpAQCAtNzcyLDYgKzc2NywxNyBAQCB2b2lkIFRlc3RSdW5uZXI6
OnNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2soSlNWYWx1ZVJlZiBub3RpZmljYXRpb24pCiAg
ICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBvc3RTaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNs
aWNrKG5vdGlmaWNhdGlvbklEKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRHZW9sb2NhdGlv
blBlcm1pc3Npb24oYm9vbCBlbmFibGVkKQoreworICAgIC8vIEZJWE1FOiB0aGlzIHNob3VsZCBi
ZSBkb25lIGJ5IGZyYW1lLgorICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5zZXRHZW9sb2Nh
dGlvblBlcm1pc3Npb24oZW5hYmxlZCk7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0dl
b2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3Vi
bGUgYWNjdXJhY3kpCit7CisgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnNldE1vY2tHZW9s
b2NhdGlvblBvc2l0aW9uKGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5KTsKK30KKwogYm9v
bCBUZXN0UnVubmVyOjpjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKQogewogICAgIFdLQnVuZGxl
RnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKEluamVjdGVkQnVu
ZGxlOjpzaGFyZWQoKS5wYWdlKCktPnBhZ2UoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDYyYWMwNWYzYmM4NDgzMmNj
MzZjYjYyY2ViNTc1OWIxNTMyYmYwNGIuLjYzMDA0MzFlZGFhNTc4YTRkOGI5ZjFjZDI1MmQ0NDU0
OTJiOTczNmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oCkBAIC05OCw3ICs5OCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFs
bG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhib29sKTsKICAgICB2b2lkIHNldEZyYW1lRmxhdHRl
bmluZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRQbHVnaW5zRW5hYmxlZChib29sKTsKLSAg
ICB2b2lkIHNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihib29sKTsKICAgICB2b2lkIHNldEphdmFT
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoYm9vbCk7CiAgICAgdm9pZCBzZXRQcml2YXRlQnJvd3Np
bmdFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoYm9vbCk7
CkBAIC0yNDgsNiArMjQ3LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUFsbFdlYk5vdGlm
aWNhdGlvblBlcm1pc3Npb25zKCk7CiAgICAgdm9pZCBzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNs
aWNrKEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uKTsKIAorICAgIC8vIEdlb2xvY2F0aW9uLgorICAg
IHZvaWQgc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGJvb2wpOworICAgIHZvaWQgc2V0TW9ja0dl
b2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3Vi
bGUgYWNjdXJhY3kpOworCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFt
ZSgpOwogCiAgICAgdm9pZCBzZXRQYWdlVmlzaWJpbGl0eShKU1N0cmluZ1JlZiBzdGF0ZSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1RhcmdldC5wcmkgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1RhcmdldC5wcmkKaW5kZXggOTNiNjhmMzNhNWVlNTMxMTY4NTZmOTdhOGE3
Yjc2N2E5MmI1MTljYi4uM2M0N2NhYjM4YTFiYTcyMDkwNWQ2Y2Y3N2I4NDFmNzhjZjQ4ZjYwNiAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UYXJnZXQucHJpCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGFyZ2V0LnByaQpAQCAtMTAsNiArMTAsNyBAQCBUQVJHRVQgPSBX
ZWJLaXRUZXN0UnVubmVyCiBIRUFERVJTICs9IFwKICAgICAkJHtST09UX1dFQktJVF9ESVJ9L1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L1F0SW5pdGlhbGl6ZVRlc3RGb250cy5oIFwKICAgICBFdmVu
dFNlbmRlclByb3h5LmggXAorICAgIEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmggXAogICAgIFBs
YXRmb3JtV2ViVmlldy5oIFwKICAgICBTdHJpbmdGdW5jdGlvbnMuaCBcCiAgICAgVGVzdENvbnRy
b2xsZXIuaCBcCkBAIC0yMyw2ICsyNCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHF0L1BsYXRmb3Jt
V2ViVmlld1F0LmNwcCBcCiAgICAgcXQvVGVzdENvbnRyb2xsZXJRdC5jcHAgXAogICAgIHF0L1Rl
c3RJbnZvY2F0aW9uUXQuY3BwIFwKKyAgICBHZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHAgXAog
ICAgIFRlc3RDb250cm9sbGVyLmNwcCBcCiAgICAgVGVzdEludm9jYXRpb24uY3BwIFwKICAgICBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKaW5kZXggM2RhMzg4MGViZGZkNjZjOGVkMGJiMDBkYmRmY2UwOTdiODExM2U2
NS4uMWNmNDViY2E2YjFhYWQxYTlmZGVhZWQxZDQ5MDVjMDI4NTkyOGQwMCAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTkxLDYgKzkxLDcgQEAgVGVzdENv
bnRyb2xsZXI6OlRlc3RDb250cm9sbGVyKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pCiAg
ICAgLCBtX2RpZFByaW50V2ViUHJvY2Vzc0NyYXNoZWRNZXNzYWdlKGZhbHNlKQogICAgICwgbV9z
aG91bGRFeGl0V2hlbldlYlByb2Nlc3NDcmFzaGVzKHRydWUpCiAgICAgLCBtX2JlZm9yZVVubG9h
ZFJldHVyblZhbHVlKHRydWUpCisgICAgLCBtX2lzR2VvbG9jYXRpb25QZXJtaXNzaW9uQWxsb3dl
ZChmYWxzZSkKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKEVGTCkKICAgICAsIG1fZXZlbnRTZW5kZXJQcm94eShuZXcgRXZlbnRT
ZW5kZXJQcm94eSh0aGlzKSkKICNlbmRpZgpAQCAtMTcwLDYgKzE3MSwxNSBAQCBzdGF0aWMgdm9p
ZCB1bmZvY3VzKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogICAgIHZp
ZXctPnNldFdpbmRvd0lzS2V5KGZhbHNlKTsKIH0KIAorc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5
Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdL
U2VjdXJpdHlPcmlnaW5SZWYsIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJt
aXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBUZXN0Q29udHJv
bGxlciogdGVzdENvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0
X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKKyAgICBpZiAodGVzdENvbnRyb2xsZXItPmlzR2Vv
bG9jYXRpb25QZXJtaXNzaW9uQWxsb3dlZCgpKQorICAgICAgICBXS0dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RBbGxvdyhwZXJtaXNzaW9uUmVxdWVzdCk7CisgICAgZWxzZQorICAgICAgICBX
S0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3REZW55KHBlcm1pc3Npb25SZXF1ZXN0KTsKK30K
KwogV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9s
ZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwgV0tEaWN0aW9uYXJ5UmVmLCBXS0V2ZW50TW9kaWZpZXJz
LCBXS0V2ZW50TW91c2VCdXR0b24sIGNvbnN0IHZvaWQqKQogewogICAgIFBsYXRmb3JtV2ViVmll
dyogdmlldyA9IG5ldyBQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlR2V0Q29udGV4dChvbGRQYWdlKSwg
V0tQYWdlR2V0UGFnZUdyb3VwKG9sZFBhZ2UpKTsKQEAgLTIwOSw3ICsyMTksNyBAQCBXS1BhZ2VS
ZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tV
UkxSZXF1ZXN0UmVmLCBXSwogICAgICAgICAwLCAvLyBwYWdlRGlkU2Nyb2xsCiAgICAgICAgIGV4
Y2VlZGVkRGF0YWJhc2VRdW90YSwKICAgICAgICAgMCwgLy8gcnVuT3BlblBhbmVsCi0gICAgICAg
IDAsIC8vIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QKKyAgICAg
ICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCwKICAgICAgICAg
MCwgLy8gaGVhZGVySGVpZ2h0CiAgICAgICAgIDAsIC8vIGZvb3RlckhlaWdodAogICAgICAgICAw
LCAvLyBkcmF3SGVhZGVyCkBAIC0zMTgsNiArMzI4LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6
aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogICAgIG1fcGFnZUdyb3Vw
LmFkb3B0KFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIocGFnZUdyb3VwSWRlbnRpZmll
ci5nZXQoKSkpOwogCiAgICAgbV9jb250ZXh0LmFkb3B0KFdLQ29udGV4dENyZWF0ZVdpdGhJbmpl
Y3RlZEJ1bmRsZVBhdGgoaW5qZWN0ZWRCdW5kbGVQYXRoKCkpKTsKKyAgICBtX2dlb2xvY2F0aW9u
UHJvdmlkZXIgPSBhZG9wdFB0cihuZXcgR2VvbG9jYXRpb25Qcm92aWRlck1vY2sobV9jb250ZXh0
LmdldCgpKSk7CiAKICAgICBjb25zdCBjaGFyKiBwYXRoID0gbGlicmFyeVBhdGhGb3JUZXN0aW5n
KCk7CiAgICAgaWYgKHBhdGgpIHsKQEAgLTM3OSw3ICszOTAsNyBAQCB2b2lkIFRlc3RDb250cm9s
bGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pCiAgICAgICAgIDAs
IC8vIHBhZ2VEaWRTY3JvbGwKICAgICAgICAgZXhjZWVkZWREYXRhYmFzZVF1b3RhLAogICAgICAg
ICAwLCAvLyBydW5PcGVuUGFuZWwKLSAgICAgICAgMCwgLy8gZGVjaWRlUG9saWN5Rm9yR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdAorICAgICAgICBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0LCAvLyBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0CiAgICAgICAgIDAsIC8vIGhlYWRlckhlaWdodAogICAgICAgICAwLCAvLyBmb290
ZXJIZWlnaHQKICAgICAgICAgMCwgLy8gZHJhd0hlYWRlcgpAQCAtOTU5LDYgKzk3MCwxMSBAQCB2
b2lkIFRlc3RDb250cm9sbGVyOjpzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKHVpbnQ2NF90
IG5vdGlmaWNhdGlvbklEKQogICAgIG1fd2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuc2ltdWxhdGVX
ZWJOb3RpZmljYXRpb25DbGljayhub3RpZmljYXRpb25JRCk7CiB9CiAKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91Ymxl
IGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQoreworICAgIG1fZ2VvbG9jYXRpb25Qcm92aWRl
ci0+c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24obGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJh
Y3kpOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiBv
cmlnaW4sIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKIHsKICAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNv
bnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QocGFnZSwgb3JpZ2luLCByZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCAwZDMzNzE3YjcxYzZhOTE4NjcxNWNjZWRmNjFi
MjBkZDY3YmYzM2NjLi44MTI1YTM2NDZmOWQ4ZTg3YmE1MTY5YWVkMzg1NWU0N2Q5MTJkNGRlIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0yNyw2ICsyNyw3IEBA
CiAjZGVmaW5lIFRlc3RDb250cm9sbGVyX2gKIAogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyLmgiCisjaW5jbHVkZSA8R2VvbG9jYXRpb25Qcm92aWRlck1vY2suaD4KICNpbmNsdWRl
IDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8c3RyaW5nPgogI2luY2x1ZGUgPHZl
Y3Rvcj4KQEAgLTY1LDYgKzY2LDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2ltdWxhdGVXZWJO
b3RpZmljYXRpb25DbGljayh1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CiAKKyAgICAvLyBHZW9s
b2NhdGlvbi4KKyAgICB2b2lkIHNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihib29sIGVuYWJsZWQp
IHsgbV9pc0dlb2xvY2F0aW9uUGVybWlzc2lvbkFsbG93ZWQgPSBlbmFibGVkOyB9CisgICAgYm9v
bCBpc0dlb2xvY2F0aW9uUGVybWlzc2lvbkFsbG93ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzR2Vv
bG9jYXRpb25QZXJtaXNzaW9uQWxsb3dlZDsgfQorICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9u
UG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJh
Y3kpOworCiAgICAgYm9vbCByZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKCk7CiAKIHByaXZh
dGU6CkBAIC0xMjMsNiArMTI5LDcgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8UGxhdGZvcm1XZWJW
aWV3PiBtX21haW5XZWJWaWV3OwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gbV9jb250
ZXh0OwogICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBtX3BhZ2VHcm91cDsKKyAgICBP
d25QdHI8R2VvbG9jYXRpb25Qcm92aWRlck1vY2s+IG1fZ2VvbG9jYXRpb25Qcm92aWRlcjsKIAog
ICAgIGVudW0gU3RhdGUgewogICAgICAgICBJbml0aWFsLApAQCAtMTQzLDYgKzE1MCw4IEBAIHBy
aXZhdGU6CiAgICAgCiAgICAgYm9vbCBtX2JlZm9yZVVubG9hZFJldHVyblZhbHVlOwogCisgICAg
Ym9vbCBtX2lzR2VvbG9jYXRpb25QZXJtaXNzaW9uQWxsb3dlZDsKKwogICAgIEV2ZW50U2VuZGVy
UHJveHkqIG1fZXZlbnRTZW5kZXJQcm94eTsKIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggYTU0ZmY2NzhhOWM0NGJiOWRlM2EwZjVhY2MwYWQ5M2E5
ZmI2NjBiZi4uODBiZmE5ZTczNmQxMWEwNjMyYmVjMDIxYmUwMGQ5MjViZGE4ZGNlNCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTM0Niw2ICszNDYsMzMg
QEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAg
IGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0R2VvbG9j
YXRpb25QZXJtaXNzaW9uIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VC
b2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiBlbmFi
bGVkV0sgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1lc3NhZ2VCb2R5KTsKKyAgICAgICAg
VGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihXS0Jvb2xl
YW5HZXRWYWx1ZShlbmFibGVkV0spKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0TW9ja0dlb2xv
Y2F0aW9uUG9zaXRpb24iKSkgeworICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJv
ZHkpID09IFdLRGljdGlvbmFyeUdldFR5cGVJRCgpKTsKKyAgICAgICAgV0tEaWN0aW9uYXJ5UmVm
IG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVz
c2FnZUJvZHkpOworCisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBsYXRpdHVkZUtl
eVdLKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJsYXRpdHVkZSIpKTsK
KyAgICAgICAgV0tEb3VibGVSZWYgbGF0aXR1ZGVXSyA9IHN0YXRpY19jYXN0PFdLRG91YmxlUmVm
PihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgbGF0aXR1
ZGVLZXlXSy5nZXQoKSkpOworICAgICAgICBkb3VibGUgbGF0aXR1ZGUgPSBXS0RvdWJsZUdldFZh
bHVlKGxhdGl0dWRlV0spOworCisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBsb25n
aXR1ZGVLZXlXSyhBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygibG9uZ2l0
dWRlIikpOworICAgICAgICBXS0RvdWJsZVJlZiBsb25naXR1ZGVXSyA9IHN0YXRpY19jYXN0PFdL
RG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFy
eSwgbG9uZ2l0dWRlS2V5V0suZ2V0KCkpKTsKKyAgICAgICAgZG91YmxlIGxvbmdpdHVkZSA9IFdL
RG91YmxlR2V0VmFsdWUobG9uZ2l0dWRlV0spOworCisgICAgICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBhY2N1cmFjeUtleVdLKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKCJhY2N1cmFjeSIpKTsKKyAgICAgICAgV0tEb3VibGVSZWYgYWNjdXJhY3lXSyA9IHN0YXRp
Y19jYXN0PFdLRG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5
RGljdGlvbmFyeSwgYWNjdXJhY3lLZXlXSy5nZXQoKSkpOworICAgICAgICBkb3VibGUgYWNjdXJh
Y3kgPSBXS0RvdWJsZUdldFZhbHVlKGFjY3VyYWN5V0spOworCisgICAgICAgIFRlc3RDb250cm9s
bGVyOjpzaGFyZWQoKS5zZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihsYXRpdHVkZSwgbG9uZ2l0
dWRlLCBhY2N1cmFjeSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJL
aXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3
Y2VkZDBlYjJjMjg5MGNkNTVkZGY3NTM3NjUyYjk5YjU3Y2ZlMDVmLi41YmNkMjdmNzU3MzNmZmU0
ZWYzNjk2YjdhMGVmZTQwNjA0MDZjYWMxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMjMsNiArMjMsNyBAQAogLyogQmVnaW4gUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8K
IAkJMEY1MTY5Q0IxNDQ1MjIyRDAwRTBBOUQ3IC8qIFdlYktpdC5mcmFtZXdvcmsgaW4gRnJhbWV3
b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUxNjlDQTE0NDUyMjJE
MDBFMEE5RDcgLyogV2ViS2l0LmZyYW1ld29yayAqLzsgfTsKIAkJMEY1MTY5Q0MxNDQ1MjIyRDAw
RTBBOUQ3IC8qIFdlYktpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUxNjlDQTE0NDUyMjJEMDBFMEE5RDcgLyogV2ViS2l0LmZy
YW1ld29yayAqLzsgfTsKKwkJMjZENzU4RTcxNjBCRUNERDAwMjY4NDcyIC8qIEdlb2xvY2F0aW9u
UHJvdmlkZXJNb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI2RDc1OEU1MTYwQkVDREMwMDI2ODQ3MiAvKiBHZW9sb2NhdGlvblByb3ZpZGVyTW9j
ay5jcHAgKi87IH07CiAJCTI5MjEwRUFFMTQ0Q0FDQjcwMDgzNUJCNSAvKiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI5MjEwRUE5MTQ0Q0FDQjIwMDgzNUJCNSAvKiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cCAqLzsgfTsKIAkJMjkyMTBFQjAxNDRDQUNCRDAwODM1QkI1IC8qIEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDI5MjEwRUEyMTQ0Q0FBQTUwMDgzNUJCNSAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAg
Ki87IH07CiAJCTI5MjEwRUI0MTQ0Q0FDRDUwMDgzNUJCNSAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1h
cmtlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
OTIxMEVCMTE0NENBQ0Q0MDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIuY3BwICov
OyB9OwpAQCAtMTAwLDYgKzEwMSw4IEBACiAKIC8qIEJlZ2luIFBCWEZpbGVSZWZlcmVuY2Ugc2Vj
dGlvbiAqLwogCQkwRjUxNjlDQTE0NDUyMjJEMDBFMEE5RDcgLyogV2ViS2l0LmZyYW1ld29yayAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIu
ZnJhbWV3b3JrOyBwYXRoID0gV2ViS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKKwkJMjZENzU4RTUxNjBCRUNEQzAwMjY4NDcyIC8qIEdlb2xvY2F0aW9u
UHJvdmlkZXJNb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdl
b2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MjZENzU4RTYxNjBCRUNERDAwMjY4NDcyIC8qIEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5MjEwRUEyMTQ0Q0FBQTUwMDgzNUJCNSAv
KiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTI5MjEwRUEzMTQ0Q0FBQTUwMDgzNUJCNSAvKiBBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTIxMEVBODE0NENB
Qjg4MDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTI1NSw2ICsyNTgsOCBAQAogCQkJCTUzMjJGQjQxMTNGREEwQ0QwMDQxQUJD
QyAvKiBDeWNsaWNSZWR1bmRhbmN5Q2hlY2suY3BwICovLAogCQkJCTUzMjJGQjQyMTNGREEwQ0Qw
MDQxQUJDQyAvKiBDeWNsaWNSZWR1bmRhbmN5Q2hlY2suaCAqLywKIAkJCQk1NjcwQjgyNjEzODZG
QzEzMDAyRUIzNTUgLyogRXZlbnRTZW5kZXJQcm94eS5oICovLAorCQkJCTI2RDc1OEU1MTYwQkVD
REMwMDI2ODQ3MiAvKiBHZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHAgKi8sCisJCQkJMjZENzU4
RTYxNjBCRUNERDAwMjY4NDcyIC8qIEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmggKi8sCiAJCQkJ
NTMyMkZCNDQxM0ZEQTBFQTAwNDFBQkNDIC8qIFBpeGVsRHVtcFN1cHBvcnQuY3BwICovLAogCQkJ
CTUzMjJGQjQ1MTNGREEwRUEwMDQxQUJDQyAvKiBQaXhlbER1bXBTdXBwb3J0LmggKi8sCiAJCQkJ
QkM3OTM0REQxMTkwNjZFQzAwNUVBOEUyIC8qIFBsYXRmb3JtV2ViVmlldy5oICovLApAQCAtNTY1
LDYgKzU3MCw3IEBACiAJCQlmaWxlcyA9ICgKIAkJCQlCQzc5MzQwMDExOEY3Qzg0MDA1RUE4RTIg
LyogbWFpbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUzMjJGQjQzMTNGREEwQ0QwMDQxQUJDQyAv
KiBDeWNsaWNSZWR1bmRhbmN5Q2hlY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjZENzU4RTcx
NjBCRUNERDAwMjY4NDcyIC8qIEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUzMjJGQjQ2MTNGREEwRUEwMDQxQUJDQyAvKiBQaXhlbER1bXBTdXBwb3J0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDNzkzNEU4MTE5MDY4NDYwMDVFQThFMiAvKiBQbGF0Zm9y
bVdlYlZpZXdNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzc5MzQzMTExOEY3RjE5MDA1RUE4
RTIgLyogVGVzdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL3dpbi9XZWJLaXRUZXN0UnVubmVyLnZjcHJvaiBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvd2luL1dlYktpdFRlc3RSdW5uZXIudmNwcm9qCmluZGV4IDY4YTRiOGYw
NTYyZDdkMDg1NzMwOWZlZmJjNjVlY2Y5NzM4ZGU0NTIuLjQ5YWUzOGRlZDU1YWU5NWNhZmRhNmQ1
MTY1NWJmMDJlMDJiZDJiNDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2lu
L1dlYktpdFRlc3RSdW5uZXIudmNwcm9qCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2lu
L1dlYktpdFRlc3RSdW5uZXIudmNwcm9qCkBAIC00NzksNiArNDc5LDE0IEBACiAJCQk+CiAJCTwv
RmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cR2VvbG9jYXRpb25Qcm92aWRlck1v
Y2suY3BwIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXEdl
b2xvY2F0aW9uUHJvdmlkZXJNb2NrLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKIAkJCVJl
bGF0aXZlUGF0aD0iLi5cUGl4ZWxEdW1wU3VwcG9ydC5jcHAiCiAJCQk+CiAJCTwvRmlsZT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBiZGM1Yjc4OWUwMmYxY2NmYjk0YTc3ZmE0MDQ4NTkyNmI4OGY2YzEyLi4zMWYxMmY0N2Y1
NTQ4YWE1ZDRkMmI4N2YyNjZlMTczOGM3ZjA0OWZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MTItMDktMjAgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgW1dLMl0gQWRkIGJhc2ljIHRlc3Rpbmcgc3VwcG9ydCBmb3IgR2VvbG9jYXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3Mjc4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93azIv
U2tpcHBlZDogVW5za2lwIHRoZSBwYXNzaW5nIHRlc3RzLgorCiAyMDEyLTA5LTIwICBEaXJrIFBy
YW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIG1ha2UgU2tpcCwgV29udEZp
eCBiZSB0aGUgb25seSBleHBlY3RhdGlvbnMgb24gYSBsaW5lCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lw
cGVkCmluZGV4IDE5MTdiNmNlZmIzNzk5ZWJkYWQzZTk4MGYzNTc2ODE2ZDg0ZDAzMTEuLjYyNGU0
ZDFmMTQyZmQxZGIzYmEzOGFlNmE5YzJkOTI4NGI0MzcwNjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9T
a2lwcGVkCkBAIC0yODgsNDAgKzI4OCwxNiBAQCBwbGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGlu
Zy9kZWxldGlvblVJLWRpZmZlcmluZy1iYWNrZ3JvdW5kLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0
aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktbWluaW11bS1zaXplLmh0bWwKIHBsYXRmb3JtL21hYy9l
ZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW9uVUktc3VjY2Vzc2Z1bC1kZWxldGlvbi5odG1sCiAKLSMg
V2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRNb2NrR2VvbG9j
YXRpb25Qb3NpdGlvbgotIyBhbmQgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0TW9ja0dlb2xvY2F0
aW9uRXJyb3IKLSMgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTIw
MT4KLWZhc3QvZG9tL0dlb2xvY2F0aW9uL2NhbGxiYWNrLWV4Y2VwdGlvbi5odG1sCi1mYXN0L2Rv
bS9HZW9sb2NhdGlvbi9jYWxsYmFjay10by1kZWxldGVkLWNvbnRleHQuaHRtbAotZmFzdC9kb20v
R2VvbG9jYXRpb24vY2FsbGJhY2stdG8tcmVtb3RlLWNvbnRleHQuaHRtbAotZmFzdC9kb20vR2Vv
bG9jYXRpb24vY2FsbGJhY2stdG8tcmVtb3RlLWNvbnRleHQyLmh0bWwKLWZhc3QvZG9tL0dlb2xv
Y2F0aW9uL2NsZWFyLXdhdGNoLWludmFsaWQtaWQtY3Jhc2guaHRtbAorIyBHZW9sb2NhdGlvbiBU
ZXN0cyBmb3Igd2hpY2ggV2ViS2l0VGVzdFJ1bm5lciBzdGlsbCBtaXNzZXMgc3VwcG9ydC4KIGZh
c3QvZG9tL0dlb2xvY2F0aW9uL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLWZvci1tdWx0aXBs
ZS1yZXF1ZXN0cy5odG1sCiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9kZWxheWVkLXBlcm1pc3Npb24t
YWxsb3dlZC5odG1sCiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9kZWxheWVkLXBlcm1pc3Npb24tZGVu
aWVkLWZvci1tdWx0aXBsZS1yZXF1ZXN0cy5odG1sCiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9kZWxh
eWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKLWZhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5l
Y3RlZC1mcmFtZS1hbHJlYWR5Lmh0bWwKLWZhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3Rl
ZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC5odG1sCi1mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNj
b25uZWN0ZWQtZnJhbWUuaHRtbAogZmFzdC9kb20vR2VvbG9jYXRpb24vZXJyb3ItY2xlYXItd2F0
Y2guaHRtbAogZmFzdC9kb20vR2VvbG9jYXRpb24vZXJyb3IuaHRtbAogZmFzdC9kb20vR2VvbG9j
YXRpb24vbWF4aW11bS1hZ2UuaHRtbAotZmFzdC9kb20vR2VvbG9jYXRpb24vbXVsdGlwbGUtcmVx
dWVzdHMuaHRtbAotZmFzdC9kb20vR2VvbG9jYXRpb24vcGVybWlzc2lvbi1kZW5pZWQtYWxyZWFk
eS1jbGVhci13YXRjaC5odG1sCiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9wZXJtaXNzaW9uLWRlbmll
ZC1hbHJlYWR5LWVycm9yLmh0bWwKLWZhc3QvZG9tL0dlb2xvY2F0aW9uL3Blcm1pc3Npb24tZGVu
aWVkLWFscmVhZHktc3VjY2Vzcy5odG1sCi1mYXN0L2RvbS9HZW9sb2NhdGlvbi9wZXJtaXNzaW9u
LWRlbmllZC1zdG9wcy13YXRjaGVzLmh0bWwKLWZhc3QvZG9tL0dlb2xvY2F0aW9uL3Blcm1pc3Np
b24tZGVuaWVkLmh0bWwKLWZhc3QvZG9tL0dlb2xvY2F0aW9uL3Bvc2l0aW9uLXN0cmluZy5odG1s
CiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9yZWVudHJhbnQtZXJyb3IuaHRtbAotZmFzdC9kb20vR2Vv
bG9jYXRpb24vcmVlbnRyYW50LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKLWZhc3QvZG9tL0dlb2xv
Y2F0aW9uL3JlZW50cmFudC1zdWNjZXNzLmh0bWwKLWZhc3QvZG9tL0dlb2xvY2F0aW9uL3N1Y2Nl
c3MtY2xlYXItd2F0Y2guaHRtbAotZmFzdC9kb20vR2VvbG9jYXRpb24vc3VjY2Vzcy5odG1sCi1m
YXN0L2RvbS9HZW9sb2NhdGlvbi90aW1lb3V0Lmh0bWwKLWZhc3QvZG9tL0dlb2xvY2F0aW9uL3Rp
bWVvdXQtY2xlYXItd2F0Y2guaHRtbAotZmFzdC9kb20vR2VvbG9jYXRpb24vdGltZW91dC16ZXJv
Lmh0bWwKLWZhc3QvZG9tL0dlb2xvY2F0aW9uL3RpbWVzdGFtcC5odG1sCiBmYXN0L2RvbS9HZW9s
b2NhdGlvbi93YXRjaC5odG1sCiBmYXN0L2RvbS9HZW9sb2NhdGlvbi93aW5kb3ctY2xvc2UtY3Jh
c2guaHRtbAogCg==
</data>
<flag name="review"
          id="176976"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
      

    </bug>

</bugzilla>