<?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>46546</bug_id>
          
          <creation_ts>2010-09-24 18:22:52 -0700</creation_ts>
          <short_desc>Implement WebKit2 callback equivalent to -[WebUIDelegate mouseDidMoveOverElement:modifierFlags:]</short_desc>
          <delta_ts>2010-09-24 19:33:28 -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>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="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>284890</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-24 18:22:52 -0700</bug_when>
    <thetext>Implement WebKit2 callback equivalent to -[WebUIDelegate mouseDidMoveOverElement:modifierFlags:].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284892</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-24 18:23:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/8359279&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284893</commentid>
    <comment_count>2</comment_count>
      <attachid>68797</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-24 18:26:20 -0700</bug_when>
    <thetext>Created attachment 68797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284894</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-24 18:27:49 -0700</bug_when>
    <thetext>Attachment 68797 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/API/C/WKPage.h:167:  Extra space between WKPageMouseDidMoveOverElementCallback and mouseDidMoveOverElement  [whitespace/declaration] [3]
WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h:132:  Extra space between WKBundlePageMouseDidMoveOverElementCallback and mouseDidMoveOverElement  [whitespace/declaration] [3]
WebKit2/WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:55:  More than one command on the same line  [whitespace/newline] [4]
WebKit2/WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:64:  More than one command on the same line  [whitespace/newline] [4]
WebKit2/WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:68:  More than one command on the same line  [whitespace/newline] [4]
WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 8 in 27 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284898</commentid>
    <comment_count>4</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-09-24 18:34:31 -0700</bug_when>
    <thetext>Attachment 68797 did not build on qt:
Build output: http://queues.webkit.org/results/4033141</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284902</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-24 18:37:24 -0700</bug_when>
    <thetext>Fixed Qt build locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284907</commentid>
    <comment_count>6</comment_count>
      <attachid>68797</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-24 18:42:42 -0700</bug_when>
    <thetext>Comment on attachment 68797
Patch

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

Looks like you broke Qt. If you deal with that, r=me.

&gt; WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:43
&gt; +    RefPtr&lt;InjectedBundleNodeHandle&gt; nodeHandle = toWK(hitTestResultRef)-&gt;nodeHandle();
&gt; +    return toRef(nodeHandle.get());

Do you need a local variable here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284921</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-24 19:33:28 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/68322.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68797</attachid>
            <date>2010-09-24 18:26:20 -0700</date>
            <delta_ts>2010-09-24 18:42:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>41880</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODMxNikKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTQgQEAKKzIwMTAtMDktMjQgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1l
