<?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>50511</bug_id>
          
          <creation_ts>2010-12-03 20:31:03 -0800</creation_ts>
          <short_desc>WebKit2: Need client functions to notify app when the url changes due to a fragment navigation</short_desc>
          <delta_ts>2010-12-04 13:52:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>317222</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-03 20:31:03 -0800</bug_when>
    <thetext>WebKit2 needs a client function to notify app when the url changes due to a fragment navigation, eg. didChangeLocationWithinPageForFrame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317223</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-03 20:31:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/8729794&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317229</commentid>
    <comment_count>2</comment_count>
      <attachid>75597</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-03 21:27:22 -0800</bug_when>
    <thetext>Created attachment 75597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317233</commentid>
    <comment_count>3</comment_count>
      <attachid>75597</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-12-03 21:51:41 -0800</bug_when>
    <thetext>Comment on attachment 75597
Patch

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

&gt; WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:259
&gt; +    webPage-&gt;injectedBundleLoaderClient().didCancelClientRedirectForFrame(webPage, m_frame);

You should mention this change in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317307</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-04 13:52:51 -0800</bug_when>
    <thetext>Landed in r73336.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75597</attachid>
            <date>2010-12-03 21:27:22 -0800</date>
            <delta_ts>2010-12-03 21:51:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>nav.diff</filename>
            <type>text/plain</type>
            <size>40285</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MzMyNCkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzggQEAKKzIwMTAtMTItMDMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQy
OiBOZWVkIGNsaWVudCBmdW5jdGlvbnMgdG8gbm90aWZ5IGFwcCB3aGVuIHRoZSB1cmwgY2hhbmdl
cyBkdWUgdG8gYSBmcmFnbWVudCBuYXZpZ2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDUxMQorCisgICAgICAgIFBpcGUgZGlkQ2hhbmdlTG9j
YXRpb25XaXRoaW5QYWdlRm9yRnJhbWUgdXAgdGhyb3VnaCB0aGUgVUlQcm9jZXNzIHRvIHRoZSBX
S1BhZ2VMb2FkQ2xpZW50LAorICAgICAgICB1cGRhdGluZyB0aGUgV2ViRnJhbWVQcm94eSdzIFVS
TCBvbiB0aGUgd2F5LgorCisgICAgICAgIFRlc3Q6IFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25X
aXRoaW5QYWdlRm9yRnJhbWUKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwOgorICAgICAgICAoUVdLUGFn
ZTo6UVdLUGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZVByb3h5OjpkaWRDaGFuZ2VVUkxXaXRob3V0TmF2aWdhdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyQ2xp
ZW50OjpkaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENoYW5nZUxvY2F0aW9u
V2l0aGluUGFnZUZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
OjpkaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6
OkluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6ZGlkRGlzcGxheUluc2VjdXJlQ29udGVu
dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xp
ZW50OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2FuY2Vs
Q2xpZW50UmVkaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2UpOgorCiAyMDEwLTEyLTAzICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHRoZSBXZWIg
SW5zcGVjdG9yIHdpbmRvdyBzaG93IGFuZCBiZSB1c2FibGUgb24gTWFjLgpJbmRleDogV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAJKHJldmlzaW9uIDczMzExKQorKysgV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNSw2ICsxMTUsMTEg
QEAgdm9pZCBXZWJGcmFtZVByb3h5OjpkaWRGYWlsTG9hZCgpCiAgICAgbV9sb2FkU3RhdGUgPSBM
b2FkU3RhdGVGaW5pc2hlZDsKIH0KIAordm9pZCBXZWJGcmFtZVByb3h5OjpkaWRDaGFuZ2VVUkxX
aXRob3V0TmF2aWdhdGlvbihjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICBtX3VybCA9IHVybDsK
K30KKwogdm9pZCBXZWJGcmFtZVByb3h5OjpkaWRSZWNlaXZlVGl0bGUoY29uc3QgU3RyaW5nJikK
IHsKIH0KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgJKHJldmlzaW9uIDczMzExKQor
KysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC05
NSw2ICs5NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENvbW1pdExvYWQoKTsKICAgICB2b2lk
IGRpZEZpbmlzaExvYWQoKTsKICAgICB2b2lkIGRpZEZhaWxMb2FkKCk7CisgICAgdm9pZCBkaWRD
aGFuZ2VVUkxXaXRob3V0TmF2aWdhdGlvbihjb25zdCBTdHJpbmcmKTsgLy8gZWcuIGFuY2hvciBu
YXZpZ2F0aW9uLCBzZXNzaW9uIHN0YXRlIGNoYW5nZS4KICAgICB2b2lkIGRpZFJlY2VpdmVUaXRs
ZShjb25zdCBTdHJpbmcmKTsKIAogICAgIHZvaWQgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihXZWJD
b3JlOjpQb2xpY3lBY3Rpb24sIHVpbnQ2NF90IGxpc3RlbmVySUQpOwpJbmRleDogV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwCShyZXZpc2lvbiA3MzMxMSkKKysrIFdlYktpdDIvVUlQ
cm9jZXNzL1dlYkxvYWRlckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDYgKzg4LDE0
IEBAIHZvaWQgV2ViTG9hZGVyQ2xpZW50OjpkaWRGYWlsTG9hZFdpdGhFcnIKICAgICBtX2NsaWVu
dC5kaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSks
IHRvQVBJKGVycm9yKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKIH0K
IAordm9pZCBXZWJMb2FkZXJDbGllbnQ6OmRpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZy
YW1lKFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIEFQSU9iamVjdCog
dXNlckRhdGEpCit7CisgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBh
Z2VGb3JGcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQuZGlkQ2hhbmdlTG9j
YXRpb25XaXRoaW5QYWdlRm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEko
dXNlckRhdGEpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKwogdm9pZCBXZWJMb2FkZXJDbGll
bnQ6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgU3Ry
aW5nJiB0aXRsZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIEFQSU9iamVjdCogdXNlckRhdGEpCiB7
CiAgICAgaWYgKCFtX2NsaWVudC5kaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSkKSW5kZXg6IFdlYktp
dDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQ
cm9jZXNzL1dlYkxvYWRlckNsaWVudC5oCShyZXZpc2lvbiA3MzMxMSkKKysrIFdlYktpdDIvVUlQ
cm9jZXNzL1dlYkxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKFdlYlBhZ2VQ
cm94eSosIFdlYkZyYW1lUHJveHkqLCBBUElPYmplY3QqKTsKICAgICB2b2lkIGRpZEZpbmlzaExv
YWRGb3JGcmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgQVBJT2JqZWN0Kik7CiAg
ICAgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdlYlBhZ2VQcm94eSosIFdlYkZy
YW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgQVBJT2JqZWN0Kik7Cisg
ICAgdm9pZCBkaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZShXZWJQYWdlUHJveHkq
LCBXZWJGcmFtZVByb3h5KiwgQVBJT2JqZWN0Kik7CiAgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVG
b3JGcmFtZShXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmLCBXZWJGcmFtZVByb3h5KiwgQVBJ
T2JqZWN0Kik7CiAgICAgdm9pZCBkaWRGaXJzdExheW91dEZvckZyYW1lKFdlYlBhZ2VQcm94eSos
IFdlYkZyYW1lUHJveHkqLCBBUElPYmplY3QqKTsKICAgICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dEZvckZyYW1lKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBBUElP
YmplY3QqKTsKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gNzMz
MTEpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04NjIsNiArODYyLDE5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZy
YW1lKHUKICAgICBtX2xvYWRlckNsaWVudC5kaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKHRo
aXMsIGZyYW1lLCBlcnJvciwgdXNlckRhdGEuZ2V0KCkpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU3RyaW5nJiB1cmwsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQor
eworICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOworICAgIFdlYkNvbnRleHRVc2VyTWVz
c2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIHBhZ2VOYW1lc3BhY2UoKS0+Y29u
dGV4dCgpKTsKKyAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBwcm9jZXNzKCktPndl
YkZyYW1lKGZyYW1lSUQpOworICAgIGZyYW1lLT5kaWRDaGFuZ2VVUkxXaXRob3V0TmF2aWdhdGlv
bih1cmwpOworCisgICAgbV9sb2FkZXJDbGllbnQuZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdl
Rm9yRnJhbWUodGhpcywgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKK30KKwogdm9pZCBXZWJQYWdl
UHJveHk6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0
cmluZyYgdGl0bGUsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQogewogICAg
IFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgJKHJldmlzaW9uIDczMzExKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI4Myw2ICsyODMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
RmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7CiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAgdm9pZCBkaWRGYWlsTG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZENoYW5nZUxvY2F0aW9u
V2l0aGluUGFnZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
Kik7CiAgICAgdm9pZCBkaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKik7CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CShyZXZpc2lvbiA3MzMxMSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtODYsNiArODYsNyBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlUHJveHkgewogICAgIERpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IFdURjo6U3RyaW5nIHRpdGxlLCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNv
ZGVyIHVzZXJEYXRhKQogICAgIERpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVz
ZXJEYXRhKQogICAgIERpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpCisg
ICAgRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
V1RGOjpTdHJpbmcgdXJsLCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVy
IHVzZXJEYXRhKQogCiAgICAgRnJhbWVEaWRCZWNvbWVGcmFtZVNldCh1aW50NjRfdCBmcmFtZUlE
LCBib29sIHZhbHVlKQogCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAkocmV2aXNpb24g
NzMzMTEpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAkod29ya2luZyBjb3B5
KQpAQCAtNTgsNiArNTgsNyBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRDb21taXRMb2FkRm9y
RnJhCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZUNh
bGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJE
YXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZEZp
bmlzaExvYWRGb3JGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFt
ZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYg
dm9pZCAoKldLUGFnZURpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWVDYWxsYmFjaykoV0tQYWdl
UmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJlZiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VE
aWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFn
ZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZFJlY2VpdmVUaXRsZUZvckZyYW1lQ2Fs
bGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tGcmFtZVJlZiBmcmFt
ZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYg
dm9pZCAoKldLUGFnZURpZEZpcnN0TGF5b3V0Rm9yRnJhbWVDYWxsYmFjaykoV0tQYWdlUmVmIHBh
Z2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXRGb3JGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwg
V0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKQEAgLTkwLDYgKzkx
LDcgQEAgc3RydWN0IFdLUGFnZUxvYWRlckNsaWVudCB7CiAgICAgV0tQYWdlRGlkRmluaXNoRG9j
dW1lbnRMb2FkRm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICBkaWRGaW5p
c2hEb2N1bWVudExvYWRGb3JGcmFtZTsKICAgICBXS1BhZ2VEaWRGaW5pc2hMb2FkRm9yRnJhbWVD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZEZpbmlzaExvYWRGb3JG
cmFtZTsKICAgICBXS1BhZ2VEaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWU7CisgICAg
V0tQYWdlRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWVDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICBkaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZTsKICAgICBXS1Bh
Z2VEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lOwogICAgIFdLUGFnZURpZEZpcnN0TGF5b3V0
Rm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRmlyc3RM
YXlvdXRGb3JGcmFtZTsKICAgICBXS1BhZ2VEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRG
b3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dEZvckZyYW1lOwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcAkocmV2
aXNpb24gNzMzMTEpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMxNyw2ICszMTcsNyBAQCBRV0tQYWdlOjpRV0tQYWdlKFdLUGFnZU5h
bWVzcGFjZVJlZiBuYW1lCiAgICAgICAgIHF0X3drX2RpZEZpbmlzaERvY3VtZW50TG9hZEZvckZy
YW1lLAogICAgICAgICBxdF93a19kaWRGaW5pc2hMb2FkRm9yRnJhbWUsCiAgICAgICAgIHF0X3dr
X2RpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUsCisgICAgICAgIDAsIC8qIGRpZENoYW5nZUxv
Y2F0aW9uV2l0aGluUGFnZUZvckZyYW1lICovCiAgICAgICAgIHF0X3drX2RpZFJlY2VpdmVUaXRs
ZUZvckZyYW1lLAogICAgICAgICBxdF93a19kaWRGaXJzdExheW91dEZvckZyYW1lLAogICAgICAg
ICBxdF93a19kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSwKSW5kZXg6IFdl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJD
bGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCShyZXZpc2lvbiA3MzMxMSkKKysr
IFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2Fk
ZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDE2IEBAIHZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpkaWQKICAgICB1c2VyRGF0YSA9IGFkb3B0UmVm
KHRvSW1wbCh1c2VyRGF0YVRvUGFzcykpOwogfQogCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZUxv
YWRlckNsaWVudDo6ZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUoV2ViUGFnZSog
cGFnZSwgV2ViRnJhbWUqIGZyYW1lLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpCit7Cisg
ICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgV0tUeXBlUmVmIHVzZXJEYXRhVG9QYXNzID0gMDsKKyAgICBt
X2NsaWVudC5kaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZSh0b0FQSShwYWdlKSwg
dG9BUEkoZnJhbWUpLCAmdXNlckRhdGFUb1Bhc3MsIG1fY2xpZW50LmNsaWVudEluZm8pOworICAg
IHVzZXJEYXRhID0gYWRvcHRSZWYodG9JbXBsKHVzZXJEYXRhVG9QYXNzKSk7Cit9CisKIHZvaWQg
SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShX
ZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBXZWJGcmFtZSogZnJhbWUsIFJlZlB0
cjxBUElPYmplY3Q+JiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIW1fY2xpZW50LmRpZFJlY2VpdmVU
aXRsZUZvckZyYW1lKQpAQCAtMTQ1LDYgKzE1NSwyNiBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFn
ZUxvYWRlckNsaWVudDo6ZGlkCiAgICAgdXNlckRhdGEgPSBhZG9wdFJlZih0b0ltcGwodXNlckRh
dGFUb1Bhc3MpKTsKIH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRp
ZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdlKiBwYWdlLCBXZWJGcmFtZSog
ZnJhbWUsIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSkKK3sKKyAgICBpZiAoIW1fY2xpZW50
LmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgV0tUeXBlUmVmIHVzZXJEYXRhVG9QYXNzID0gMDsKKyAgICBtX2NsaWVudC5kaWREaXNwbGF5
SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgJnVzZXJE
YXRhVG9QYXNzLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICB1c2VyRGF0YSA9IGFkb3B0UmVm
KHRvSW1wbCh1c2VyRGF0YVRvUGFzcykpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZUxv
YWRlckNsaWVudDo6ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViUGFnZSogcGFnZSwg
V2ViRnJhbWUqIGZyYW1lLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpCit7CisgICAgaWYg
KCFtX2NsaWVudC5kaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgV0tUeXBlUmVmIHVzZXJEYXRhVG9QYXNzID0gMDsKKyAgICBtX2NsaWVudC5kaWRS
dW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCAmdXNl
ckRhdGFUb1Bhc3MsIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIHVzZXJEYXRhID0gYWRvcHRS
ZWYodG9JbXBsKHVzZXJEYXRhVG9QYXNzKSk7Cit9CisKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdl
TG9hZGVyQ2xpZW50OjpkaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lKFdlYlBhZ2UqIHBhZ2Us
IFdlYkZyYW1lKiBmcmFtZSwgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCkKIHsKICAgICBpZiAoIW1f
Y2xpZW50LmRpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWUpCkBAIC0xNjksMTQgKzE5OSw2IEBA
IHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Ojp3aWwKICAgICBtX2NsaWVudC53
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKGZyYW1l
KSwgdG9VUkxSZWYodXJsLmltcGwoKSksIGRlbGF5LCBkYXRlLCBtX2NsaWVudC5jbGllbnRJbmZv
KTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZENoYW5nZUxv
Y2F0aW9uV2l0aGluUGFnZUZvckZyYW1lKFdlYlBhZ2UqIHBhZ2UsIFdlYkZyYW1lKiBmcmFtZSkK
LXsKLSAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1l
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2NsaWVudC5kaWRDaGFuZ2VMb2NhdGlvbldpdGhp
blBhZ2VGb3JGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCBtX2NsaWVudC5jbGllbnRJ
bmZvKTsKLX0KLQogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZEhhbmRs
ZU9ubG9hZEV2ZW50c0ZvckZyYW1lKFdlYlBhZ2UqIHBhZ2UsIFdlYkZyYW1lKiBmcmFtZSkKIHsK
ICAgICBpZiAoIW1fY2xpZW50LmRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lKQpAQCAtMTg1
LDI0ICsyMDcsNCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6ZGlkCiAg
ICAgbV9jbGllbnQuZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUodG9BUEkocGFnZSksIHRv
QVBJKGZyYW1lKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5k
bGVQYWdlTG9hZGVyQ2xpZW50OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2Vi
UGFnZSogcGFnZSwgV2ViRnJhbWUqIGZyYW1lLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEp
Ci17Ci0gICAgaWYgKCFtX2NsaWVudC5kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIFdLVHlwZVJlZiB1c2VyRGF0YVRvUGFzcyA9IDA7Ci0g
ICAgbV9jbGllbnQuZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKHRvQVBJKHBhZ2Up
LCB0b0FQSShmcmFtZSksICZ1c2VyRGF0YVRvUGFzcywgbV9jbGllbnQuY2xpZW50SW5mbyk7Ci0g
ICAgdXNlckRhdGEgPSBhZG9wdFJlZih0b0ltcGwodXNlckRhdGFUb1Bhc3MpKTsKLX0KLQotdm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZv
ckZyYW1lKFdlYlBhZ2UqIHBhZ2UsIFdlYkZyYW1lKiBmcmFtZSwgUmVmUHRyPEFQSU9iamVjdD4m
IHVzZXJEYXRhKQotewotICAgIGlmICghbV9jbGllbnQuZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9y
RnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFdLVHlwZVJlZiB1c2VyRGF0YVRvUGFzcyA9
IDA7Ci0gICAgbV9jbGllbnQuZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodG9BUEkocGFn
ZSksIHRvQVBJKGZyYW1lKSwgJnVzZXJEYXRhVG9QYXNzLCBtX2NsaWVudC5jbGllbnRJbmZvKTsK
LSAgICB1c2VyRGF0YSA9IGFkb3B0UmVmKHRvSW1wbCh1c2VyRGF0YVRvUGFzcykpOwotfQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xp
ZW50LmgJKHJldmlzaW9uIDczMzExKQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01
MSwxOCArNTEsMTggQEAgcHVibGljOgogICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9y
RnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsK
ICAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBSZWZQ
dHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpOwogICAgIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JG
b3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKKyAgICB2b2lkIGRpZENoYW5nZUxvY2F0
aW9uV2l0aGluUGFnZUZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFtZSosIFJlZlB0cjxBUElPYmpl
Y3Q+JiB1c2VyRGF0YSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXZWJQYWdl
KiwgY29uc3QgU3RyaW5nJiwgV2ViRnJhbWUqLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEp
OwogICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBS
ZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpOwogICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0Rm9yRnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKiwgUmVmUHRyPEFQSU9iamVj
dD4mIHVzZXJEYXRhKTsKICAgICB2b2lkIGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeShXZWJQ
YWdlKiwgV2ViRnJhbWUqLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpOworICAgIHZvaWQg
ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFtZSosIFJl
ZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CisgICAgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRl
bnRGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRh
dGEpOwogCiAgICAgdm9pZCBkaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lKFdlYlBhZ2UqLCBX
ZWJGcmFtZSosIFdlYkNvcmU6OkRPTVdyYXBwZXJXb3JsZCopOwogICAgIHZvaWQgZGlkQ2FuY2Vs
Q2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqKTsKICAgICB2b2lkIHdp
bGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBjb25z
dCBTdHJpbmcmIHVybCwgZG91YmxlIGRlbGF5LCBkb3VibGUgZGF0ZSk7Ci0gICAgdm9pZCBkaWRD
aGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqKTsKICAg
ICB2b2lkIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFtZSop
OwotICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYlBhZ2UqLCBX
ZWJGcmFtZSosIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7Ci0gICAgdm9pZCBkaWRSdW5J
bnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBSZWZQdHI8QVBJT2Jq
ZWN0PiYgdXNlckRhdGEpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5oCShyZXZpc2lvbiA3MzMxMSkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsNiArNzMsNyBA
QCB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWREb2N1bWVudEZpCiB0eXBlZGVmIHZvaWQg
KCpXS0J1bmRsZVBhZ2VEaWRGaW5pc2hMb2FkRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdl
UmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkRmlu
aXNoRG9jdW1lbnRMb2FkRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
QnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNs
aWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkRmFpbExvYWRXaXRoRXJy
b3JGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJl
ZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRDaGFuZ2VMb2Nh
dGlvbldpdGhpblBhZ2VGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tC
dW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlVGl0bGVGb3JG
cmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgdGl0bGUsIFdL
QnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNs
aWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkRmlyc3RMYXlvdXRGb3JG
cmFtZSkoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlw
ZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgq
V0tCdW5kbGVQYWdlRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUpKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqIHVzZXJE
YXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKQEAgLTgzLDcgKzg0LDYgQEAgdHlwZWRlZiB2
b2lkICgqV0tCdW5kbGVQYWdlRGlkUnVuSW5zZWN1cgogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQ
YWdlRGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3Js
ZCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VE
aWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5
cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFt
ZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwg
V0tVUkxSZWYgdXJsLCBkb3VibGUgZGVsYXksIGRvdWJsZSBkYXRlLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZENoYW5nZUxvY2F0aW9uV2l0
aGluUGFnZUZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZy
YW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldL
QnVuZGxlUGFnZURpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKTsKIAogCkBAIC05Nyw2ICs5Nyw3IEBAIHN0cnVjdCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGll
bnQgewogICAgIFdLQnVuZGxlUGFnZURpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWU7CiAgICAg
V0tCdW5kbGVQYWdlRGlkRmluaXNoTG9hZEZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkaWRGaW5pc2hMb2FkRm9yRnJhbWU7CiAgICAgV0tCdW5kbGVQYWdlRGlkRmFp
bExvYWRXaXRoRXJyb3JGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICBkaWRGYWls
TG9hZFdpdGhFcnJvckZvckZyYW1lOworICAgIFdLQnVuZGxlUGFnZURpZENoYW5nZUxvY2F0aW9u
V2l0aGluUGFnZUZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgZGlkQ2hhbmdlTG9jYXRpb25X
aXRoaW5QYWdlRm9yRnJhbWU7CiAgICAgV0tCdW5kbGVQYWdlRGlkUmVjZWl2ZVRpdGxlRm9yRnJh
bWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICBkaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZTsKICAgICBXS0J1bmRsZVBhZ2VEaWRGaXJzdExheW91dEZvckZyYW1lICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWU7CiAgICAgV0tCdW5kbGVQ
YWdlRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUgICAgICAgICAgICAgICAg
ICBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZTsKQEAgLTEwOCw3ICsxMDks
NiBAQCBzdHJ1Y3QgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50IHsKICAgICBXS0J1bmRsZVBhZ2VE
aWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgIGRp
ZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWU7CiAgICAgV0tCdW5kbGVQYWdlRGlkQ2FuY2VsQ2xp
ZW50UmVkaXJlY3RGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICBkaWRDYW5jZWxDbGll
bnRSZWRpcmVjdEZvckZyYW1lOwogICAgIFdLQnVuZGxlUGFnZVdpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3RGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgd2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdEZvckZyYW1lOwotICAgIFdLQnVuZGxlUGFnZURpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFn
ZUZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdl
Rm9yRnJhbWU7CiAgICAgV0tCdW5kbGVQYWdlRGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWVD
YWxsYmFjayAgICAgICAgICAgICAgICAgICBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZTsK
IH07CiB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQgV0tCdW5kbGVQYWdl
TG9hZGVyQ2xpZW50OwpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCShyZXZpc2lvbiA3MzMxMSkK
KysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERpZENhCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5vdGlm
eSB0aGUgYnVuZGxlIGNsaWVudC4KLSAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZUxvYWRlckNs
aWVudCgpLmRpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lKHdlYlBhZ2UsIG1fZnJh
bWUpOworICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlTG9hZGVyQ2xpZW50KCkuZGlkQ2FuY2Vs
Q2xpZW50UmVkaXJlY3RGb3JGcmFtZSh3ZWJQYWdlLCBtX2ZyYW1lKTsKIH0KIAogdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0
IEtVUkwmIHVybCwgZG91YmxlIGludGVydmFsLCBkb3VibGUgZmlyZURhdGUpCkBAIC0yNzUsOCAr
Mjc1LDEzIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2gKICAgICBp
ZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAorICAgIFJlZlB0cjxBUElPYmplY3Q+IHVz
ZXJEYXRhOworCiAgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgotICAgIHdlYlBhZ2Ut
PmluamVjdGVkQnVuZGxlTG9hZGVyQ2xpZW50KCkuZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdl
Rm9yRnJhbWUod2ViUGFnZSwgbV9mcmFtZSk7CisgICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVM
b2FkZXJDbGllbnQoKS5kaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZSh3ZWJQYWdl
LCBtX2ZyYW1lLCB1c2VyRGF0YSk7CisKKyAgICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KKyAg
ICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENoYW5nZUxvY2F0aW9u
V2l0aGluUGFnZUZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgbV9mcmFtZS0+Y29yZUZyYW1l
KCktPmxvYWRlcigpLT51cmwoKS5zdHJpbmcoKSwgSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVu
Y29kZXIodXNlckRhdGEuZ2V0KCkpKSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkUHVzaFN0YXRlV2l0aGluUGFnZSgpCkluZGV4OiBXZWJLaXRUb29scy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MzMy
NCkKKysrIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3
IEBACisyMDEwLTEyLTAzICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MjogTmVlZCBjbGll
bnQgZnVuY3Rpb25zIHRvIG5vdGlmeSBhcHAgd2hlbiB0aGUgdXJsIGNoYW5nZXMgZHVlIHRvIGEg
ZnJhZ21lbnQgbmF2aWdhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTA1MTEKKworICAgICAgICBVcGRhdGUgdG9vbHMgZm9yIG5ldyBkaWRDaGFu
Z2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZSBjbGllbnQgZnVuY3Rpb24gKGFuZCBjaGFuZ2Vk
IGJ1bmRsZQorICAgICAgICBzaWduYXR1cmUpIGFuZCBhZGRlZCBhIHRlc3QgZm9yIHRoZSBmdW5j
dGlvbmFsaXR5IChQYWdlTG9hZERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lLmNw
cCkKKworICAgICAgICAqIE1pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5t
OgorICAgICAgICAoZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUpOgorICAgICAg
ICAoLVtCcm93c2VyV2luZG93Q29udHJvbGxlciBhd2FrZUZyb21OaWJdKToKKyAgICAgICAgKC1b
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJh
bWU6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVV0aWxpdGllcy5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpVdGlsOjp0b1dLKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1BsYXRmb3JtVXRpbGl0aWVzLmg6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpVdGlsOjph
ZG9wdFdLKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
UGFnZUxvYWREaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZS5jcHA6IEFkZGVkLgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6bnVsbEphdmFTY3JpcHRDYWxsYmFjayk6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6ZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL2ZpbGUtd2l0aC1hbmNob3IuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS93aW4v
Y29weS1yZXNvdXJjZXMuY21kOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5k
bGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRs
ZVBhZ2U6OmRpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisKIDIwMTAtMTItMDMgIE1paGFpIFBhcnBh
cml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBD
aGFuZy4KSW5kZXg6IFdlYktpdFRvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29u
dHJvbGxlci5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93
c2VyV2luZG93Q29udHJvbGxlci5tCShyZXZpc2lvbiA3MzI5NykKKysrIFdlYktpdFRvb2xzL01p
bmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tCSh3b3JraW5nIGNvcHkpCkBA
IC0zOCw2ICszOCw3IEBAIC0gKHZvaWQpZGlkQ29tbWl0TG9hZEZvckZyYW1lOihXS0ZyYW1lUmUK
IC0gKHZvaWQpZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWU6KFdLRnJhbWVSZWYpZnJhbWU7CiAtICh2b2lkKWRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRo
RXJyb3JGb3JGcmFtZTooV0tGcmFtZVJlZilmcmFtZTsKIC0gKHZvaWQpZGlkRmFpbExvYWRXaXRo
RXJyb3JGb3JGcmFtZTooV0tGcmFtZVJlZilmcmFtZTsKKy0gKHZvaWQpZGlkQ2hhbmdlTG9jYXRp
b25XaXRoaW5QYWdlRm9yRnJhbWU6KFdLRnJhbWVSZWYpZnJhbWU7CiBAZW5kCiAKIEBpbXBsZW1l
bnRhdGlvbiBCcm93c2VyV2luZG93Q29udHJvbGxlcgpAQCAtMjgzLDYgKzI4NCwxMSBAQCBzdGF0
aWMgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lCiAgICAgWyhCcm93c2VyV2luZG93
Q29udHJvbGxlciAqKWNsaWVudEluZm8gZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZTpmcmFt
ZV07CiB9CiAKK3N0YXRpYyB2b2lkIGRpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1l
KFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pCit7CisgICAgWyhCcm93c2VyV2luZG93Q29udHJvbGxlciAq
KWNsaWVudEluZm8gZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWU6ZnJhbWVdOwor
fQorCiBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwg
V0tTdHJpbmdSZWYgdGl0bGUsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBDRlN0cmluZ1JlZiBjZlRpdGxlID0gV0tT
dHJpbmdDb3B5Q0ZTdHJpbmcoMCwgdGl0bGUpOwpAQCAtNTQ4LDYgKzU1NCw3IEBAIC0gKHZvaWQp
YXdha2VGcm9tTmliCiAgICAgICAgIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lLAogICAg
ICAgICBkaWRGaW5pc2hMb2FkRm9yRnJhbWUsCiAgICAgICAgIGRpZEZhaWxMb2FkV2l0aEVycm9y
Rm9yRnJhbWUsCisgICAgICAgIGRpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lLAog
ICAgICAgICBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSwKICAgICAgICAgZGlkRmlyc3RMYXlvdXRG
b3JGcmFtZSwKICAgICAgICAgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUs
CkBAIC02NzIsNiArNjc5LDEwIEBAIC0gKHZvaWQpZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFt
ZTooV0sKICAgICBbc2VsZiB1cGRhdGVQcm92aXNpb25hbFVSTEZvckZyYW1lOmZyYW1lXTsKIH0K
IAorLSAodm9pZClkaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZTooV0tGcmFtZVJl
ZilmcmFtZQoreworfQorCiAtICh2b2lkKWRpZENvbW1pdExvYWRGb3JGcmFtZTooV0tGcmFtZVJl
ZilmcmFtZQogewogfQpJbmRleDogV2ViS2l0VG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVV0
aWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0
Zm9ybVV0aWxpdGllcy5jcHAJKHJldmlzaW9uIDczMjk3KQorKysgV2ViS2l0VG9vbHMvVGVzdFdl
YktpdEFQSS9QbGF0Zm9ybVV0aWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDggKzI1
LDYgQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAKLSNpbmNsdWRlIDxXZWJL
aXQyL1dLUmV0YWluUHRyLmg+Ci0jaW5jbHVkZSA8V2ViS2l0Mi9XZWJLaXQyLmg+CiAjaW5jbHVk
ZSA8d3RmL093bkFycmF5UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25BcnJheVB0ci5oPgog
CkBAIC02MCw1ICs1OCwxMCBAQCBzdGQ6OnN0cmluZyB0b1NURChXS1N0cmluZ1JlZiBzdHJpbmcp
CiAgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKGJ1ZmZlci5nZXQoKSwgc3RyaW5nTGVuZ3RoIC0gMSk7
CiB9CiAKK1dLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB0b1dLKGNvbnN0IGNoYXIqIHV0ZjhTdHJp
bmcpCit7CisgICAgcmV0dXJuIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPihBZG9wdFdLLCBXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyh1dGY4U3RyaW5nKSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFV0aWwKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFdlYktpdFRvb2xz
L1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1VdGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRU
b29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtVXRpbGl0aWVzLmgJKHJldmlzaW9uIDczMjk3KQor
KysgV2ViS2l0VG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVV0aWxpdGllcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFBsYXRmb3JtVXRpbGl0aWVzX2gKIAog
I2luY2x1ZGUgPFdlYktpdDIvV2ViS2l0Mi5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5Q
dHIuaD4KICNpbmNsdWRlIDxzdHJpbmc+CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKQEAg
LTQ0LDYgKzQ1LDEzIEBAIFdLVVJMUmVmIFVSTEZvck5vbkV4aXN0ZW50UmVzb3VyY2UoKTsKIGJv
b2wgaXNLZXlEb3duKFdLTmF0aXZlRXZlbnRQdHIpOwogCiBzdGQ6OnN0cmluZyB0b1NURChXS1N0
cmluZ1JlZiBzdHJpbmcpOworV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHRvV0soY29uc3QgY2hh
ciogdXRmOFN0cmluZyk7CisKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIGlubGluZSBX
S1JldGFpblB0cjxUPiBhZG9wdFdLKFQgaXRlbSkKK3sKKyAgICByZXR1cm4gV0tSZXRhaW5QdHI8
VD4oQWRvcHRXSywgaXRlbSk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFV0aWwKIH0gLy8gbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFdlYktpdFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CShyZXZpc2lvbiA3MzI5NykKKysrIFdlYktpdFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw2ICsx
NCw4IEBACiAJCUJDMTMxODg1MTE3MTE0QjYwMEI2OTcyNyAvKiBQbGF0Zm9ybVV0aWxpdGllc01h
Yy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTMx
ODg0MTE3MTE0QjYwMEI2OTcyNyAvKiBQbGF0Zm9ybVV0aWxpdGllc01hYy5tbSAqLzsgfTsKIAkJ
QkMxMzFBOUIxMTcxMzE2OTAwQjY5NzI3IC8qIG1haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzEzMUE5QTExNzEzMTY5MDBCNjk3MjcgLyogbWFp
bi5tbSAqLzsgfTsKIAkJQkMxMzFBQTkxMTcxMzFGQzAwQjY5NzI3IC8qIFRlc3RzQ29udHJvbGxl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzEz
MUFBODExNzEzMUZDMDBCNjk3MjcgLyogVGVzdHNDb250cm9sbGVyLmNwcCAqLzsgfTsKKwkJQkMy
RDAwNDkxMkE5RkRGQTAwRTczMkEzIC8qIFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5Q
YWdlRm9yRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMyRDAwNDgxMkE5RkRGQTAwRTczMkEzIC8qIFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRp
b25XaXRoaW5QYWdlRm9yRnJhbWUuY3BwICovOyB9OworCQlCQzJEMDA2NDEyQUEwNENFMDBFNzMy
QTMgLyogZmlsZS13aXRoLWFuY2hvci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMkQwMDRBMTJBOUZFQjMwMEU3MzJBMyAvKiBmaWxl
LXdpdGgtYW5jaG9yLmh0bWwgKi87IH07CiAJCUJDNTc1QTkwMTI2RTc0RDMwMDZGMEYxMiAvKiBD
b2NvYS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0I5RTlGMDExMjM1QkRFMDBBMTM3RTAgLyogQ29jb2EuZnJhbWV3b3JrICovOyB9
OwogCQlCQzU3NUE5MTEyNkU3NEQzMDA2RjBGMTIgLyogV2ViS2l0Mi5mcmFtZXdvcmsgaW4gRnJh
bWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0E2MURCNDExNzAw
RUZEMDA0NjBEMUUgLyogV2ViS2l0Mi5mcmFtZXdvcmsgKi87IH07CiAJCUJDNTc1QTkyMTI2RTc0
RDMwMDZGMEYxMiAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzkwOTY0RDEyNTU2MjBDMDAwODM3NTYg
LyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovOyB9OwpAQCAtNzUsNiArNzcsNyBAQAogCQkJ
CTFBMDJDODcwMTI1RDRDRkQwMEUzRjRCRCAvKiBmaW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJQkM5MDk3ODQxMjU1NzFDRjAwMDgzNzU2IC8qIHNpbXBsZS5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCUMwMUEyM0YyMTI2NjE1NjcwMEM5RUQ1NSAvKiBzcGFjZWJhci1z
Y3JvbGxpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlCQzJEMDA2NDEyQUEwNENF
MDBFNzMyQTMgLyogZmlsZS13aXRoLWFuY2hvci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJKTsKIAkJCW5hbWUgPSAiQ29weSBSZXNvdXJjZXMiOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC05Miw2ICs5NSw4IEBACiAJCUJDMTMxQTlBMTE3MTMx
NjkwMEI2OTcyNyAvKiBtYWluLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gbWFpbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxMzFBOUUxMTcx
MzE3QzAwQjY5NzI3IC8qIFRlc3RXZWJLaXRBUElQcmVmaXguaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVGVzdFdlYktpdEFQSVByZWZpeC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQzEzMUFBODExNzEzMUZDMDBCNjk3MjcgLyogVGVzdHNDb250cm9sbGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBmaWxlRW5jb2RpbmcgPSA0OyBwYXRoID0gVGVzdHNDb250cm9sbGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMyRDAwNDgxMkE5RkRGQTAwRTczMkEz
IC8qIFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUxvYWREaWRDaGFuZ2VMb2NhdGlv
bldpdGhpblBhZ2VGb3JGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJD
MkQwMDRBMTJBOUZFQjMwMEU3MzJBMyAvKiBmaWxlLXdpdGgtYW5jaG9yLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHRleHQuaHRtbDsgZmlsZUVu
Y29kaW5nID0gNDsgcGF0aCA9ICJmaWxlLXdpdGgtYW5jaG9yLmh0bWwiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQzU3NTk0NjEyNkU3MzUxMDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5k
bGVNYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVk
QnVuZGxlTWFpbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTc1OTgwMTI2
RTc0QUYwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZVRlc3RXZWJLaXRBUEkuYnVuZGxlICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmNmYnVu
ZGxlOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVRlc3RXZWJLaXRB
UEkuYnVuZGxlOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlCQzU3NTk4
MTEyNkU3NEFGMDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGUtSW5mby5wbGlzdCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBw
YXRoID0gIkluamVjdGVkQnVuZGxlLUluZm8ucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjM5LDYgKzI0NCw3IEBACiAJCQkJQkM1NzVBQUMxMjZFODNCOTAwNkYwRjEyIC8q
IEluamVjdGVkQnVuZGxlQmFzaWMuY3BwICovLAogCQkJCUJDNTc1QUFGMTI2RTgzQzgwMDZGMEYx
MiAvKiBJbmplY3RlZEJ1bmRsZUJhc2ljX0J1bmRsZS5jcHAgKi8sCiAJCQkJQkM5MDk3NzkxMjU1
NzFBQjAwMDgzNzU2IC8qIFBhZ2VMb2FkQmFzaWMuY3BwICovLAorCQkJCUJDMkQwMDQ4MTJBOUZE
RkEwMEU3MzJBMyAvKiBQYWdlTG9hZERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1l
LmNwcCAqLywKIAkJCQkzMzNCOUNFMTEyNzdGMjMxMDBGRUZDRTMgLyogUHJldmVudEVtcHR5VXNl
ckFnZW50LmNwcCAqLywKIAkJCQlDMDJCNzdGMTEyNjYxMjE0MDAyNkJGMEYgLyogU3BhY2ViYXJT
Y3JvbGxpbmcuY3BwICovLAogCQkJCUJDN0I2MTlBMTI5OUZFOUUwMEQxNzRBNCAvKiBXS1ByZWZl
cmVuY2VzLmNwcCAqLywKQEAgLTI1OSw2ICsyNjUsNyBAQAogCQlCQzkwOTc3QjEyNTU3MUFFMDAw
ODM3NTYgLyogUmVzb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQlCQzJEMDA0QTEyQTlGRUIzMDBFNzMyQTMgLyogZmlsZS13aXRoLWFuY2hvci5o
dG1sICovLAogCQkJCTFBMDJDODRCMTI1RDRBNUUwMEUzRjRCRCAvKiBmaW5kLmh0bWwgKi8sCiAJ
CQkJQkNCRDM3MkUxMjVBQkJFNjAwRDJDMjlGIC8qIGljb24ucG5nICovLAogCQkJCUJDOTA5Nzc4
MTI1NTcxQUIwMDA4Mzc1NiAvKiBzaW1wbGUuaHRtbCAqLywKQEAgLTM4NSw2ICszOTIsNyBAQAog
CQkJCTFBNUZFRkREMTI3MEUyQTMwMDBFMjkyMSAvKiBFdmFsdWF0ZUphdmFTY3JpcHQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMzMzQjlDRTIxMjc3RjIzMTAwRkVGQ0UzIC8qIFByZXZlbnRFbXB0
eVVzZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzdCNjFBQTEyOUEwMzg3MDBEMTc0
QTQgLyogV0tQcmVmZXJlbmNlcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzJEMDA0OTEyQTlG
REZBMDBFNzMyQTMgLyogUGFnZUxvYWREaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFt
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYktpdFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9QYWdlTG9hZERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
UGFnZUxvYWREaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZS5jcHAJKHJldmlzaW9u
IDApCisrKyBXZWJLaXRUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUGFnZUxvYWRE
aWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZS5jcHAJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiVGVzdC5oIgorCisjaW5jbHVkZSAi
UGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNs
dWRlIDxXZWJLaXQyL1dlYktpdDIuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+
CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIHZvaWQgbnVsbEphdmFTY3Jp
cHRDYWxsYmFjayhXS1N0cmluZ1JlZiwgV0tFcnJvclJlZiBlcnJvciwgdm9pZCopCit7Cit9CisK
K3N0YXRpYyBib29sIGRpZEZpbmlzaExvYWQ7CitzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkRm9y
RnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqKQorewor
ICAgIGRpZEZpbmlzaExvYWQgPSB0cnVlOworfQorCitzdGF0aWMgYm9vbCBkaWRDaGFuZ2VMb2Nh
dGlvbldpdGhpblBhZ2U7CitzdGF0aWMgdm9pZCBkaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VG
b3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopCit7
CisgICAgcHJpbnRmKCJoZWxsbyIpOworICAgIGRpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZSA9
IHRydWU7Cit9CisKK1RFU1QoV2ViS2l0MiwgUGFnZUxvYWREaWRDaGFuZ2VMb2NhdGlvbldpdGhp
blBhZ2VGb3JGcmFtZSkKK3sKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQo
QWRvcHRXSywgV0tDb250ZXh0Q3JlYXRlKCkpOworICAgIFdLUmV0YWluUHRyPFdLUGFnZU5hbWVz
cGFjZVJlZj4gcGFnZU5hbWVzcGFjZShBZG9wdFdLLCBXS1BhZ2VOYW1lc3BhY2VDcmVhdGUoY29u
dGV4dC5nZXQoKSkpOworCisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcocGFnZU5hbWVzcGFj
ZS5nZXQoKSk7CisKKyAgICBXS1BhZ2VMb2FkZXJDbGllbnQgbG9hZGVyQ2xpZW50OworICAgIG1l
bXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVyQ2xpZW50KSk7CisgICAgbG9hZGVy
Q2xpZW50LmRpZEZpbmlzaExvYWRGb3JGcmFtZSA9IGRpZEZpbmlzaExvYWRGb3JGcmFtZTsKKyAg
ICBsb2FkZXJDbGllbnQuZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUgPSBkaWRD
aGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZTsKKyAgICBXS1BhZ2VTZXRQYWdlTG9hZGVy
Q2xpZW50KHdlYlZpZXcucGFnZSgpLCAmbG9hZGVyQ2xpZW50KTsKKworICAgIFdLUmV0YWluUHRy
PFdLVVJMUmVmPiB1cmwoQWRvcHRXSywgVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImZpbGUt
d2l0aC1hbmNob3IiLCAiaHRtbCIpKTsKKyAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgp
LCB1cmwuZ2V0KCkpOworICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisKKyAgICBXS1Jl
dGFpblB0cjxXS1VSTFJlZj4gaW5pdGlhbFVSTCA9IFV0aWw6OmFkb3B0V0soV0tGcmFtZUNvcHlV
UkwoV0tQYWdlR2V0TWFpbkZyYW1lKHdlYlZpZXcucGFnZSgpKSkpOworCisgICAgV0tQYWdlUnVu
SmF2YVNjcmlwdEluTWFpbkZyYW1lKHdlYlZpZXcucGFnZSgpLCBVdGlsOjp0b1dLKCJjbGlja0xp
bmsoKSIpLmdldCgpLCAwLCBudWxsSmF2YVNjcmlwdENhbGxiYWNrKTsKKyAgICBVdGlsOjpydW4o
JmRpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZSk7CisKKyAgICBXS1JldGFpblB0cjxXS1VSTFJl
Zj4gdXJsQWZ0ZXJBbmNob3JDbGljayA9IFV0aWw6OmFkb3B0V0soV0tGcmFtZUNvcHlVUkwoV0tQ
YWdlR2V0TWFpbkZyYW1lKHdlYlZpZXcucGFnZSgpKSkpOworCisgICAgVEVTVF9BU1NFUlQoIVdL
VVJMSXNFcXVhbChpbml0aWFsVVJMLmdldCgpLCB1cmxBZnRlckFuY2hvckNsaWNrLmdldCgpKSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFdlYktpdFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9maWxlLXdpdGgtYW5jaG9yLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2ZpbGUtd2l0aC1h
bmNob3IuaHRtbAkocmV2aXNpb24gMCkKKysrIFdlYktpdFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9maWxlLXdpdGgtYW5jaG9yLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTkgQEAKKzxodG1sPgorPGhlYWQ+CisgIDxzY3JpcHQ+CisgICAgZnVuY3Rpb24gY2xpY2tMaW5r
KCkKKyAgICB7CisgICAgICB2YXIgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZl
bnQiKTsKKyAgICAgIGV2dC5pbml0TW91c2VFdmVudCgiY2xpY2siLCB0cnVlLCB0cnVlLCB3aW5k
b3csIDAsIDAsIDAsIDAsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBudWxsKTsK
KyAgICAgIHZhciBsaW5rID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYScpOworICAgICAgbGlu
ay5kaXNwYXRjaEV2ZW50KGV2dCk7CisgICAgfQorICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorICA8YSBocmVmPSIjYW5jaG9yIj5MaW5rIHRvIGFuY2hvcjwvYT48YnI+CisgIEluIGJldHdl
ZW4uPGJyPgorICA8c3BhbiBpZD0iYW5jaG9yIj5BbmNob3I8L3NwYW4+PGJyPgorICBBZnRlciB0
aGUgYW5jaG9yLjxicj4KKyAgPC9ib2R5PgorPC9odG1sPgpJbmRleDogV2ViS2l0VG9vbHMvVGVz
dFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
VG9vbHMvVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2oJKHJldmlzaW9uIDcz
Mjk3KQorKysgV2ViS2l0VG9vbHMvVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3By
b2oJKHdvcmtpbmcgY29weSkKQEAgLTQyMCw2ICs0MjAsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmls
ZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFRlc3RzXFdlYktpdDJcZmlsZS13
aXRoLWFuY2hvci5odG1sIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cVGVzdHNcV2ViS2l0MlxGaW5kLmNwcCIKIAkJCQkJPgogCQkJCTwvRmls
ZT4KQEAgLTQ0NCw2ICs0NDgsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFRlc3RzXFdlYktpdDJcUGFnZUxvYWREaWRDaGFuZ2VMb2Nh
dGlvbldpdGhpblBhZ2VGb3JGcmFtZS5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZp
bGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxUZXN0c1xXZWJLaXQyXFByZXZlbnRFbXB0eVVzZXJB
Z2VudC5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkluZGV4OiBXZWJLaXRUb29scy9UZXN0V2Vi
S2l0QVBJL3dpbi9jb3B5LXJlc291cmNlcy5jbWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMv
VGVzdFdlYktpdEFQSS93aW4vY29weS1yZXNvdXJjZXMuY21kCShyZXZpc2lvbiA3MzI5NykKKysr
IFdlYktpdFRvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL2NvcHktcmVzb3VyY2VzLmNtZAkod29ya2lu
ZyBjb3B5KQpAQCAtOCw2ICs4LDcgQEAgaWYgIiUxIiBFUVUgInJlYnVpbGQiIGNhbGwgOmNsZWFu
CiBlY2hvIENvcHlpbmcgcmVzb3VyY2VzLi4uCiBta2RpciAyPk5VTCAiJVJlc291cmNlc0RpcmVj
dG9yeSUiCiBmb3IgJSVmIGluICgKKyAgICAuLlxUZXN0c1xXZWJLaXQyXGZpbGUtd2l0aC1hbmNo
b3IuaHRtbAogICAgIC4uXFRlc3RzXFdlYktpdDJcZmluZC5odG1sCiAgICAgLi5cVGVzdHNcV2Vi
S2l0MlxpY29uLnBuZwogICAgIC4uXFRlc3RzXFdlYktpdDJcc2ltcGxlLmh0bWwKSW5kZXg6IFdl
YktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCShyZXZp
c2lvbiA3MzI5NykKKysrIFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTEsNiArMjUxLDcgQEAgdm9pZCBUZXN0Q29udHJv
bGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYwogICAgICAgICAwLCAvLyBkaWRGaW5pc2hEb2N1bWVu
dExvYWRGb3JGcmFtZQogICAgICAgICBkaWRGaW5pc2hMb2FkRm9yRnJhbWUsCiAgICAgICAgIDAs
IC8vIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUKKyAgICAgICAgMCwgLy8gZGlkQ2hhbmdl
TG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUKICAgICAgICAgMCwgLy8gZGlkUmVjZWl2ZVRpdGxl
Rm9yRnJhbWUKICAgICAgICAgMCwgLy8gZGlkRmlyc3RMYXlvdXRGb3JGcmFtZQogICAgICAgICAw
LCAvLyBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZQpJbmRleDogV2ViS2l0
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAkocmV2aXNpb24gNzMyOTcpCisrKyBXZWJLaXRU
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MCw2ICsxODAsNyBAQCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OkluamVjdGVkQnVuZGxlUGFnZShXCiAgICAgICAgIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZy
YW1lLAogICAgICAgICBkaWRGaW5pc2hMb2FkRm9yRnJhbWUsCiAgICAgICAgIGRpZEZhaWxMb2Fk
V2l0aEVycm9yRm9yRnJhbWUsCisgICAgICAgIGRpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZv
ckZyYW1lLAogICAgICAgICBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSwKICAgICAgICAgMCwKICAg
ICAgICAgMCwKQEAgLTE4OSw3ICsxOTAsNiBAQCBJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVk
QnVuZGxlUGFnZShXCiAgICAgICAgIGRpZENsZWFyV2luZG93Rm9yRnJhbWUsCiAgICAgICAgIGRp
ZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUsCiAgICAgICAgIHdpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3RGb3JGcmFtZSwKLSAgICAgICAgZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9y
RnJhbWUsCiAgICAgICAgIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCiAgICAgfTsKICAg
ICBXS0J1bmRsZVBhZ2VTZXRMb2FkZXJDbGllbnQobV9wYWdlLCAmbG9hZGVyQ2xpZW50KTsKQEAg
LTMwMiw3ICszMDIsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFBlcmZvcm1DbGll
CiAgICAgc3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4o
Y2xpZW50SW5mbykpLT53aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoZnJhbWUsIHVy
bCwgZGVsYXksIGRhdGUpOwogfQogCi12b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2hhbmdl
TG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxl
RnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit2b2lkIEluamVjdGVkQnVu
ZGxlUGFnZTo6ZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUoV0tCdW5kbGVQYWdl
UmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCiB7CiAgICAgc3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29u
c3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VG
b3JGcmFtZShmcmFtZSk7CiB9CkluZGV4OiBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgJ
KHJldmlzaW9uIDczMjk3KQorKysgV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAs
NyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZENsZWFyV2luZG93Rm9yRnJhbWUoV0tC
dW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmLCBj
b25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JG
cmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIGNvbnN0IHZvaWQqKTsKICAg
ICBzdGF0aWMgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVQ
YWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBXS1VSTFJlZiB1cmwsIGRvdWJsZSBkZWxheSwgZG91
YmxlIGRhdGUsIGNvbnN0IHZvaWQqKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VMb2NhdGlv
bldpdGhpblBhZ2VGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIGNv
bnN0IHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VG
b3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIFdLVHlwZVJlZiosIGNv
bnN0IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFt
ZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBz
dGF0aWMgdm9pZCBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV0tCdW5kbGVQYWdl
UmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBXS1R5cGVSZWYqLCBjb25zdCB2b2lkKik7CiAgICAgc3Rh
dGljIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBX
S0J1bmRsZUZyYW1lUmVmLCBXS1R5cGVSZWYqLCBjb25zdCB2b2lkKik7Cg==
</data>
<flag name="review"
          id="66425"
          type_id="1"
          status="+"
          setter="jhoneycutt"
    />
          </attachment>
      

    </bug>

</bugzilla>