bnQgV2ViS2l0MiBjYWxsYmFjayBlcXVpdmFsZW50IHRvIC1bV2ViVUlEZWxlZ2F0ZSBtb3VzZURp
ZE1vdmVPdmVyRWxlbWVudDptb2RpZmllckZsYWdzOl0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzgzNTkyNzk+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NjU0NgorCisgICAgICAgIC0gQWRkcyBuZXcgV0tCdW5kbGVIaXRUZXN0UmVzdWx0UmVmIG9i
amVjdCB0byByZXByZXNlbnQgYSBjb250ZW50IHVuZGVyIGEgY3Vyc29yLgorICAgICAgICAtIEFk
ZHMgbmV3IEJ1bmRsZSBhbmQgVUkgbGV2ZWwgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQgVUlDbGll
bnQgY2FsbGJhY2tzLCB3aXRoCisgICAgICAgICAgcGFzcyB0aHJvdWdoIHVzZXJEYXRhIHRvIGNv
bW11bmljYXRlIGNvbnRleHQgdXAgdG8gdGhlIFVJUHJvY2VzcworCisgICAgICAgICogU2hhcmVk
L0FQSU9iamVjdC5oOgorICAgICAgICAqIFNoYXJlZC9Db3JlSVBDU3VwcG9ydC9XZWJQYWdlUHJv
eHlNZXNzYWdlS2luZHMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcDoKKyAgICAgICAgKFFXS1BhZ2U6
OlFXS1BhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVSUNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVJQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxl
bWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50Lmg6CisgICAgICAgICogV2Vi
S2l0Mi5wcm86CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVBUElDYXN0
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJh
c2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
SGl0VGVzdFJlc3VsdC5jcHA6IEFkZGVkLgorICAgICAgICAoV0tCdW5kbGVIaXRUZXN0UmVzdWx0
R2V0VHlwZUlEKToKKyAgICAgICAgKFdLQnVuZGxlSGl0VGVzdFJlc3VsdEdldE5vZGVIYW5kbGUp
OgorICAgICAgICAoV0tCdW5kbGVIaXRUZXN0UmVzdWx0R2V0RnJhbWUpOgorICAgICAgICAoV0tC
dW5kbGVIaXRUZXN0UmVzdWx0Q29weUFic29sdXRlTGlua1VSTCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaDogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2Uu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0
VGVzdFJlc3VsdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZUhp
dFRlc3RSZXN1bHQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlSGl0
VGVzdFJlc3VsdDo6bm9kZUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxl
SGl0VGVzdFJlc3VsdDo6d2ViRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRs
ZUhpdFRlc3RSZXN1bHQ6OmFic29sdXRlTGlua1VSTCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuaDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6Y29yZUhpdFRlc3RSZXN1
bHQpOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OkluamVj
dGVkQnVuZGxlSGl0VGVzdFJlc3VsdCk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxl
SGl0VGVzdFJlc3VsdDo6dHlwZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVj
dGVkQnVuZGxlUGFnZVVJQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxl
bWVudCk6CisgICAgICAgICogd2luL1dlYktpdDIudmNwcm9qOgorCiAyMDEwLTA5LTI0ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4LgpJ
bmRleDogV2ViS2l0Mi9XZWJLaXQyLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYktpdDIu
cHJvCShyZXZpc2lvbiA2ODMxNikKKysrIFdlYktpdDIvV2ViS2l0Mi5wcm8JKHdvcmtpbmcgY29w
eSkKQEAgLTI0Myw5ICsyNDMsMTEgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL1dlYlVJ
Q2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVC
YXNlLmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
LmggXAorICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0
UmVzdWx0LmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVu
ZGxlTm9kZUhhbmRsZS5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9Jbmpl
Y3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuaCBcCisgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZUhpdFRlc3RSZXN1bHQuaCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmggXApAQCAtMzYxLDkgKzM2Mywx
MSBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc01hbmFnZXIuY3BwIFwK
ICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlVJ
Q2xpZW50LmNwcCBcCisgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZUhpdFRlc3RSZXN1bHQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9J
bmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgXAorICAgIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcCBcCiAgICAgV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwIFwKICAg
ICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQu
Y3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJ
Q2xpZW50LmNwcCBcCkluZGV4OiBXZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAkocmV2aXNpb24gNjgzMTYpCisrKyBXZWJL
aXQyL1NoYXJlZC9BUElPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsNyBAQCBw
dWJsaWM6CiAgICAgICAgIC8vIEJ1bmRsZSB0eXBlcwogICAgICAgICBUeXBlQnVuZGxlLAogICAg
ICAgICBUeXBlQnVuZGxlRnJhbWUsCisgICAgICAgIFR5cGVCdW5kbGVIaXRUZXN0UmVzdWx0LAog
ICAgICAgICBUeXBlQnVuZGxlTm9kZUhhbmRsZSwKICAgICAgICAgVHlwZUJ1bmRsZVBhZ2UsCiAg
ICAgICAgIFR5cGVCdW5kbGVSYW5nZUhhbmRsZSwKSW5kZXg6IFdlYktpdDIvU2hhcmVkL0NvcmVJ
UENTdXBwb3J0L1dlYlBhZ2VQcm94eU1lc3NhZ2VLaW5kcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dDIvU2hhcmVkL0NvcmVJUENTdXBwb3J0L1dlYlBhZ2VQcm94eU1lc3NhZ2VLaW5kcy5oCShyZXZp
c2lvbiA2ODMxNikKKysrIFdlYktpdDIvU2hhcmVkL0NvcmVJUENTdXBwb3J0L1dlYlBhZ2VQcm94
eU1lc3NhZ2VLaW5kcy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSw2ICs2NSw3IEBAIGVudW0gS2lu
ZCB7CiAgICAgRGlkU2V0RnJhbWUsCiAgICAgRGlkU3RhcnRQcm9ncmVzcywKICAgICBEaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lLAorICAgIE1vdXNlRGlkTW92ZU92ZXJFbGVtZW50LAog
ICAgIFNldEN1cnNvciwKICAgICBTZXRTdGF0dXNUZXh0LAogICAgIFNldFRvb2xUaXAsCkluZGV4
OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDY4MzE2KQorKysgV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODY2LDYgKzg2
NiwxNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yCiAgICAgICAg
IGNhc2UgV2ViUGFnZVByb3h5TWVzc2FnZTo6Q2xlYXJBbGxFZGl0Q29tbWFuZHM6CiAgICAgICAg
ICAgICBjbGVhckFsbEVkaXRDb21tYW5kcygpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgV2ViUGFnZVByb3h5TWVzc2FnZTo6TW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ6IHsKKyAg
ICAgICAgICAgIHVpbnQzMl90IG1vZGlmaWVyczsKKyAgICAgICAgICAgIFJlZlB0cjxBUElPYmpl
Y3Q+IHVzZXJEYXRhOworICAgICAgICAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBt
ZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgcGFnZU5hbWVzcGFjZSgpLT5jb250ZXh0KCkpOworCisg
ICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChtb2RpZmllcnMs
IG1lc3NhZ2VEZWNvZGVyKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAg
ICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJz
Pihtb2RpZmllcnMpLCB1c2VyRGF0YS5nZXQoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgICAgICBicmVhazsKQEAgLTExNTAsNiArMTE2MSwxMSBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6c2V0U3RhdHVzVGV4dChjb25zdCBTCiAgICAgbV91aUNsaWVudC5zZXRTdGF0dXNUZXh0
KHRoaXMsIHRleHQpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6bW91c2VEaWRNb3ZlT3ZlckVs
ZW1lbnQoV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMsIEFQSU9iamVjdCogdXNlckRhdGEp
Cit7CisgICAgbV91aUNsaWVudC5tb3VzZURpZE1vdmVPdmVyRWxlbWVudCh0aGlzLCBtb2RpZmll
cnMsIHVzZXJEYXRhKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRzU2l6ZUNoYW5n
ZWQoV2ViRnJhbWVQcm94eSogZnJhbWUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpCiB7
CiAgICAgbV91aUNsaWVudC5jb250ZW50c1NpemVDaGFuZ2VkKHRoaXMsIHNpemUsIGZyYW1lKTsK
SW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiA2ODMxNikKKysrIFdlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDEsNiArMjQx
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkZyYW1lUHJv
eHkqIGZyYW1lLCBjb25zdCBTdHJpbmcmKTsKICAgICBTdHJpbmcgcnVuSmF2YVNjcmlwdFByb21w
dChXZWJGcmFtZVByb3h5KiBmcmFtZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CiAg
ICAgdm9pZCBzZXRTdGF0dXNUZXh0KGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgbW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQoV2ViRXZlbnQ6Ok1vZGlmaWVycywgQVBJT2JqZWN0Kik7CiAgICAgdm9p
ZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJik7CiAKICAgICAvLyBCYWNrL0ZvcndhcmQgbGlzdCBtYW5hZ2VtZW50CkluZGV4OiBXZWJL
aXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViVUlDbGllbnQuY3BwCShyZXZpc2lvbiA2ODMxNikKKysrIFdlYktpdDIvVUlQcm9j
ZXNzL1dlYlVJQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTExLDYgKzExMSwxNSBAQCB2
b2lkIFdlYlVJQ2xpZW50OjpzZXRTdGF0dXNUZXh0KFdlYlBhZ2VQCiAgICAgbV9wYWdlVUlDbGll
bnQuc2V0U3RhdHVzVGV4dCh0b1JlZihwYWdlKSwgdG9SZWYodGV4dC5pbXBsKCkpLCBtX3BhZ2VV
SUNsaWVudC5jbGllbnRJbmZvKTsKIH0KIAordm9pZCBXZWJVSUNsaWVudDo6bW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlm
aWVycywgQVBJT2JqZWN0KiB1c2VyRGF0YSkKK3sKKyAgICBpZiAoIW1fcGFnZVVJQ2xpZW50Lm1v
dXNlRGlkTW92ZU92ZXJFbGVtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2VVSUNs
aWVudC5tb3VzZURpZE1vdmVPdmVyRWxlbWVudCh0b1JlZihwYWdlKSwgdG9SZWYobW9kaWZpZXJz
KSwgdG9SZWYodXNlckRhdGEpLCBtX3BhZ2VVSUNsaWVudC5jbGllbnRJbmZvKTsKK30KKworCiB2
b2lkIFdlYlVJQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKFdlYlBhZ2VQcm94eSogcGFnZSwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgV2ViRnJhbWVQcm94eSogZnJhbWUpCiB7CiAgICAgaWYgKCFt
X3BhZ2VVSUNsaWVudC5jb250ZW50c1NpemVDaGFuZ2VkKQpJbmRleDogV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViVUlDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNs
aWVudC5oCShyZXZpc2lvbiA2ODMxNikKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgV2ViVUlDbGllbnRf
aAogCiAjaW5jbHVkZSAiV0tQYWdlLmgiCisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKQEAgLTM2LDYg
KzM3LDcgQEAgY2xhc3MgSW50U2l6ZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIEFQ
SU9iamVjdDsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiAKQEAg
LTUxLDYgKzUzLDcgQEAgcHVibGljOgogICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2Vi
UGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiwgV2ViRnJhbWVQcm94eSopOwogICAgIFN0cmluZyBy
dW5KYXZhU2NyaXB0UHJvbXB0KFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYsIFdlYkZyYW1lUHJveHkqKTsKICAgICB2b2lkIHNldFN0YXR1c1RleHQoV2ViUGFnZVBy
b3h5KiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChX
ZWJQYWdlUHJveHkqLCBXZWJFdmVudDo6TW9kaWZpZXJzLCBBUElPYmplY3QqKTsKICAgICB2b2lk
IGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYsIFdlYkZyYW1lUHJveHkqKTsKIAogcHJpdmF0ZToKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5oCShyZXZpc2lvbiA2ODMxNikKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTEsNiArMTUxLDcgQEAgdHlwZWRlZiB2b2lkICgqV0tQ
YWdlUnVuSmF2YVNjcmlwdEFsZXJ0QwogdHlwZWRlZiBib29sICgqV0tQYWdlUnVuSmF2YVNjcmlw
dENvbmZpcm1DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdL
RnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiBXS1N0cmlu
Z1JlZiAoKldLUGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2Us
IFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlZmF1bHRWYWx1ZSwgV0tGcmFtZVJl
ZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VT
ZXRTdGF0dXNUZXh0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0ZXh0LCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZU1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0V2ZW50TW9kaWZpZXJzIG1v
ZGlmaWVycywgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5
cGVkZWYgdm9pZCAoKldLUGFnZUNvbnRlbnRzU2l6ZUNoYW5nZWRDYWxsYmFjaykoV0tQYWdlUmVm
IHBhZ2UsIGludCB3aWR0aCwgaW50IGhlaWdodCwgV0tGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbyk7CiAKIHN0cnVjdCBXS1BhZ2VVSUNsaWVudCB7CkBAIC0xNjMsNiArMTY0
LDcgQEAgc3RydWN0IFdLUGFnZVVJQ2xpZW50IHsKICAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29u
ZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3Jp
cHRDb25maXJtOwogICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdFByb21wdDsKICAgICBXS1Bh
Z2VTZXRTdGF0dXNUZXh0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNldFN0YXR1c1RleHQ7CisgICAgV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxl
bWVudDsKICAgICBXS1BhZ2VDb250ZW50c1NpemVDaGFuZ2VkQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzU2l6ZUNoYW5nZWQ7CiB9OwogdHlwZWRlZiBz
dHJ1Y3QgV0tQYWdlVUlDbGllbnQgV0tQYWdlVUlDbGllbnQ7CkluZGV4OiBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3a3BhZ2UuY3BwCShyZXZpc2lvbiA2ODMxNikKKysrIFdlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2twYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcyLDYgKzI3Miw3IEBAIFFX
S1BhZ2U6OlFXS1BhZ2UoV0tQYWdlTmFtZXNwYWNlUmVmIG5hbWUKICAgICAgICAgMCwgIC8qIHJ1
bkphdmFTY3JpcHRDb25maXJtICovCiAgICAgICAgIDAsICAvKiBydW5KYXZhU2NyaXB0UHJvbXB0
ICovCiAgICAgICAgIDAsICAvKiBzZXRTdGF0dXNUZXh0ICovCisgICAgICAgIDAgICAvKiBtb3Vz
ZURpZE1vdmVPdmVyRWxlbWVudCAqLwogICAgICAgICAwICAgLyogY29udGVudHNTaXplQ2hhbmdl
ZCAqLwogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHBhZ2VSZWYoKSwgJnVpQ2xp
ZW50KTsKSW5kZXg6IFdlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiA2ODMxNikKKysrIFdlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYsNiArMjI2LDEwIEBACiAJCUJDMzNERjA2MTIzODY3
N0YwMDM2MEYzRiAvKiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcyRDVGMkUxMjM2RjlFODAwQTg4QjE1IC8q
IFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHVibGljLCApOyB9OyB9OwogCQlCQzMzRTBEMTEyNDA4RTg2MDAzNjBGM0YgLyogSW5qZWN0ZWRC
dW5kbGVSYW5nZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkMzM0UwQ0YxMjQwOEU4NjAwMzYwRjNGIC8qIEluamVjdGVkQnVuZGxlUmFuZ2VI
YW5kbGUuaCAqLzsgfTsKIAkJQkMzM0UwRDIxMjQwOEU4NjAwMzYwRjNGIC8qIEluamVjdGVkQnVu
ZGxlUmFuZ2VIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkMzM0UwRDAxMjQwOEU4NjAwMzYwRjNGIC8qIEluamVjdGVkQnVuZGxlUmFuZ2VI
YW5kbGUuY3BwICovOyB9OworCQlCQzQ5ODYxODEyNEQxMEUyMDBEODM0RTEgLyogSW5qZWN0ZWRC
dW5kbGVIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzQ5ODYxNjEyNEQxMEUyMDBEODM0RTEgLyogSW5qZWN0ZWRCdW5kbGVIaXRU
ZXN0UmVzdWx0LmggKi87IH07CisJCUJDNDk4NjE5MTI0RDEwRTIwMEQ4MzRFMSAvKiBJbmplY3Rl
ZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM0OTg2MTcxMjREMTBFMjAwRDgzNEUxIC8qIEluamVjdGVkQnVuZGxl
SGl0VGVzdFJlc3VsdC5jcHAgKi87IH07CisJCUJDNDk4NjJGMTI0RDE4QzEwMEQ4MzRFMSAvKiBX
S0J1bmRsZUhpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDNDk4NjJEMTI0RDE4QzEwMEQ4MzRFMSAvKiBXS0J1bmRsZUhpdFRlc3RS
ZXN1bHQuaCAqLzsgfTsKKwkJQkM0OTg2MzAxMjREMThDMTAwRDgzNEUxIC8qIFdLQnVuZGxlSGl0
VGVzdFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzQ5ODYyRTEyNEQxOEMxMDBEODM0RTEgLyogV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmNw
cCAqLzsgfTsKIAkJQkM0QkVFQUIxMjBBMEE1RjAwRkJBMEM3IC8qIEluamVjdGVkQnVuZGxlTm9k
ZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM0QkVFQTkxMjBBMEE1RTAwRkJBMEM3IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oICov
OyB9OwogCQlCQzRCRUVBQzEyMEEwQTVGMDBGQkEwQzcgLyogSW5qZWN0ZWRCdW5kbGVOb2RlSGFu
ZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
NEJFRUFBMTIwQTBBNUYwMEZCQTBDNyAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwICov
OyB9OwogCQlCQzRCRUZFMTEyMEExQTRDMDBGQkEwQzcgLyogV0tCdW5kbGVOb2RlSGFuZGxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRCRUZERjEy
MEExQTRDMDBGQkEwQzcgLyogV0tCdW5kbGVOb2RlSGFuZGxlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwpAQCAtNjQ3LDYgKzY1MSwxMCBAQAogCQlCQzMz
REU4RDEyMzg1QzMzMDAzNjBGM0YgLyogV0tOdW1iZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV0tOdW1iZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQzMzRTBDRjEyNDA4RTg2MDAzNjBGM0YgLyogSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRs
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVJhbmdl
SGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMzNFMEQwMTI0MDhFODYw
MDM2MEYzRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzQ5ODYxNjEyNEQxMEUyMDBEODM0RTEgLyogSW5q
ZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCQzQ5ODYxNzEyNEQxMEUyMDBEODM0RTEgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0
UmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVk
QnVuZGxlSGl0VGVzdFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJD
NDk4NjJEMTI0RDE4QzEwMEQ4MzRFMSAvKiBXS0J1bmRsZUhpdFRlc3RSZXN1bHQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVIaXRUZXN0UmVzdWx0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNDk4NjJFMTI0RDE4QzEwMEQ4MzRFMSAvKiBXS0J1
bmRsZUhpdFRlc3RSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkM0QkVFQTkxMjBBMEE1RTAwRkJBMEM3IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZU5vZGVIYW5k
bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0QkVFQUExMjBBMEE1RjAwRkJB
MEM3IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzRCRUZERjEyMEExQTRDMDBGQkEwQzcgLyogV0tCdW5kbGVO
b2RlSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlTm9k
ZUhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQyMCw2ICsxNDI4LDgg
QEAKIAkJCQlCQzRCRUU5NjEyMEEwOTE3MDBGQkEwQzcgLyogRE9NICovLAogCQkJCUJDMjA0RUUw
MTFDODNFOTgwMDhGMzM3NSAvKiBJbmplY3RlZEJ1bmRsZS5jcHAgKi8sCiAJCQkJQkMyMDRFRTEx
MUM4M0U5ODAwOEYzMzc1IC8qIEluamVjdGVkQnVuZGxlLmggKi8sCisJCQkJQkM0OTg2MTcxMjRE
MTBFMjAwRDgzNEUxIC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAgKi8sCisJCQkJ
QkM0OTg2MTYxMjREMTBFMjAwRDgzNEUxIC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5o
ICovLAogCQkJCUUxRUU1M0U2MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VF
ZGl0b3JDbGllbnQuY3BwICovLAogCQkJCUUxRUU1M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAqLywKIAkJCQlCQzE0RTEwNzEyMEI5MDVFMDA4
MjZDMEMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgKi8sCkBAIC0xNDYxLDYg
KzE0NzEsOCBAQAogCQkJCUJDRDI1RjE2MTFENkJERTEwMDE2OUIwRSAvKiBXS0J1bmRsZUZyYW1l
LmNwcCAqLywKIAkJCQlCQ0QyNUYxNTExRDZCREUxMDAxNjlCMEUgLyogV0tCdW5kbGVGcmFtZS5o
ICovLAogCQkJCUJDRjA0OUU0MTFGRTIwRjYwMEY4NkE1OCAvKiBXS0J1bmRsZUZyYW1lUHJpdmF0
ZS5oICovLAorCQkJCUJDNDk4NjJFMTI0RDE4QzEwMEQ4MzRFMSAvKiBXS0J1bmRsZUhpdFRlc3RS
ZXN1bHQuY3BwICovLAorCQkJCUJDNDk4NjJEMTI0RDE4QzEwMEQ4MzRFMSAvKiBXS0J1bmRsZUhp
dFRlc3RSZXN1bHQuaCAqLywKIAkJCQlCQzIwNEVFRDExQzgzRUM4MDA4RjMzNzUgLyogV0tCdW5k
bGVJbml0aWFsaXplLmggKi8sCiAJCQkJQkM0QkVGRTAxMjBBMUE0QzAwRkJBMEM3IC8qIFdLQnVu
ZGxlTm9kZUhhbmRsZS5jcHAgKi8sCiAJCQkJQkM0QkVGREYxMjBBMUE0QzAwRkJBMEM3IC8qIFdL
QnVuZGxlTm9kZUhhbmRsZS5oICovLApAQCAtMTgwNiw2ICsxODE4LDggQEAKIAkJCQkxQTBFQzdG
QjEyNEJEM0I2MDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc01haW4uaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBMEVDOTA2MTI0QzBBQjgwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwRUM5MEYxMjRDMEFGNTAwN0VGNEE1IC8qIFBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0OTg2MTgxMjRE
MTBFMjAwRDgzNEUxIC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQkM0OTg2MkYxMjREMThDMTAwRDgzNEUxIC8qIFdLQnVuZGxlSGl0VGVzdFJlc3Vs
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwNDM5NzYxMjREMDM0ODAwRkZCRkI1IC8qIFBsdWdp
blByb2Nlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMDQzQTA5MTI0RDExQTkwMEZGQkZCNSAv
KiBXZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwNDNCNUUxMjRE
NUU5RDAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKQEAgLTE4NTgsNyArMTg3Miw2IEBACiAJCQlpc2EgPSBQQlhQcm9qZWN0OwogCQkJYnVpbGRD
b25maWd1cmF0aW9uTGlzdCA9IDFERUI5MUIxMDg3MzNEQTUwMDEwRTlDRCAvKiBCdWlsZCBjb25m
aWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldlYktpdDIiICovOwogCQkJY29tcGF0aWJp
bGl0eVZlcnNpb24gPSAiWGNvZGUgMy4xIjsKLQkJCWRldmVsb3BtZW50UmVnaW9uID0gRW5nbGlz
aDsKIAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25zID0gKAog
CQkJCUVuZ2xpc2gsCkBAIC0yMDg1LDYgKzIwOTgsOCBAQAogCQkJCTFBMEVDODAzMTI0QkQ0MUUw
MDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzTWFpbk1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFB
MEVDOTA3MTI0QzBBQjgwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQTBFQzkxMDEyNEMwQUY1MDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDNDk4NjE5MTI0RDEw
RTIwMEQ4MzRFMSAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQkM0OTg2MzAxMjREMThDMTAwRDgzNEUxIC8qIFdLQnVuZGxlSGl0VGVzdFJlc3Vs
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTA0Mzk3NzEyNEQwMzQ4MDBGRkJGQjUgLyogUGx1
Z2luUHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTA0M0EwQTEyNEQxMUE5MDBGRkJG
QjUgLyogV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzA2QzYw
OTUxMjRDMTQ0QjAwMDE2ODJGIC8qIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGluIFNv
dXJjZXMgKi8sCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcAkocmV2aXNp
b24gMCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZUhpdFRlc3RSZXN1bHQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDczIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oIgorCisjaW5jbHVk
ZSAiSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgiCisjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNp
bmNsdWRlICJXZWJGcmFtZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1l
bnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvS1VSTC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK1Bhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0PiBJbmplY3Rl
ZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmNyZWF0ZShjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0
JiBoaXRUZXN0UmVzdWx0KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5qZWN0ZWRCdW5k
bGVIaXRUZXN0UmVzdWx0KGhpdFRlc3RSZXN1bHQpKTsKK30KKworUGFzc1JlZlB0cjxJbmplY3Rl
ZEJ1bmRsZU5vZGVIYW5kbGU+IEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6bm9kZUhhbmRs
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6Z2V0T3JD
cmVhdGUobV9oaXRUZXN0UmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKTsKK30KKworV2ViRnJh
bWUqIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6d2ViRnJhbWUoKSBjb25zdAoreworICAg
IE5vZGUqIG5vZGUgPSBtX2hpdFRlc3RSZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCk7CisgICAg
aWYgKCFub2RlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIERvY3VtZW50KiBkb2N1bWVudCA9
IG5vZGUtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1l
KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJGcmFtZUxv
YWRlckNsaWVudCo+KGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOworfQor
Citjb25zdCBTdHJpbmcmIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6YWJzb2x1dGVMaW5r
VVJMKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oaXRUZXN0UmVzdWx0LmFic29sdXRlTGlua1VS
TCgpLnN0cmluZygpOworfQorCit9IC8vIFdlYktpdApJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRl
c3RSZXN1bHQuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0
X2gKKyNkZWZpbmUgSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0X2gKKworI2luY2x1ZGUgIkFQ
SU9iamVjdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSGl0VGVzdFJlc3VsdC5oPgorI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBJbmplY3RlZEJ1bmRs
ZU5vZGVIYW5kbGU7CitjbGFzcyBXZWJGcmFtZTsKKworY2xhc3MgSW5qZWN0ZWRCdW5kbGVIaXRU
ZXN0UmVzdWx0IDogcHVibGljIEFQSU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0
IFR5cGUgQVBJVHlwZSA9IFR5cGVCdW5kbGVIaXRUZXN0UmVzdWx0OworCisgICAgc3RhdGljIFBh
c3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0PiBjcmVhdGUoY29uc3QgV2ViQ29y
ZTo6SGl0VGVzdFJlc3VsdCYpOworCisgICAgY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYg
Y29yZUhpdFRlc3RSZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX2hpdFRlc3RSZXN1bHQ7IH0KKwor
ICAgIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlPiBub2RlSGFuZGxlKCkgY29u
c3Q7IAorICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSgpIGNvbnN0OworICAgIGNvbnN0IFN0cmluZyYg
YWJzb2x1dGVMaW5rVVJMKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgSW5qZWN0
ZWRCdW5kbGVIaXRUZXN0UmVzdWx0KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmIGhpdFRl
c3RSZXN1bHQpCisgICAgICAgIDogbV9oaXRUZXN0UmVzdWx0KGhpdFRlc3RSZXN1bHQpCisgICAg
eworICAgIH0KKworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlw
ZTsgfQorCisgICAgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCBtX2hpdFRlc3RSZXN1bHQ7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEluamVjdGVkQnVuZGxlSGl0VGVz
dFJlc3VsdF9oCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAJKHJldmlzaW9u
IDY4MzE2KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZVVJQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogCiAj
aW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCIKIAorI2luY2x1ZGUgIkluamVj
dGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1
ZGUgIldLQnVuZGxlQVBJQ2FzdC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpA
QCAtNzYsNCArNzcsMTYgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6d2lsbFJ1
bgogICAgICAgICBtX2NsaWVudC53aWxsUnVuSmF2YVNjcmlwdFByb21wdCh0b1JlZihwYWdlKSwg
dG9SZWYobWVzc2FnZS5pbXBsKCkpLCB0b1JlZihkZWZhdWx0VmFsdWUuaW1wbCgpKSwgdG9SZWYo
ZnJhbWUpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKIH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2VVSUNsaWVudDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoV2ViUGFnZSogcGFnZSwgY29uc3Qg
SGl0VGVzdFJlc3VsdCYgY29yZUhpdFRlc3RSZXN1bHQsIFJlZlB0cjxBUElPYmplY3Q+JiB1c2Vy
RGF0YSkKK3sKKyAgICBpZiAoIW1fY2xpZW50Lm1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KQorICAg
ICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0PiBo
aXRUZXN0UmVzdWx0ID0gSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0OjpjcmVhdGUoY29yZUhp
dFRlc3RSZXN1bHQpOworCisgICAgV0tUeXBlUmVmIHVzZXJEYXRhVG9QYXNzID0gMDsKKyAgICBt
X2NsaWVudC5tb3VzZURpZE1vdmVPdmVyRWxlbWVudCh0b1JlZihwYWdlKSwgdG9SZWYoaGl0VGVz
dFJlc3VsdC5nZXQoKSksICZ1c2VyRGF0YVRvUGFzcywgbV9jbGllbnQuY2xpZW50SW5mbyk7Cisg
ICAgdXNlckRhdGEgPSBhZG9wdFJlZih0b1dLKHVzZXJEYXRhVG9QYXNzKSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgJKHJldmlz
aW9uIDY4MzE2KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZVVJQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDEzIEBACiAj
aW5jbHVkZSAiV0tCdW5kbGVQYWdlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAorbmFt
ZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIEhpdFRlc3RSZXN1bHQ7Cit9CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCitjbGFzcyBBUElPYmplY3Q7CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdl
YlBhZ2U7CiAKQEAgLTQ0LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbFJ1bkphdmFT
Y3JpcHRBbGVydChXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiwgV2ViRnJhbWUqKTsKICAgICB2b2lk
IHdpbGxSdW5KYXZhU2NyaXB0Q29uZmlybShXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiwgV2ViRnJh
bWUqKTsKICAgICB2b2lkIHdpbGxSdW5KYXZhU2NyaXB0UHJvbXB0KFdlYlBhZ2UqLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmLCBXZWJGcmFtZSopOworICAgIHZvaWQgbW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQoV2ViUGFnZSosIGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCBSZWZQ
dHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpOwogCiBwcml2YXRlOgogICAgIFdLQnVuZGxlUGFnZVVJ
Q2xpZW50IG1fY2xpZW50OwpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlQVBJQ2FzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUFQSUNhc3QuaAkocmV2aXNpb24gNjgzMTYp
CisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVBUElD
YXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEluamVjdGVkQnVuZGxlOworY2xhc3MgSW5q
ZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0OwogY2xhc3MgSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxl
OwogY2xhc3MgSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTsKIGNsYXNzIEluamVjdGVkQnVuZGxl
U2NyaXB0V29ybGQ7CkBAIC01MSw2ICs1Miw3IEBAIGNsYXNzIFdlYlBhZ2U7CiB0ZW1wbGF0ZTx0
eXBlbmFtZSBBUElUeXBlPiBzdHJ1Y3QgQnVuZGxlQVBJVHlwZUluZm8geyB9OwogdGVtcGxhdGU8
PiBzdHJ1Y3QgQnVuZGxlQVBJVHlwZUluZm88V0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uUmVm
PiAgICAgeyB0eXBlZGVmIFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb24qIEltcGxUeXBlOyB9
OwogdGVtcGxhdGU8PiBzdHJ1Y3QgQnVuZGxlQVBJVHlwZUluZm88V0tCdW5kbGVGcmFtZVJlZj4g
ICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdlYkZyYW1lKiBJbXBsVHlwZTsgfTsKK3RlbXBs
YXRlPD4gc3RydWN0IEJ1bmRsZUFQSVR5cGVJbmZvPFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZj4g
ICAgICAgICAgIHsgdHlwZWRlZiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQqIEltcGxUeXBl
OyB9OwogdGVtcGxhdGU8PiBzdHJ1Y3QgQnVuZGxlQVBJVHlwZUluZm88V0tCdW5kbGVOb2RlSGFu
ZGxlUmVmPiAgICAgICAgICAgICAgeyB0eXBlZGVmIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZSog
SW1wbFR5cGU7IH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBCdW5kbGVBUElUeXBlSW5mbzxXS0J1bmRs
ZVBhZ2VSZWY+ICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV2ViUGFnZSogSW1wbFR5cGU7
IH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBCdW5kbGVBUElUeXBlSW5mbzxXS0J1bmRsZVJhbmdlSGFu
ZGxlUmVmPiAgICAgICAgICAgICB7IHR5cGVkZWYgSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZSog
SW1wbFR5cGU7IH07CkBAIC01OSwxMiArNjEsMTMgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQnVuZGxl
QVBJVHlwZUluZm88V0tCdQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJbXBsVHlwZT4gc3RydWN0IEJ1
bmRsZUltcGxUeXBlSW5mbyB7IH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBCdW5kbGVJbXBsVHlwZUlu
Zm88SW5qZWN0ZWRCdW5kbGUqPiAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tCdW5kbGVS
ZWYgQVBJVHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEJ1bmRsZUltcGxUeXBlSW5mbzxJbmpl
Y3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQqPiAgICAgIHsgdHlwZWRlZiBXS0J1bmRsZUhpdFRlc3RS
ZXN1bHRSZWYgQVBJVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEJ1bmRsZUltcGxUeXBlSW5m
bzxJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUqPiAgICAgICAgIHsgdHlwZWRlZiBXS0J1bmRsZU5v
ZGVIYW5kbGVSZWYgQVBJVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEJ1bmRsZUltcGxUeXBl
SW5mbzxJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlKj4gICAgICAgIHsgdHlwZWRlZiBXS0J1bmRs
ZVJhbmdlSGFuZGxlUmVmIEFQSVR5cGU7IH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBCdW5kbGVJbXBs
VHlwZUluZm88SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCo+ICAgICAgICB7IHR5cGVkZWYgV0tC
dW5kbGVTY3JpcHRXb3JsZFJlZiBBUElUeXBlOyB9OwordGVtcGxhdGU8PiBzdHJ1Y3QgQnVuZGxl
SW1wbFR5cGVJbmZvPFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb24qPiAgICAgeyB0eXBlZGVm
IFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZiBBUElUeXBlOyB9OwogdGVtcGxhdGU8PiBz
dHJ1Y3QgQnVuZGxlSW1wbFR5cGVJbmZvPFdlYkZyYW1lKj4gICAgICAgICAgICAgICAgICAgICAg
ICAgeyB0eXBlZGVmIFdLQnVuZGxlRnJhbWVSZWYgQVBJVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3Ry
dWN0IEJ1bmRsZUltcGxUeXBlSW5mbzxXZWJQYWdlKj4gICAgICAgICAgICAgICAgICAgICAgICAg
IHsgdHlwZWRlZiBXS0J1bmRsZVBhZ2VSZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0
IEJ1bmRsZUltcGxUeXBlSW5mbzxXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uKj4gICAgIHsg
dHlwZWRlZiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWYgQVBJVHlwZTsgfTsKIAogLyog
T3BhcXVlIHR5cGluZyBjb252ZW5pZW5jZSBtZXRob2RzICovCiAKSW5kZXg6IFdlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhc2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYXNlLmgJ
KHJldmlzaW9uIDY4MzE2KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQnVuZGxlKiBXS0J1bmRsZVJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLQnVuZGxlRnJhbWUqIFdLQnVuZGxlRnJhbWVSZWY7Cit0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0J1bmRsZUhpdFRlc3RSZXN1bHQqIFdLQnVuZGxlSGl0
VGVzdFJlc3VsdFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQnVuZGxlTm9kZUhh
bmRsZSogV0tCdW5kbGVOb2RlSGFuZGxlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tCdW5kbGVQYWdlKiBXS0J1bmRsZVBhZ2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS0J1bmRsZVJhbmdlSGFuZGxlKiBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmOwpJbmRleDogV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVzdFJlc3Vs
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXS0J1
bmRsZUhpdFRlc3RSZXN1bHQuaCIKKworI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlSGl0VGVzdFJl
c3VsdC5oIgorI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oIgorI2luY2x1ZGUg
IldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLQnVuZGxlQVBJQ2FzdC5oIgorCit1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS0J1bmRsZUhpdFRlc3RSZXN1bHRHZXRUeXBlSUQo
KQoreworICAgIHJldHVybiB0b1JlZihJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OkFQSVR5
cGUpOworfQorCitXS0J1bmRsZU5vZGVIYW5kbGVSZWYgV0tCdW5kbGVIaXRUZXN0UmVzdWx0R2V0
Tm9kZUhhbmRsZShXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYgaGl0VGVzdFJlc3VsdFJlZikKK3sK
KyAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlPiBub2RlSGFuZGxlID0gdG9XSyho
aXRUZXN0UmVzdWx0UmVmKS0+bm9kZUhhbmRsZSgpOworICAgIHJldHVybiB0b1JlZihub2RlSGFu
ZGxlLmdldCgpKTsKK30KKworV0tCdW5kbGVGcmFtZVJlZiBXS0J1bmRsZUhpdFRlc3RSZXN1bHRH
ZXRGcmFtZShXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYgaGl0VGVzdFJlc3VsdFJlZikKK3sKKyAg
ICByZXR1cm4gdG9SZWYodG9XSyhoaXRUZXN0UmVzdWx0UmVmKS0+d2ViRnJhbWUoKSk7Cit9CisK
K1dLVVJMUmVmIFdLQnVuZGxlSGl0VGVzdFJlc3VsdENvcHlBYnNvbHV0ZUxpbmtVUkwoV0tCdW5k
bGVIaXRUZXN0UmVzdWx0UmVmIGhpdFRlc3RSZXN1bHRSZWYpCit7CisgICAgcmV0dXJuIHRvQ29w
aWVkVVJMUmVmKHRvV0soaGl0VGVzdFJlc3VsdFJlZiktPmFic29sdXRlTGlua1VSTCgpKTsKK30K
SW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhp
dFRlc3RSZXN1bHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmgJKHJldmlzaW9uIDApCisrKyBXZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdL
QnVuZGxlSGl0VGVzdFJlc3VsdF9oCisjZGVmaW5lIFdLQnVuZGxlSGl0VGVzdFJlc3VsdF9oCisK
KyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tCdW5kbGVC
YXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tf
RVhQT1JUIFdLVHlwZUlEIFdLQnVuZGxlSGl0VGVzdFJlc3VsdEdldFR5cGVJRCgpOworCitXS19F
WFBPUlQgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIFdLQnVuZGxlSGl0VGVzdFJlc3VsdEdldE5vZGVI
YW5kbGUoV0tCdW5kbGVIaXRUZXN0UmVzdWx0UmVmIGhpdFRlc3RSZXN1bHQpOworV0tfRVhQT1JU
IFdLQnVuZGxlRnJhbWVSZWYgV0tCdW5kbGVIaXRUZXN0UmVzdWx0R2V0RnJhbWUoV0tCdW5kbGVI
aXRUZXN0UmVzdWx0UmVmIGhpdFRlc3RSZXN1bHQpOworV0tfRVhQT1JUIFdLVVJMUmVmIFdLQnVu
ZGxlSGl0VGVzdFJlc3VsdENvcHlBYnNvbHV0ZUxpbmtVUkwoV0tCdW5kbGVIaXRUZXN0UmVzdWx0
UmVmIGhpdFRlc3RSZXN1bHQpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisj
ZW5kaWYgLyogV0tCdW5kbGVIaXRUZXN0UmVzdWx0X2ggKi8KSW5kZXg6IFdlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgJKHJl
dmlzaW9uIDY4MzE2KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNiArMTE4LDggQEAgdHlwZWRl
ZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbFNldFN0YXR1cwogdHlwZWRlZiB2b2lkICgqV0tCdW5k
bGVQYWdlV2lsbFJ1bkphdmFTY3JpcHRBbGVydENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgV0tTdHJpbmdSZWYgYWxlcnRUZXh0LCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2
b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdpbGxSdW5KYXZh
U2NyaXB0Q29uZmlybUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYg
bWVzc2FnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7
CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VXaWxsUnVuSmF2YVNjcmlwdFByb21wdENhbGxi
YWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdS
ZWYgZGVmYXVsdFZhbHVlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdpbGxSdW5KYXZhU2NyaXB0UHJv
bXB0Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBX
S1N0cmluZ1JlZiBkZWZhdWx0VmFsdWUsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlTW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnRDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlSGl0VGVz
dFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0LCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKTsKIAogc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50IHsKICAgICBpbnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZlcnNpb247CkBAIC0xMjcsNiArMTI5LDcgQEAgc3RydWN0IFdLQnVuZGxlUGFnZVVJ
Q2xpZW50IHsKICAgICBXS0J1bmRsZVBhZ2VXaWxsUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxSdW5KYXZhU2NyaXB0QWxlcnQ7CiAgICAgV0tC
dW5kbGVQYWdlV2lsbFJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICB3aWxsUnVuSmF2YVNjcmlwdENvbmZpcm07CiAgICAgV0tCdW5kbGVQYWdlV2lsbFJ1
bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsUnVu
SmF2YVNjcmlwdFByb21wdDsKKyAgICBXS0J1bmRsZVBhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVu
dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50
OwogfTsKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50IFdLQnVuZGxlUGFnZVVJ
Q2xpZW50OwogCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkocmV2aXNpb24gNjgzMTYpCisrKyBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKICNpbmNs
dWRlICJEcmF3aW5nQXJlYS5oIgorI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VD
b2RlcnMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJX
ZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xpZW50LmgiCkBAIC0zNTYsOSAr
MzU3LDE1IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY3JvbGxiYXJzTW9kZURpZEMKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6bW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3Mp
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0
VGVzdFJlc3VsdCYgaGl0VGVzdFJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOworCisg
ICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgorICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5k
bGVVSUNsaWVudCgpLm1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KG1fcGFnZSwgaGl0VGVzdFJlc3Vs
dCwgdXNlckRhdGEpOworCisgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MuCisgICAgV2ViUHJv
Y2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKFdlYlBhZ2VQcm94eU1lc3NhZ2U6Ok1v
dXNlRGlkTW92ZU92ZXJFbGVtZW50LCBtX3BhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbihtb2Rp
ZmllckZsYWdzLCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQo
KSkpKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5n
JiB0b29sVGlwLCBUZXh0RGlyZWN0aW9uKQpJbmRleDogV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3By
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHJldmlzaW9uIDY4
MzE2KQorKysgV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTgz
Niw2ICs4MzYsMTQgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcSW5qZWN0ZWRCdW5kbGVI
aXRUZXN0UmVzdWx0LmNwcCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEluamVjdGVkQnVu
ZGxlSGl0VGVzdFJlc3VsdC5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQog
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcSW5qZWN0ZWRC
dW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KQEAgLTkx
NCw2ICs5MjIsMTQgQEAKIAkJCQkJCQk+DQogCQkJCQkJPC9GaWxlPg0KIAkJCQkJCTxGaWxlDQor
CQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElcY1xX
S0J1bmRsZUhpdFRlc3RSZXN1bHQuY3BwIg0KKwkJCQkJCQk+DQorCQkJCQkJPC9GaWxlPg0KKwkJ
CQkJCTxGaWxlDQorCQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1
bmRsZVxBUElcY1xXS0J1bmRsZUhpdFRlc3RSZXN1bHQuaCINCisJCQkJCQkJPg0KKwkJCQkJCTwv
RmlsZT4NCisJCQkJCQk8RmlsZQ0KIAkJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3Nc
SW5qZWN0ZWRCdW5kbGVcQVBJXGNcV0tCdW5kbGVJbml0aWFsaXplLmgiDQogCQkJCQkJCT4NCiAJ
CQkJCQk8L0ZpbGU+DQpJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNjgzMTYpCisrKyBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wOS0yNCAgU2Ft
IFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBXZWJLaXQyIGNhbGxiYWNrIGVxdWl2YWxlbnQg
dG8gLVtXZWJVSURlbGVnYXRlIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Om1vZGlmaWVyRmxhZ3M6
XQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM1OTI3OT4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2NTQ2CisKKyAgICAgICAgKiBNaW5pQnJvd3Nl
ci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubToKKyAgICAgICAgKG1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50KToKKyAgICAgICAgKC1bQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgYXdha2VGcm9t
TmliXSk6CisgICAgICAgICogTWluaUJyb3dzZXIvd2luL0Jyb3dzZXJWaWV3LmNwcDoKKyAgICAg
ICAgKG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KToKKyAgICAgICAgKEJyb3dzZXJWaWV3OjpjcmVh
dGUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3Rl
ZEJ1bmRsZVBhZ2UpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV1RSOjpjcmVhdGVPdGhlclBhZ2UpOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisKIDIwMTAtMDktMjQgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KSW5kZXg6
IFdlYktpdFRvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29u
dHJvbGxlci5tCShyZXZpc2lvbiA2ODI2MikKKysrIFdlYktpdFRvb2xzL01pbmlCcm93c2VyL21h
Yy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tCSh3b3JraW5nIGNvcHkpCkBAIC00NzQsNiArNDc0
LDExIEBAIHN0YXRpYyB2b2lkIHNldFN0YXR1c1RleHQoV0tQYWdlUmVmIHBhZ2UKICAgICBMT0co
QCJzZXRTdGF0dXNUZXh0Iik7CiB9CiAKK3N0YXRpYyB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50KFdLUGFnZVJlZiBwYWdlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tUeXBlUmVm
IHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQoreworICAgIExPRyhAIm1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50Iik7Cit9CisKIHN0YXRpYyB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQo
V0tQYWdlUmVmIHBhZ2UsIGludCB3aWR0aCwgaW50IGhlaWdodCwgV0tGcmFtZVJlZiBmcmFtZSwg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBMT0coQCJjb250ZW50c1NpemVDaGFuZ2Vk
Iik7CkBAIC01MzEsNiArNTM2LDcgQEAgLSAodm9pZClhd2FrZUZyb21OaWIKICAgICAgICAgcnVu
SmF2YVNjcmlwdENvbmZpcm0sCiAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQsCiAgICAgICAg
IHNldFN0YXR1c1RleHQsCisgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50LAogICAgICAg
ICBjb250ZW50c1NpemVDaGFuZ2VkCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQo
X3dlYlZpZXcucGFnZVJlZiwgJnVpQ2xpZW50KTsKSW5kZXg6IFdlYktpdFRvb2xzL01pbmlCcm93
c2VyL3dpbi9Ccm93c2VyVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvTWluaUJy
b3dzZXIvd2luL0Jyb3dzZXJWaWV3LmNwcAkocmV2aXNpb24gNjgyNjIpCisrKyBXZWJLaXRUb29s
cy9NaW5pQnJvd3Nlci93aW4vQnJvd3NlclZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCw2
ICs3NCwxMCBAQCBzdGF0aWMgdm9pZCBzZXRTdGF0dXNUZXh0KFdLUGFnZVJlZiBwYWdlCiB7CiB9
CiAKK3N0YXRpYyB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KFdLUGFnZVJlZiBwYWdlLCBX
S0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKQoreworfQorCiBzdGF0aWMgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdL
UGFnZVJlZiBwYWdlLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIFdLRnJhbWVSZWYgZnJhbWUsIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiB9CkBAIC0xMDQsNiArMTA4LDcgQEAgdm9pZCBCcm93
c2VyVmlldzo6Y3JlYXRlKFJFQ1Qgd2ViVmlld1JlYwogICAgICAgICBydW5KYXZhU2NyaXB0Q29u
ZmlybSwKICAgICAgICAgcnVuSmF2YVNjcmlwdFByb21wdCwKICAgICAgICAgc2V0U3RhdHVzVGV4
dCwKKyAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQsCiAgICAgICAgIGNvbnRlbnRzU2l6
ZUNoYW5nZWQKICAgICB9OwogCkluZGV4OiBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNjgyNjIpCisrKyBXZWJLaXRUb29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQs
NiArODQsNyBAQCBzdGF0aWMgV0tQYWdlUmVmIGNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSCiAgICAg
ICAgIDAsCiAgICAgICAgIDAsCiAgICAgICAgIDAsCisgICAgICAgIDAsCiAgICAgICAgIDAKICAg
ICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChuZXdQYWdlLCAmb3RoZXJQYWdlVUlDbGll
bnQpOwpAQCAtMTYzLDYgKzE2NCw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUo
aW50IGFyZ2MKICAgICAgICAgMCwKICAgICAgICAgMCwKICAgICAgICAgMCwKKyAgICAgICAgMCwK
ICAgICAgICAgMAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFpbldlYlZp
ZXctPnBhZ2UoKSwgJnBhZ2VVSUNsaWVudCk7CkluZGV4OiBXZWJLaXRUb29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2UuY3BwCShyZXZpc2lvbiA2ODI2MikKKysrIFdlYktpdFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTg3LDcgKzE4Nyw4IEBAIEluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQ
YWdlKFcKICAgICAgICAgd2lsbFNldFN0YXR1c2JhclRleHQsCiAgICAgICAgIHdpbGxSdW5KYXZh
U2NyaXB0QWxlcnQsCiAgICAgICAgIHdpbGxSdW5KYXZhU2NyaXB0Q29uZmlybSwKLSAgICAgICAg
d2lsbFJ1bkphdmFTY3JpcHRQcm9tcHQKKyAgICAgICAgd2lsbFJ1bkphdmFTY3JpcHRQcm9tcHQs
CisgICAgICAgIDAgLyptb3VzZURpZE1vdmVPdmVyRWxlbWVudCovCiAgICAgfTsKICAgICBXS0J1
bmRsZVBhZ2VTZXRVSUNsaWVudChtX3BhZ2UsICZ1aUNsaWVudCk7CiAK
</data>
<flag name="review"
          id="58372"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>