<?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>134738</bug_id>
          
          <creation_ts>2014-07-08 12:30:15 -0700</creation_ts>
          <short_desc>[GTK] Add support for user scripts to WebKitUserContentManager</short_desc>
          <delta_ts>2014-08-06 08:07:33 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrian Perez">aperez</reporter>
          <assigned_to name="Adrian Perez">aperez</assigned_to>
          <cc>berto</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1021159</commentid>
    <comment_count>0</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2014-07-08 12:30:15 -0700</bug_when>
    <thetext>This would be similar as for user style sheets from bug #34551
but in this case for user scripts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021165</commentid>
    <comment_count>1</comment_count>
      <attachid>234583</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2014-07-08 12:46:24 -0700</bug_when>
    <thetext>Created attachment 234583
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021166</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-08 12:47:48 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021407</commentid>
    <comment_count>3</comment_count>
      <attachid>234648</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2014-07-09 11:44:14 -0700</bug_when>
    <thetext>Created attachment 234648
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026515</commentid>
    <comment_count>4</comment_count>
      <attachid>234648</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-08-03 03:38:35 -0700</bug_when>
    <thetext>Comment on attachment 234648
Patch

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

The API looks good to me, it&apos;s the equivalent to the style sheets API.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitUserContentManager.cpp:133
&gt; -    removeOldInjectedStyleSheetsAndResetLists(test-&gt;m_userContentManager.get(), whitelist, blacklist);
&gt; +    removeOldInjectedContentAndResetLists(test-&gt;m_userContentManager.get(), whitelist, blacklist);

Why do we need to remove also the scripts?

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitUserContentManager.cpp:135
&gt; +    // Without a whitelist or a blacklist all URLs should have the injected style sheet.

Looks like this method is for testing style sheets (testUserContentManagerInjectedStyleSheet), but it&apos;s testing user scripts instead.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitUserContentManager.cpp:171
&gt; +static void testUserContentManagerInjectedScript(UserContentManagerTest* test, gconstpointer)

And here you are testing the style sheets . . .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027134</commentid>
    <comment_count>5</comment_count>
      <attachid>234648</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2014-08-06 05:23:07 -0700</bug_when>
    <thetext>Comment on attachment 234648
Patch

API looks good to me as well =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027146</commentid>
    <comment_count>6</comment_count>
      <attachid>236098</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-08-06 06:45:37 -0700</bug_when>
    <thetext>Created attachment 236098
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027166</commentid>
    <comment_count>7</comment_count>
      <attachid>236098</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-06 08:07:27 -0700</bug_when>
    <thetext>Comment on attachment 236098
Patch for landing

Clearing flags on attachment: 236098

Committed r172147: &lt;http://trac.webkit.org/changeset/172147&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027167</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-06 08:07:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234583</attachid>
            <date>2014-07-08 12:46:24 -0700</date>
            <delta_ts>2014-07-09 11:43:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134738-20140708224837.patch</filename>
            <type>text/plain</type>
            <size>22611</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwODkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTExZTRiOTJhMTE5Yjli
YjczZGY3OWE5NGQzNGMyZmZkMzQzNjE2Zi4uZWU4NjM4ZDdjODM0ZmEyOGI4N2RjYTlmMDcwNTBi
YTc0NjY1NDBjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE0LTA3LTA4ICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
QWRkIHN1cHBvcnQgZm9yIHVzZXIgc2NyaXB0cyB0byBXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDczOAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciB1c2VyIHNjcmlwdHMsIHRvIGNvbXBsZW1lbnQgdGhlIHVzZXIgc3R5bGUgc2hlZXQK
KyAgICAgICAgc3VwcG9ydCBhbHJlYWR5IHByZXNlbnQgaW4gV2ViS2l0VXNlckNvbnRlbnRNYW5h
Z2VyLiBNb3N0IG9mIHRoZQorICAgICAgICBtb3ZpbmcgcGFydHMgYXJlIGFscmVhZHkgcHJlc2Vu
dCwgc28gdGhpcyBqdXN0IGFkZHMgYSBib3hlZCB0eXBlCisgICAgICAgIGZvciB1c2VyIHNjcmlw
dHMgKFdlYktpdFVzZXJTY3JpcHQpIGFuZCB0aGUgY29ycmVzcG9uZGluZyBtZXRob2RzCisgICAg
ICAgIHRvIGFkZCBhbmQgcmVtb3ZlIHNjcmlwdHMgZnJvbSB0aGUgV2ViS2l0VXNlckNvbnRlbnRN
YW5hZ2VyLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnQu
Y3BwOiBBZGQgYSBXZWJLaXRVc2VyU2NyaXB0CisgICAgICAgIGJveGVkIHR5cGUgYW5kIGl0cyBj
b3JyZXNwb25kaW5nIG1ldGhvZHMgYW5kIGVudW1zLgorICAgICAgICAodG9Vc2VyU2NyaXB0SW5q
ZWN0aW9uVGltZSk6IE5lZWRlZCB0byBjb252ZXJ0CisgICAgICAgIFdlYktpdFVzZXJTY3JpcHRJ
bmplY3Rpb25UaW1lIHZhbHVlcyBpbnRvIGl0cyBXZWJDb3JlIGNvdW50ZXJwYXJ0cy4KKyAgICAg
ICAgKF9XZWJLaXRVc2VyU2NyaXB0OjpfV2ViS2l0VXNlclNjcmlwdCk6IEFkZGVkLgorICAgICAg
ICAoX1dlYktpdFVzZXJTY3JpcHQ6OnJlZmVyZW5jZUNvdW50KTogRGl0dG8uCisgICAgICAgICh3
ZWJraXRfdXNlcl9zY3JpcHRfcmVmKToKKyAgICAgICAgKHdlYmtpdF91c2VyX3NjcmlwdF91bnJl
Zik6CisgICAgICAgICh3ZWJraXRfdXNlcl9zY3JpcHRfbmV3KToKKyAgICAgICAgKHdlYmtpdFVz
ZXJTY3JpcHRHZXRVc2VyU2NyaXB0KTogSW50ZXJuYWwgbWV0aG9kIHRvIG9idGFpbiB0aGUKKyAg
ICAgICAgYm94ZWQgV2ViQ29yZTo6VXNlclNjcmlwdCB2YWx1ZS4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudC5oOiBBZGQgdGhlIG5ldyBwdWJsaWMgQVBJCisg
ICAgICAgIG1ldGhvZHMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNv
bnRlbnRNYW5hZ2VyLmNwcDogSW1wbGVtZW50IHRoZQorICAgICAgICBtZXRob2RzIGZvciBhZGRp
bmcgYW5kIHJlbW92aW5nIHVzZXIgc2NyaXB0cy4KKyAgICAgICAgKHdlYmtpdF91c2VyX2NvbnRl
bnRfbWFuYWdlcl9hZGRfc2NyaXB0KToKKyAgICAgICAgKHdlYmtpdF91c2VyX2NvbnRlbnRfbWFu
YWdlcl9yZW1vdmVfYWxsX3NjcmlwdHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVzZXJDb250ZW50TWFuYWdlci5oOiBBZGQgdGhlIG5ldyBwdWJsaWMKKyAgICAgICAgQVBJ
IG1ldGhvZHMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRQ
cml2YXRlLmg6IEFkZCB0aGUgZGVmaW5pdGlvbgorICAgICAgICBmb3IgdGhlIG5ldyBwcml2YXRl
IGZ1bmN0aW9uLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1z
ZWN0aW9ucy50eHQ6IEluY2x1ZGUgdGhlCisgICAgICAgIG5ldyBwdWJsaWMgbWV0aG9kcyBpbiB0
aGUgQVBJIGRvY3VtZW50YXRpb24uCisgICAgICAgIAorCiAyMDE0LTA3LTA4ICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFdLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uUHJpdmF0ZSdzIG1heGltdW1Qcm9jZXNzQ291bnQgcHJvcGVydHkgaGFzIG5vIGVm
ZmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VXNlckNvbnRlbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VXNlckNvbnRlbnQuY3BwCmluZGV4IDVlYWE5NTEyNzM0MGU5ZWU3NzNkODU4YzEzMWUzYjQ1NmY3
MzNlYWEuLjIxNDIxMzBkMWU3ZWUzZTdiY2Q1NjY1MjU5ZDkyNWViMGQ1ZmFhMTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVu
dC5jcHAKQEAgLTYzLDYgKzYzLDE5IEBAIHN0YXRpYyBpbmxpbmUgVXNlclN0eWxlTGV2ZWwgdG9V
c2VyU3R5bGVMZXZlbChXZWJLaXRVc2VyU3R5bGVMZXZlbCBzdHlsZUxldmVsKQogICAgIH0KIH0K
IAorc3RhdGljIGlubGluZSBVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSB0b1VzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lKFdlYktpdFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRpbWUpCit7
CisgICAgc3dpdGNoIChpbmplY3Rpb25UaW1lKSB7CisgICAgY2FzZSBXRUJLSVRfVVNFUl9TQ1JJ
UFRfSU5KRUNUX0FUX0RPQ1VNRU5UX1NUQVJUOgorICAgICAgICByZXR1cm4gSW5qZWN0QXREb2N1
bWVudFN0YXJ0OworICAgIGNhc2UgV0VCS0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVO
VF9FTkQ6CisgICAgICAgIHJldHVybiBJbmplY3RBdERvY3VtZW50RW5kOworICAgIGRlZmF1bHQ6
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gSW5qZWN0QXRE
b2N1bWVudFN0YXJ0OworICAgIH0KK30KKwogc3RhdGljIGlubGluZSBWZWN0b3I8U3RyaW5nPiB0
b1N0cmluZ1ZlY3Rvcihjb25zdCBjaGFyKiBjb25zdCogc3RydikKIHsKICAgICBpZiAoIXN0cnYp
CkBAIC0xNTksMyArMTcyLDg5IEBAIGNvbnN0IFVzZXJTdHlsZVNoZWV0JiB3ZWJraXRVc2VyU3R5
bGVTaGVldEdldFVzZXJTdHlsZVNoZWV0KFdlYktpdFVzZXJTdHlsZVNoZWV0CiB7CiAgICAgcmV0
dXJuICp1c2VyU3R5bGVTaGVldC0+dXNlclN0eWxlU2hlZXQ7CiB9CisKK3N0cnVjdCBfV2ViS2l0
VXNlclNjcmlwdCB7CisgICAgX1dlYktpdFVzZXJTY3JpcHQoY29uc3QgZ2NoYXIqIHNvdXJjZSwg
V2ViS2l0VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcywgV2ViS2l0VXNl
clNjcmlwdEluamVjdGlvblRpbWUgaW5qZWN0aW9uVGltZSwgY29uc3QgZ2NoYXIqIGNvbnN0KiB3
aGl0ZWxpc3QsIGNvbnN0IGdjaGFyKiBjb25zdCogYmxhY2tsaXN0KQorICAgICAgICA6IHVzZXJT
Y3JpcHQoc3RkOjptYWtlX3VuaXF1ZTxVc2VyU2NyaXB0PigKKyAgICAgICAgICAgIFN0cmluZzo6
ZnJvbVVURjgoc291cmNlKSwgVVJMIHsgfSwKKyAgICAgICAgICAgIHRvU3RyaW5nVmVjdG9yKHdo
aXRlbGlzdCksIHRvU3RyaW5nVmVjdG9yKGJsYWNrbGlzdCksCisgICAgICAgICAgICB0b1VzZXJT
Y3JpcHRJbmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpLAorICAgICAgICAgICAgdG9Vc2VyQ29u
dGVudEluamVjdGVkRnJhbWVzKGluamVjdGVkRnJhbWVzKSkpCisgICAgICAgICwgcmVmZXJlbmNl
Q291bnQoMSkKKyAgICB7CisgICAgfQorCisgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJTY3JpcHQ+
IHVzZXJTY3JpcHQ7CisgICAgaW50IHJlZmVyZW5jZUNvdW50OworfTsKKworR19ERUZJTkVfQk9Y
RURfVFlQRShXZWJLaXRVc2VyU2NyaXB0LCB3ZWJraXRfdXNlcl9zY3JpcHQsIHdlYmtpdF91c2Vy
X3NjcmlwdF9yZWYsIHdlYmtpdF91c2VyX3NjcmlwdF91bnJlZikKKworLyoqCisgKiB3ZWJraXRf
dXNlcl9zY3JpcHRfcmVmOgorICogQHVzZXJfc2NyaXB0OiBhICNXZWJLaXRVc2VyU2NyaXB0Cisg
KgorICogQXRvbWljYWxseSBpbmNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgQHVzZXJf
c2NyaXB0IGJ5IG9uZS4KKyAqIFRoaXMgZnVuY3Rpb24gaXMgTVQtc2FmZSBhbmQgbWF5IGJlIGNh
bGxlZCBmcm9tIGFueSB0aHJlYWQuCisgKgorICogUmV0dXJuczogVGhlIHBhc3NlZCAjV2ViS2l0
VXNlclNjcmlwdAorICoKKyAqIFNpbmNlOiAyLjYKKyAqLworV2ViS2l0VXNlclNjcmlwdCogd2Vi
a2l0X3VzZXJfc2NyaXB0X3JlZihXZWJLaXRVc2VyU2NyaXB0KiB1c2VyU2NyaXB0KQoreworICAg
IGdfYXRvbWljX2ludF9pbmMoJnVzZXJTY3JpcHQtPnJlZmVyZW5jZUNvdW50KTsKKyAgICByZXR1
cm4gdXNlclNjcmlwdDsKK30KKworLyoqCisgKiB3ZWJraXRfdXNlcl9zY3JpcHRfdW5yZWY6Cisg
KiBAdXNlcl9zY3JpcHQ6IGEgI1dlYktpdFVzZXJTY3JpcHQKKyAqCisgKiBBdG9taWNhbGx5IGRl
Y3JlbWVudHMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiBAdXNlcl9zY3JpcHQgYnkgb25lLgorICog
SWYgdGhlIHJlZmVyZW5jZSBjb3VudCBkcm9wcyB0byAwLCBhbGwgbWVtb3J5IGFsbG9jYXRlZCBi
eQorICogI1dlYktpdFVzZXJTY3JpcHQgaXMgcmVsZWFzZWQuIFRoaXMgZnVuY3Rpb24gaXMgTVQt
c2FmZSBhbmQgbWF5IGJlIGNhbGxlZAorICogZnJvbSBhbnkgdGhyZWFkLgorICoKKyAqIFNpbmNl
OiAyLjYKKyAqLwordm9pZCB3ZWJraXRfdXNlcl9zY3JpcHRfdW5yZWYoV2ViS2l0VXNlclNjcmlw
dCogdXNlclNjcmlwdCkKK3sKKyAgICBpZiAoZ19hdG9taWNfaW50X2RlY19hbmRfdGVzdCgmdXNl
clNjcmlwdC0+cmVmZXJlbmNlQ291bnQpKSB7CisgICAgICAgIHVzZXJTY3JpcHQtPn5XZWJLaXRV
c2VyU2NyaXB0KCk7CisgICAgICAgIGdfc2xpY2VfZnJlZShXZWJLaXRVc2VyU2NyaXB0LCB1c2Vy
U2NyaXB0KTsKKyAgICB9Cit9CisKKy8qKgorICogd2Via2l0X3VzZXJfc2NyaXB0X25ldzoKKyAq
IEBzb3VyY2U6IFNvdXJjZSBjb2RlIG9mIHRoZSB1c2VyIHNjcmlwdC4KKyAqIEBpbmplY3RlZF9m
cmFtZXM6IEEgI1dlYktpdFVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgdmFsdWUKKyAqIEBpbmpl
Y3Rpb25UaW1lOiBBICNXZWJLaXRVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSB2YWx1ZQorICogQHdo
aXRlbGlzdDogKGFycmF5IHplcm8tdGVybWluYXRlZD0xKSAoYWxsb3ctbm9uZSk6IEEgd2hpdGVs
aXN0IG9mIFVSSSBwYXR0ZXJucyBvciAlTlVMTAorICogQGJsYWNrbGlzdDogKGFycmF5IHplcm8t
dGVybWluYXRlZD0xKSAoYWxsb3ctbm9uZSk6IEEgYmxhY2tsaXN0IG9mIFVSSSBwYXR0ZXJucyBv
ciAlTlVMTAorICoKKyAqIENyZWF0ZXMgYSBuZXcgdXNlciBzY3JpcHQuIFNjcmlwdHMgY2FuIGJl
IGFwcGxpZWQgdG8gc29tZSBVUklzCisgKiBvbmx5IGJ5IHBhc3Npbmcgbm9uLW51bGwgdmFsdWVz
IGZvciBAd2hpdGVsaXN0IG9yIEBibGFja2xpc3QuIFBhc3NpbmcgYQorICogJU5VTEwgd2hpdGVs
aXN0IGltcGxpZXMgdGhhdCBhbGwgVVJJcyBhcmUgb24gdGhlIHdoaXRlbGlzdC4gVGhlIHNjcmlw
dAorICogaXMgYXBwbGllZCBpZiBhbiBVUkkgbWF0Y2hlcyB0aGUgd2hpdGVsaXN0IGFuZCBub3Qg
dGhlIGJsYWNrbGlzdC4KKyAqIFVSSSBwYXR0ZXJucyBtdXN0IGJlIG9mIHRoZSBmb3JtIGBbcHJv
dG9jb2xdOi8vW2hvc3RdL1twYXRoXWAsIHdoZXJlIHRoZQorICogKmhvc3QqIGFuZCAqcGF0aCog
Y29tcG9uZW50cyBjYW4gY29udGFpbiB0aGUgd2lsZGNhcmQgY2hhcmFjdGVyIChgKmApIHRvCisg
KiByZXByZXNlbnQgemVybyBvciBtb3JlIG90aGVyIGNoYXJhY3RlcnMuCisgKgorICogUmV0dXJu
czogQSBuZXcgI1dlYktpdFNjcmlwdAorICoKKyAqIFNpbmNlOiAyLjYKKyAqLworV2ViS2l0VXNl
clNjcmlwdCogd2Via2l0X3VzZXJfc2NyaXB0X25ldyhjb25zdCBnY2hhciogc291cmNlLCBXZWJL
aXRVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGluamVjdGVkRnJhbWVzLCBXZWJLaXRVc2VyU2Ny
aXB0SW5qZWN0aW9uVGltZSBpbmplY3Rpb25UaW1lLCBjb25zdCBnY2hhciogY29uc3QqIHdoaXRl
bGlzdCwgY29uc3QgZ2NoYXIqIGNvbnN0KiBibGFja2xpc3QpCit7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoc291cmNlLCBudWxscHRyKTsKKyAgICBXZWJLaXRVc2VyU2NyaXB0KiB1c2VyU2Ny
aXB0ID0gZ19zbGljZV9uZXcoV2ViS2l0VXNlclNjcmlwdCk7CisgICAgbmV3ICh1c2VyU2NyaXB0
KSBXZWJLaXRVc2VyU2NyaXB0KHNvdXJjZSwgaW5qZWN0ZWRGcmFtZXMsIGluamVjdGlvblRpbWUs
IHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICByZXR1cm4gdXNlclNjcmlwdDsKK30KKworY29u
c3QgVXNlclNjcmlwdCYgd2Via2l0VXNlclNjcmlwdEdldFVzZXJTY3JpcHQoV2ViS2l0VXNlclNj
cmlwdCogdXNlclNjcmlwdCkKK3sKKyAgICByZXR1cm4gKnVzZXJTY3JpcHQtPnVzZXJTY3JpcHQ7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRV
c2VyQ29udGVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNl
ckNvbnRlbnQuaAppbmRleCA4MjI3NmU2MTFmY2ViMzM0OWI4NTI5MDllOGUzYzBmZTBjOTgwNmVk
Li5jM2YxZWQ1NjlmODNkNmFkYjUyZjNkZmUxYmU0MjZmMjljMjg3YmU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50LmgKQEAg
LTg0LDYgKzg0LDQyIEBAIHdlYmtpdF91c2VyX3N0eWxlX3NoZWV0X25ldyAgICAgIChjb25zdCBn
Y2hhciAgICAgICAgICAgICAgICAgICAgKnNvdXJjZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciogY29uc3QgICAgICAgICAgICAgKndoaXRlbGlzdCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciogY29uc3QgICAgICAg
ICAgICAgKmJsYWNrbGlzdCk7CiAKKy8qKgorICogV2ViS2l0VXNlclNjcmlwdEluamVjdGlvblRp
bWU6CisgKiBAV0VCS0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9TVEFSVDogSW5z
ZXJ0IHRoZSBjb2RlIG9mIHRoZSB1c2VyCisgKiAgIHNjcmlwdCBhdCB0aGUgYmVnaW5uaW5nIG9m
IGxvYWRlZCBkb2N1bWVudHMuIFRoaXMgaXMgdGhlIGRlZmF1bHQuCisgKiBAV0VCS0lUX1VTRVJf
U0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9FTkQ6IEluc2VydCB0aGUgY29kZSBvZiB0aGUgdXNl
cgorICogICBzY3JpcHQgYXQgdGhlIGVuZCBvZiB0aGUgbG9hZGVkIGRvY3VtZW50cy4KKyAqCisg
KiBTcGVjaWZpZXMgYXQgd2hpY2ggcGxhY2Ugb2YgZG9jdW1lbnRzIGFuIHVzZXIgc2NyaXB0IHdp
bGwgYmUgaW5zZXJ0ZWQuCisgKgorICogU2luY2U6IDIuNgorICovCit0eXBlZGVmIGVudW0gewor
ICAgIFdFQktJVF9VU0VSX1NDUklQVF9JTkpFQ1RfQVRfRE9DVU1FTlRfU1RBUlQsCisgICAgV0VC
S0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9FTkQsCit9IFdlYktpdFVzZXJTY3Jp
cHRJbmplY3Rpb25UaW1lOworCisjZGVmaW5lIFdFQktJVF9UWVBFX1VTRVJfU0NSSVBUICh3ZWJr
aXRfdXNlcl9zY3JpcHRfZ2V0X3R5cGUoKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVzZXJT
Y3JpcHQgV2ViS2l0VXNlclNjcmlwdDsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X3VzZXJf
c2NyaXB0X2dldF90eXBlICAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIFdlYktpdFVzZXJTY3Jp
cHQgKgord2Via2l0X3VzZXJfc2NyaXB0X3JlZiAgICAgICAgICAgKFdlYktpdFVzZXJTY3JpcHQg
ICAgICAgICAgICAgICAqdXNlcl9zY3JpcHQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91
c2VyX3NjcmlwdF91bnJlZiAgICAgICAgIChXZWJLaXRVc2VyU2NyaXB0ICAgICAgICAgICAgICAg
KnVzZXJfc2NyaXB0KTsKKworV0VCS0lUX0FQSSBXZWJLaXRVc2VyU2NyaXB0ICoKK3dlYmtpdF91
c2VyX3NjcmlwdF9uZXcgICAgICAgICAgIChjb25zdCBnY2hhciAgICAgICAgICAgICAgICAgICAg
KnNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRVc2VyQ29u
dGVudEluamVjdGVkRnJhbWVzIGluamVjdGVkX2ZyYW1lcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJLaXRVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSAgIGluamVjdGlvbl90
aW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiBjb25z
dCAgICAgICAgICAgICAqd2hpdGVsaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGdjaGFyKiBjb25zdCAgICAgICAgICAgICAqYmxhY2tsaXN0KTsKKwogR19FTkRf
REVDTFMKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcAppbmRleCA5ZTFiNGNjNTdk
YTY4NTJkMjgxZTdlM2MwN2ZjZGE1N2U5ODY4NmU2Li41ZWQ3OTk5N2E5MjM4MjU2NzNhYjdjYTVm
MzQzNzcwODhkOTIwMDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50TWFuYWdlci5jcHAKQEAgLTEwOSw2ICsx
MDksMzggQEAgdm9pZCB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfcmVtb3ZlX2FsbF9zdHls
ZV9zaGVldHMoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2UKICAgICBtYW5hZ2VyLT5wcml2LT51c2Vy
Q29udGVudENvbnRyb2xsZXItPnJlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cygpOwogfQogCisvKioK
KyAqIHdlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9hZGRfc2NyaXB0OgorICogQG1hbmFnZXI6
IEEgI1dlYktpdFVzZXJDb250ZW50TWFuYWdlcgorICogQHNjcmlwdDogQSAjV2ViS2l0VXNlclNj
cmlwdAorICoKKyAqIEFkZHMgYSAjV2ViS2l0VXNlclNjcmlwdCB0byB0aGUgZ2l2ZW4gI1dlYktp
dFVzZXJDb250ZW50TWFuYWdlci4KKyAqIFRoZSBzYW1lICNXZWJLaXRVc2VyU2NyaXB0IGNhbiBi
ZSByZXVzZWQgd2l0aCBtdWx0aXBsZQorICogI1dlYktpdFVzZXJDb250ZW50TWFuYWdlciBpbnN0
YW5jZXMuCisgKgorICogU2luY2U6IDIuNgorICovCit2b2lkIHdlYmtpdF91c2VyX2NvbnRlbnRf
bWFuYWdlcl9hZGRfc2NyaXB0KFdlYktpdFVzZXJDb250ZW50TWFuYWdlciogbWFuYWdlciwgV2Vi
S2l0VXNlclNjcmlwdCogc2NyaXB0KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lT
X1VTRVJfQ09OVEVOVF9NQU5BR0VSKG1hbmFnZXIpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHNj
cmlwdCk7CisgICAgbWFuYWdlci0+cHJpdi0+dXNlckNvbnRlbnRDb250cm9sbGVyLT5hZGRVc2Vy
U2NyaXB0KHdlYmtpdFVzZXJTY3JpcHRHZXRVc2VyU2NyaXB0KHNjcmlwdCkpOworfQorCisvKioK
KyAqIHdlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9yZW1vdmVfYWxsX3NjcmlwdHM6CisgKiBA
bWFuYWdlcjogQSAjV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyCisgKgorICogUmVtb3ZlcyBhbGwg
dXNlciBzY3JpcHRzIGZyb20gdGhlIGdpdmVuICNXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIKKyAq
CisgKiBTaW5jZTogMi42CisgKi8KK3ZvaWQgd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX3Jl
bW92ZV9hbGxfc2NyaXB0cyhXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIqIG1hbmFnZXIpCit7Cisg
ICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfVVNFUl9DT05URU5UX01BTkFHRVIobWFuYWdl
cikpOworICAgIG1hbmFnZXItPnByaXYtPnVzZXJDb250ZW50Q29udHJvbGxlci0+cmVtb3ZlQWxs
VXNlclNjcmlwdHMoKTsKK30KKwogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkqIHdlYmtp
dFVzZXJDb250ZW50TWFuYWdlckdldFVzZXJDb250ZW50Q29udHJvbGxlclByb3h5KFdlYktpdFVz
ZXJDb250ZW50TWFuYWdlciogbWFuYWdlcikKIHsKICAgICByZXR1cm4gbWFuYWdlci0+cHJpdi0+
dXNlckNvbnRlbnRDb250cm9sbGVyLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuaAppbmRleCBi
OTE5NTAwZmFlZjBjNTg1ZjBjYTQ5NjM2NDJlNmViODMzYTE3MmVkLi5iNjA1ZjdmYTVlMTczOTUx
ZWI2OTg5MGY3MzNhOWM4NDU2MjExYTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuaApAQCAtNzEs
NiArNzEsMTMgQEAgd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX2FkZF9zdHlsZV9zaGVldCAg
ICAgICAgIChXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIgKm0KIFdFQktJVF9BUEkgdm9pZAogd2Vi
a2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX3JlbW92ZV9hbGxfc3R5bGVfc2hlZXRzIChXZWJLaXRV
c2VyQ29udGVudE1hbmFnZXIgKm1hbmFnZXIpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91
c2VyX2NvbnRlbnRfbWFuYWdlcl9hZGRfc2NyaXB0ICAgICAgICAgICAgICAoV2ViS2l0VXNlckNv
bnRlbnRNYW5hZ2VyICptYW5hZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXZWJLaXRVc2VyU2NyaXB0ICAgICAgICAgKnNjcmlwdCk7CisK
K1dFQktJVF9BUEkgdm9pZAord2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX3JlbW92ZV9hbGxf
c2NyaXB0cyAgICAgIChXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIgKm1hbmFnZXIpOworCiBHX0VO
RF9ERUNMUwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFVzZXJDb250ZW50UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRQcml2YXRlLmgKaW5kZXggNGIxYTdhZTVhMTBi
NDBhZmZjNjNkNTU3Yjg1Y2NmMTkzZWFjYzM0Yi4uY2QxODY0ZWNjMmNkY2M0YmMzYTcwZGRiNjJm
ZGQxOGU5MWY3MTdiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0VXNlckNvbnRlbnRQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRQcml2YXRlLmgKQEAgLTIxLDggKzIxLDEwIEBA
CiAjZGVmaW5lIFdlYktpdFVzZXJDb250ZW50UHJpdmF0ZV9oCiAKICNpbmNsdWRlICJXZWJLaXRV
c2VyQ29udGVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvVXNlclNjcmlwdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVXNlclN0eWxlU2hlZXQuaD4KIAorY29uc3QgV2ViQ29yZTo6VXNlclNjcmlwdCYg
d2Via2l0VXNlclNjcmlwdEdldFVzZXJTY3JpcHQoV2ViS2l0VXNlclNjcmlwdCopOwogY29uc3Qg
V2ViQ29yZTo6VXNlclN0eWxlU2hlZXQmIHdlYmtpdFVzZXJTdHlsZVNoZWV0R2V0VXNlclN0eWxl
U2hlZXQoV2ViS2l0VXNlclN0eWxlU2hlZXQqKTsKIAogI2VuZGlmIC8vIFdlYktpdFVzZXJDb250
ZW50UHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAppbmRleCAwNjNjYjY3NWJiZmE5
MmE4ZDU3MGMzYjAxZjY4NWZiMDJjZTU2YmVhLi4wMzQ2MmZlNjY1ZDI0MzQxYzcwNDYyOWI1MDhl
ZDE1NTNlZWJmYTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKQEAgLTc2LDE3ICs3Niwy
NCBAQCB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3R5cGUKIDxGSUxFPldlYktpdFVzZXJDb250ZW50
PC9GSUxFPgogPFRJVExFPldlYktpdFVzZXJDb250ZW50PC9USVRMRT4KIFdlYktpdFVzZXJTdHls
ZVNoZWV0CitXZWJLaXRVc2VyU2NyaXB0CiBXZWJLaXRVc2VyQ29udGVudEluamVjdGVkRnJhbWVz
CiBXZWJLaXRVc2VyU3R5bGVMZXZlbAorV2ViS2l0VXNlclNjcmlwdEluamVjdGlvblRpbWUKIHdl
YmtpdF91c2VyX3N0eWxlX3NoZWV0X3JlZgogd2Via2l0X3VzZXJfc3R5bGVfc2hlZXRfdW5yZWYK
IHdlYmtpdF91c2VyX3N0eWxlX3NoZWV0X25ldword2Via2l0X3VzZXJfc2NyaXB0X3JlZgord2Vi
a2l0X3VzZXJfc2NyaXB0X3VucmVmCit3ZWJraXRfdXNlcl9zY3JpcHRfbmV3CiAKIDxTVUJTRUNU
SU9OIFN0YW5kYXJkPgogV0VCS0lUX1RZUEVfVVNFUl9TVFlMRV9TSEVFVAorV0VCS0lUX1RZUEVf
VVNFUl9TQ1JJUFQKIAogPFNVQlNFQ1RJT04gUHJpdmF0ZT4KIHdlYmtpdF91c2VyX3N0eWxlX3No
ZWV0X2dldF90eXBlCit3ZWJraXRfdXNlcl9zY3JpcHRfZ2V0X3R5cGUKIDwvU0VDVElPTj4KIAog
PFNFQ1RJT04+CkBAIC05Niw2ICsxMDMsOCBAQCBXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIKIHdl
YmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9uZXcKIHdlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdl
cl9hZGRfc3R5bGVfc2hlZXQKIHdlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9yZW1vdmVfYWxs
X3N0eWxlX3NoZWV0cword2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX2FkZF9zY3JpcHQKK3dl
YmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9yZW1vdmVfYWxsX3NjcmlwdHMKIAogPFNVQlNFQ1RJ
T04gU3RhbmRhcmQ+CiBXRUJLSVRfSVNfVVNFUl9DT05URU5UX01BTkFHRVIKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhZTBlMDI4ODUwNDY4NWU2
ZjYxY2FkZGU0YmNjYzliMTdiMjIyZWY5Li4xNGFiNGI1YmI1Y2Y5ZTIyOTQwNzBmNWVhN2VhMmE3
YmM5MDQ4YzI5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDUgKzEsMjcgQEAKIDIwMTQtMDctMDggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8g
IDxhcGVyZXpAaWdhbGlhLmNvbT4KIAorICAgICAgICBbR1RLXSBBZGQgc3VwcG9ydCBmb3IgdXNl
ciBzY3JpcHRzIHRvIFdlYktpdFVzZXJDb250ZW50TWFuYWdlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0NzM4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHVzZXIgc2NyaXB0
cywgdG8gY29tcGxlbWVudCB0aGUgdXNlciBzdHlsZSBzaGVldAorICAgICAgICBzdXBwb3J0IGFs
cmVhZHkgcHJlc2VudCBpbiBXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuIE1vc3Qgb2YgdGhlCisg
ICAgICAgIG1vdmluZyBwYXJ0cyBhcmUgYWxyZWFkeSBwcmVzZW50LCBzbyB0aGlzIGp1c3QgYWRk
cyBhIGJveGVkIHR5cGUKKyAgICAgICAgZm9yIHVzZXIgc2NyaXB0cyAoV2ViS2l0VXNlclNjcmlw
dCkgYW5kIHRoZSBjb3JyZXNwb25kaW5nIG1ldGhvZHMKKyAgICAgICAgdG8gYWRkIGFuZCByZW1v
dmUgc2NyaXB0cyBmcm9tIHRoZSBXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFVzZXJDb250ZW50TWFu
YWdlci5jcHA6CisgICAgICAgIEFkZCB0ZXN0IGNhc2UgZm9yIGluamVjdGVkIHVzZXIgc2NyaXB0
cy4KKyAgICAgICAgKGlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgpOgorICAgICAgICAocmVt
b3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0cyk6CisgICAgICAgICh0ZXN0VXNlckNv
bnRlbnRNYW5hZ2VySW5qZWN0ZWRTdHlsZVNoZWV0KToKKyAgICAgICAgKHRlc3RVc2VyQ29udGVu
dE1hbmFnZXJJbmplY3RlZFNjcmlwdCk6CisgICAgICAgIChiZWZvcmVBbGwpOgorICAgICAgICAo
cmVtb3ZlT2xkSW5qZWN0ZWRTdHlsZVNoZWV0c0FuZFJlc2V0TGlzdHMpOiBEZWxldGVkLgorCisy
MDE0LTA3LTA4ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisK
ICAgICAgICAgW0dUS10gTW92ZSB1c2VyIHN0eWxlIHNoZWV0IEFQSSBvdXQgb2YgV2ViS2l0V2Vi
Vmlld0dyb3VwCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzQ1NTEKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
R3RrL1Rlc3RXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCmluZGV4
IDEwNGUzNjdiY2UyNDE5YWZkODg3ZjU2OWY1ZDQxYjYwZmY4NGQ1ZTkuLjQzYzM3ODA1YjkwZjBj
NjBlMmE5OWZmNDNkNjgzYWRkZjBiYTA0OGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFVzZXJDb250
ZW50TWFuYWdlci5jcHAKQEAgLTUwLDYgKzUwLDkgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGtTdHls
ZVNoZWV0SFRNTCA9ICI8aHRtbD48ZGl2IGlkPVwic3R5bGVkRWxlbWVudFwiPlN3ZWV0IHN0eWwK
IHN0YXRpYyBjb25zdCBjaGFyKiBrSW5qZWN0ZWRTdHlsZVNoZWV0ID0gIiNzdHlsZWRFbGVtZW50
IHsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0iOwogc3RhdGljIGNvbnN0IGNoYXIqIGtTdHlsZVNoZWV0
VGVzdFNjcmlwdCA9ICJnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdz
dHlsZWRFbGVtZW50JykpWydmb250LXdlaWdodCddIjsKIHN0YXRpYyBjb25zdCBjaGFyKiBrU3R5
bGVTaGVldFRlc3RTY3JpcHRSZXN1bHQgPSAiYm9sZCI7CitzdGF0aWMgY29uc3QgY2hhcioga0lu
amVjdGVkU2NyaXB0ID0gImRvY3VtZW50LndyaXRlKCc8ZGl2IGlkPVwiaXRlbVwiPkdlbmVyYXRl
ZCBieSBhIHNjcmlwdDwvZGl2PicpIjsKK3N0YXRpYyBjb25zdCBjaGFyKiBrU2NyaXB0VGVzdFNj
cmlwdCA9ICJnZXRFbGVtZW50QnlJZCgnaXRlbScpLmlubmVyVGV4dCI7CitzdGF0aWMgY29uc3Qg
Y2hhcioga1NjcmlwdFRlc3RTY3JpcHRSZXN1bHQgPSAiR2VuZXJhdGVkIGJ5IGEgc2NyaXB0IjsK
IAogc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdOZXdXaXRoVXNlckNvbnRlbnRNYW5hZ2VyKFRlc3Qq
IHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7CkBAIC03Niw2ICs3OSwyMCBAQCBzdGF0aWMgYm9vbCBp
c1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aChXZWJWaWV3VGVzdCogdGVzdCwgY29uc3Qg
Y2hhciogcGF0aAogICAgIHJldHVybiAhZ19zdHJjbXAwKHJlc3VsdFN0cmluZy5nZXQoKSwga1N0
eWxlU2hlZXRUZXN0U2NyaXB0UmVzdWx0KTsKIH0KIAorc3RhdGljIGJvb2wgaXNTY3JpcHRJbmpl
Y3RlZEZvclVSTEF0UGF0aChXZWJWaWV3VGVzdCogdGVzdCwgY29uc3QgY2hhciogcGF0aCkKK3sK
KyAgICB0ZXN0LT5sb2FkVVJJKGtTZXJ2ZXItPmdldFVSSUZvclBhdGgocGF0aCkuZGF0YSgpKTsK
KyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKworICAgIEdVbmlxdWVPdXRQdHI8
R0Vycm9yPiBlcnJvcjsKKyAgICBXZWJLaXRKYXZhc2NyaXB0UmVzdWx0KiBqYXZhc2NyaXB0UmVz
dWx0ID0gdGVzdC0+cnVuSmF2YVNjcmlwdEFuZFdhaXRVbnRpbEZpbmlzaGVkKGtTY3JpcHRUZXN0
U2NyaXB0LCAmZXJyb3Iub3V0UHRyKCkpOworICAgIGdfYXNzZXJ0KGphdmFzY3JpcHRSZXN1bHQp
OworICAgIGdfYXNzZXJ0KCFlcnJvci5nZXQoKSk7CisKKyAgICBHVW5pcXVlUHRyPGNoYXI+IHJl
c3VsdFN0cmluZyhXZWJWaWV3VGVzdDo6amF2YXNjcmlwdFJlc3VsdFRvQ1N0cmluZyhqYXZhc2Ny
aXB0UmVzdWx0KSk7CisgICAgcmV0dXJuICFnX3N0cmNtcDAocmVzdWx0U3RyaW5nLmdldCgpLCBr
U2NyaXB0VGVzdFNjcmlwdFJlc3VsdCk7Cit9CisKIHN0YXRpYyB2b2lkIGZpbGxVUkxMaXN0RnJv
bVBhdGhzKGNoYXIqKiBsaXN0LCBjb25zdCBjaGFyKiBwYXRoLCAuLi4pCiB7CiAgICAgdmFfbGlz
dCBhcmd1bWVudExpc3Q7CkBAIC05MCw5ICsxMDcsMTAgQEAgc3RhdGljIHZvaWQgZmlsbFVSTExp
c3RGcm9tUGF0aHMoY2hhcioqIGxpc3QsIGNvbnN0IGNoYXIqIHBhdGgsIC4uLikKICAgICB9CiB9
CiAKLXN0YXRpYyB2b2lkIHJlbW92ZU9sZEluamVjdGVkU3R5bGVTaGVldHNBbmRSZXNldExpc3Rz
KFdlYktpdFVzZXJDb250ZW50TWFuYWdlciogdXNlckNvbnRlbnRNYW5hZ2VyLCBjaGFyKiogd2hp
dGVsaXN0LCBjaGFyKiogYmxhY2tsaXN0KQorc3RhdGljIHZvaWQgcmVtb3ZlT2xkSW5qZWN0ZWRD
b250ZW50QW5kUmVzZXRMaXN0cyhXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIqIHVzZXJDb250ZW50
TWFuYWdlciwgY2hhcioqIHdoaXRlbGlzdCwgY2hhcioqIGJsYWNrbGlzdCkKIHsKICAgICB3ZWJr
aXRfdXNlcl9jb250ZW50X21hbmFnZXJfcmVtb3ZlX2FsbF9zdHlsZV9zaGVldHModXNlckNvbnRl
bnRNYW5hZ2VyKTsKKyAgICB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfcmVtb3ZlX2FsbF9z
Y3JpcHRzKHVzZXJDb250ZW50TWFuYWdlcik7CiAKICAgICB3aGlsZSAoKndoaXRlbGlzdCkgewog
ICAgICAgICBnX2ZyZWUoKndoaXRlbGlzdCk7CkBAIC0xMTIsNyArMTMwLDUwIEBAIHN0YXRpYyB2
b2lkIHRlc3RVc2VyQ29udGVudE1hbmFnZXJJbmplY3RlZFN0eWxlU2hlZXQoVXNlckNvbnRlbnRN
YW5hZ2VyVGVzdCogdGVzCiAgICAgY2hhciogd2hpdGVsaXN0WzNdID0geyAwLCAwLCAwIH07CiAg
ICAgY2hhciogYmxhY2tsaXN0WzNdID0geyAwLCAwLCAwIH07CiAKLSAgICByZW1vdmVPbGRJbmpl
Y3RlZFN0eWxlU2hlZXRzQW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5n
ZXQoKSwgd2hpdGVsaXN0LCBibGFja2xpc3QpOworICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVu
dEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlz
dCwgYmxhY2tsaXN0KTsKKworICAgIC8vIFdpdGhvdXQgYSB3aGl0ZWxpc3Qgb3IgYSBibGFja2xp
c3QgYWxsIFVSTHMgc2hvdWxkIGhhdmUgdGhlIGluamVjdGVkIHN0eWxlIHNoZWV0LgorICAgIHN0
YXRpYyBjb25zdCBjaGFyKiByYW5kb21QYXRoID0gInNvbWVyYW5kb21wYXRoIjsKKyAgICBnX2Fz
c2VydCghaXNTY3JpcHRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCByYW5kb21QYXRoKSk7Cisg
ICAgV2ViS2l0VXNlclNjcmlwdCogc2NyaXB0ID0gd2Via2l0X3VzZXJfc2NyaXB0X25ldyhrSW5q
ZWN0ZWRTY3JpcHQsIFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNUX0FMTF9GUkFNRVMsIFdFQktJ
VF9VU0VSX1NDUklQVF9JTkpFQ1RfQVRfRE9DVU1FTlRfRU5ELCBudWxscHRyLCBudWxscHRyKTsK
KyAgICB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfYWRkX3NjcmlwdCh0ZXN0LT5tX3VzZXJD
b250ZW50TWFuYWdlci5nZXQoKSwgc2NyaXB0KTsKKyAgICB3ZWJraXRfdXNlcl9zY3JpcHRfdW5y
ZWYoc2NyaXB0KTsKKyAgICBnX2Fzc2VydChpc1NjcmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRl
c3QsIHJhbmRvbVBhdGgpKTsKKworICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0
TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxhY2ts
aXN0KTsKKworICAgIGZpbGxVUkxMaXN0RnJvbVBhdGhzKGJsYWNrbGlzdCwgcmFuZG9tUGF0aCwg
MCk7CisgICAgc2NyaXB0ID0gd2Via2l0X3VzZXJfc2NyaXB0X25ldyhrSW5qZWN0ZWRTY3JpcHQs
IFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNUX0FMTF9GUkFNRVMsIFdFQktJVF9VU0VSX1NDUklQ
VF9JTkpFQ1RfQVRfRE9DVU1FTlRfRU5ELCBudWxscHRyLCBibGFja2xpc3QpOworICAgIHdlYmtp
dF91c2VyX2NvbnRlbnRfbWFuYWdlcl9hZGRfc2NyaXB0KHRlc3QtPm1fdXNlckNvbnRlbnRNYW5h
Z2VyLmdldCgpLCBzY3JpcHQpOworICAgIHdlYmtpdF91c2VyX3NjcmlwdF91bnJlZihzY3JpcHQp
OworICAgIGdfYXNzZXJ0KCFpc1NjcmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIHJhbmRv
bVBhdGgpKTsKKyAgICBnX2Fzc2VydChpc1NjcmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3Qs
ICJzb21lb3RoZXJyYW5kb21wYXRoIikpOworCisgICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50
QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgd2hpdGVsaXN0
LCBibGFja2xpc3QpOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGluVGhlV2hpdGVMaXN0ID0g
ImludGhld2hpdGVsaXN0IjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogbm90SW5XaGl0ZWxpc3Qg
PSAibm90aW50aGV3aGl0ZWxpc3QiOworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpblRoZVdoaXRl
TGlzdEFuZEJsYWNrTGlzdCA9ICJpbnRoZXdoaXRlbGlzdGFuZGJsYWNrbGlzdCI7CisKKyAgICBm
aWxsVVJMTGlzdEZyb21QYXRocyh3aGl0ZWxpc3QsIGluVGhlV2hpdGVMaXN0LCBpblRoZVdoaXRl
TGlzdEFuZEJsYWNrTGlzdCwgMCk7CisgICAgZmlsbFVSTExpc3RGcm9tUGF0aHMoYmxhY2tsaXN0
LCBpblRoZVdoaXRlTGlzdEFuZEJsYWNrTGlzdCwgMCk7CisgICAgc2NyaXB0ID0gd2Via2l0X3Vz
ZXJfc2NyaXB0X25ldyhrSW5qZWN0ZWRTY3JpcHQsIFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNU
X0FMTF9GUkFNRVMsIFdFQktJVF9VU0VSX1NDUklQVF9JTkpFQ1RfQVRfRE9DVU1FTlRfRU5ELCB3
aGl0ZWxpc3QsIGJsYWNrbGlzdCk7CisgICAgd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX2Fk
ZF9zY3JpcHQodGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHNjcmlwdCk7CisgICAg
d2Via2l0X3VzZXJfc2NyaXB0X3VucmVmKHNjcmlwdCk7CisgICAgZ19hc3NlcnQoaXNTY3JpcHRJ
bmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBpblRoZVdoaXRlTGlzdCkpOworICAgIGdfYXNzZXJ0
KCFpc1NjcmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIGluVGhlV2hpdGVMaXN0QW5kQmxh
Y2tMaXN0KSk7CisgICAgZ19hc3NlcnQoIWlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVz
dCwgbm90SW5XaGl0ZWxpc3QpKTsKKworICAgIC8vIEl0J3MgaW1wb3J0YW50IHRvIGNsZWFuIHVw
IHRoZSBlbnZpcm9ubWVudCBiZWZvcmUgb3RoZXIgdGVzdHMuCisgICAgcmVtb3ZlT2xkSW5qZWN0
ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwg
d2hpdGVsaXN0LCBibGFja2xpc3QpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0VXNlckNvbnRlbnRN
YW5hZ2VySW5qZWN0ZWRTY3JpcHQoVXNlckNvbnRlbnRNYW5hZ2VyVGVzdCogdGVzdCwgZ2NvbnN0
cG9pbnRlcikKK3sKKyAgICBjaGFyKiB3aGl0ZWxpc3RbM10gPSB7IDAsIDAsIDAgfTsKKyAgICBj
aGFyKiBibGFja2xpc3RbM10gPSB7IDAsIDAsIDAgfTsKKworICAgIHJlbW92ZU9sZEluamVjdGVk
Q29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdo
aXRlbGlzdCwgYmxhY2tsaXN0KTsKIAogICAgIC8vIFdpdGhvdXQgYSB3aGl0ZWxpc3Qgb3IgYSBi
bGFja2xpc3QgYWxsIFVSTHMgc2hvdWxkIGhhdmUgdGhlIGluamVjdGVkIHN0eWxlIHNoZWV0Lgog
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiByYW5kb21QYXRoID0gInNvbWVyYW5kb21wYXRoIjsKQEAg
LTEyMiw3ICsxODMsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0VXNlckNvbnRlbnRNYW5hZ2VySW5qZWN0
ZWRTdHlsZVNoZWV0KFVzZXJDb250ZW50TWFuYWdlclRlc3QqIHRlcwogICAgIHdlYmtpdF91c2Vy
X3N0eWxlX3NoZWV0X3VucmVmKHN0eWxlU2hlZXQpOwogICAgIGdfYXNzZXJ0KGlzU3R5bGVTaGVl
dEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIHJhbmRvbVBhdGgpKTsKIAotICAgIHJlbW92ZU9s
ZEluamVjdGVkU3R5bGVTaGVldHNBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5h
Z2VyLmdldCgpLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCk7CisgICAgcmVtb3ZlT2xkSW5qZWN0ZWRD
b250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgd2hp
dGVsaXN0LCBibGFja2xpc3QpOwogCiAgICAgZmlsbFVSTExpc3RGcm9tUGF0aHMoYmxhY2tsaXN0
LCByYW5kb21QYXRoLCAwKTsKICAgICBzdHlsZVNoZWV0ID0gd2Via2l0X3VzZXJfc3R5bGVfc2hl
ZXRfbmV3KGtJbmplY3RlZFN0eWxlU2hlZXQsIFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNUX0FM
TF9GUkFNRVMsIFdFQktJVF9VU0VSX1NUWUxFX0xFVkVMX1VTRVIsIG51bGxwdHIsIGJsYWNrbGlz
dCk7CkBAIC0xMzEsNyArMTkyLDcgQEAgc3RhdGljIHZvaWQgdGVzdFVzZXJDb250ZW50TWFuYWdl
ckluamVjdGVkU3R5bGVTaGVldChVc2VyQ29udGVudE1hbmFnZXJUZXN0KiB0ZXMKICAgICBnX2Fz
c2VydCghaXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgcmFuZG9tUGF0aCkp
OwogICAgIGdfYXNzZXJ0KGlzU3R5bGVTaGVldEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsICJz
b21lb3RoZXJyYW5kb21wYXRoIikpOwogCi0gICAgcmVtb3ZlT2xkSW5qZWN0ZWRTdHlsZVNoZWV0
c0FuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlz
dCwgYmxhY2tsaXN0KTsKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3Rz
KHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCk7
CiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogaW5UaGVXaGl0ZUxpc3QgPSAiaW50aGV3aGl0ZWxp
c3QiOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBub3RJbldoaXRlbGlzdCA9ICJub3RpbnRoZXdo
aXRlbGlzdCI7CkBAIC0xNDcsNyArMjA4LDcgQEAgc3RhdGljIHZvaWQgdGVzdFVzZXJDb250ZW50
TWFuYWdlckluamVjdGVkU3R5bGVTaGVldChVc2VyQ29udGVudE1hbmFnZXJUZXN0KiB0ZXMKICAg
ICBnX2Fzc2VydCghaXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgbm90SW5X
aGl0ZWxpc3QpKTsKIAogICAgIC8vIEl0J3MgaW1wb3J0YW50IHRvIGNsZWFuIHVwIHRoZSBlbnZp
cm9ubWVudCBiZWZvcmUgb3RoZXIgdGVzdHMuCi0gICAgcmVtb3ZlT2xkSW5qZWN0ZWRTdHlsZVNo
ZWV0c0FuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRl
bGlzdCwgYmxhY2tsaXN0KTsKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExp
c3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxpc3QsIGJsYWNrbGlz
dCk7CiB9CiAKIHN0YXRpYyB2b2lkIHNlcnZlckNhbGxiYWNrKFNvdXBTZXJ2ZXIqIHNlcnZlciwg
U291cE1lc3NhZ2UqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3Vw
Q2xpZW50Q29udGV4dCosIGdwb2ludGVyKQpAQCAtMTY0LDYgKzIyNSw3IEBAIHZvaWQgYmVmb3Jl
QWxsKCkKIAogICAgIFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJuZXctd2l0aC11c2VyLWNv
bnRlbnQtbWFuYWdlciIsIHRlc3RXZWJWaWV3TmV3V2l0aFVzZXJDb250ZW50TWFuYWdlcik7CiAg
ICAgVXNlckNvbnRlbnRNYW5hZ2VyVGVzdDo6YWRkKCJXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIi
LCAiaW5qZWN0ZWQtc3R5bGUtc2hlZXQiLCB0ZXN0VXNlckNvbnRlbnRNYW5hZ2VySW5qZWN0ZWRT
dHlsZVNoZWV0KTsKKyAgICBVc2VyQ29udGVudE1hbmFnZXJUZXN0OjphZGQoIldlYktpdFVzZXJD
b250ZW50TWFuYWdlciIsICJpbmplY3RlZC1zY3JpcHQiLCB0ZXN0VXNlckNvbnRlbnRNYW5hZ2Vy
SW5qZWN0ZWRTY3JpcHQpOwogfQogCiB2b2lkIGFmdGVyQWxsKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234648</attachid>
            <date>2014-07-09 11:44:14 -0700</date>
            <delta_ts>2014-08-06 06:45:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134738-20140709214627.patch</filename>
            <type>text/plain</type>
            <size>22499</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwOTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzIyOGJhMWQ5MjBhMmE0
ODVmOTQ1ZWJjZmRjM2Q5YTgyMGE5ZWEzYi4uOWQwN2JjNDFjZDFlNWJmZTZmZDI4MGFhZmQ4OTI0
NWVkMTY2MTkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE0LTA3LTA4ICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
QWRkIHN1cHBvcnQgZm9yIHVzZXIgc2NyaXB0cyB0byBXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDczOAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciB1c2VyIHNjcmlwdHMsIHRvIGNvbXBsZW1lbnQgdGhlIHVzZXIgc3R5bGUgc2hlZXQK
KyAgICAgICAgc3VwcG9ydCBhbHJlYWR5IHByZXNlbnQgaW4gV2ViS2l0VXNlckNvbnRlbnRNYW5h
Z2VyLiBNb3N0IG9mIHRoZQorICAgICAgICBtb3ZpbmcgcGFydHMgYXJlIGFscmVhZHkgcHJlc2Vu
dCwgc28gdGhpcyBqdXN0IGFkZHMgYSBib3hlZCB0eXBlCisgICAgICAgIGZvciB1c2VyIHNjcmlw
dHMgKFdlYktpdFVzZXJTY3JpcHQpIGFuZCB0aGUgY29ycmVzcG9uZGluZyBtZXRob2RzCisgICAg
ICAgIHRvIGFkZCBhbmQgcmVtb3ZlIHNjcmlwdHMgZnJvbSB0aGUgV2ViS2l0VXNlckNvbnRlbnRN
YW5hZ2VyLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnQu
Y3BwOiBBZGQgYSBXZWJLaXRVc2VyU2NyaXB0CisgICAgICAgIGJveGVkIHR5cGUgYW5kIGl0cyBj
b3JyZXNwb25kaW5nIG1ldGhvZHMgYW5kIGVudW1zLgorICAgICAgICAodG9Vc2VyU2NyaXB0SW5q
ZWN0aW9uVGltZSk6IE5lZWRlZCB0byBjb252ZXJ0CisgICAgICAgIFdlYktpdFVzZXJTY3JpcHRJ
bmplY3Rpb25UaW1lIHZhbHVlcyBpbnRvIGl0cyBXZWJDb3JlIGNvdW50ZXJwYXJ0cy4KKyAgICAg
ICAgKF9XZWJLaXRVc2VyU2NyaXB0OjpfV2ViS2l0VXNlclNjcmlwdCk6IEFkZGVkLgorICAgICAg
ICAoX1dlYktpdFVzZXJTY3JpcHQ6OnJlZmVyZW5jZUNvdW50KTogRGl0dG8uCisgICAgICAgICh3
ZWJraXRfdXNlcl9zY3JpcHRfcmVmKToKKyAgICAgICAgKHdlYmtpdF91c2VyX3NjcmlwdF91bnJl
Zik6CisgICAgICAgICh3ZWJraXRfdXNlcl9zY3JpcHRfbmV3KToKKyAgICAgICAgKHdlYmtpdFVz
ZXJTY3JpcHRHZXRVc2VyU2NyaXB0KTogSW50ZXJuYWwgbWV0aG9kIHRvIG9idGFpbiB0aGUKKyAg
ICAgICAgYm94ZWQgV2ViQ29yZTo6VXNlclNjcmlwdCB2YWx1ZS4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudC5oOiBBZGQgdGhlIG5ldyBwdWJsaWMgQVBJCisg
ICAgICAgIG1ldGhvZHMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNv
bnRlbnRNYW5hZ2VyLmNwcDogSW1wbGVtZW50IHRoZQorICAgICAgICBtZXRob2RzIGZvciBhZGRp
bmcgYW5kIHJlbW92aW5nIHVzZXIgc2NyaXB0cy4KKyAgICAgICAgKHdlYmtpdF91c2VyX2NvbnRl
bnRfbWFuYWdlcl9hZGRfc2NyaXB0KToKKyAgICAgICAgKHdlYmtpdF91c2VyX2NvbnRlbnRfbWFu
YWdlcl9yZW1vdmVfYWxsX3NjcmlwdHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVzZXJDb250ZW50TWFuYWdlci5oOiBBZGQgdGhlIG5ldyBwdWJsaWMKKyAgICAgICAgQVBJ
IG1ldGhvZHMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRQ
cml2YXRlLmg6IEFkZCB0aGUgZGVmaW5pdGlvbgorICAgICAgICBmb3IgdGhlIG5ldyBwcml2YXRl
IGZ1bmN0aW9uLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1z
ZWN0aW9ucy50eHQ6IEluY2x1ZGUgdGhlCisgICAgICAgIG5ldyBwdWJsaWMgbWV0aG9kcyBpbiB0
aGUgQVBJIGRvY3VtZW50YXRpb24uCisgICAgICAgIAorCiAyMDE0LTA3LTA5ICBLd2FuZ0h5dWsg
S2ltICA8aHl1a2kua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIEZpeCBjcmFzaCBj
YXVzZWQgYnkgaW52YWxpZCBjdXJzb3IgaW1hZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudC5jcHAKaW5kZXggNWVhYTk1MTI3
MzQwZTllZTc3M2Q4NThjMTMxZTNiNDU2ZjczM2VhYS4uN2YyZWI1Y2ViYzg4N2JlODg1ODkzMDVj
YmUxMzI4MzkwMWZiMjNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0VXNlckNvbnRlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50LmNwcApAQCAtNjMsNiArNjMsMTkgQEAgc3RhdGlj
IGlubGluZSBVc2VyU3R5bGVMZXZlbCB0b1VzZXJTdHlsZUxldmVsKFdlYktpdFVzZXJTdHlsZUxl
dmVsIHN0eWxlTGV2ZWwpCiAgICAgfQogfQogCitzdGF0aWMgaW5saW5lIFVzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lIHRvVXNlclNjcmlwdEluamVjdGlvblRpbWUoV2ViS2l0VXNlclNjcmlwdEluamVj
dGlvblRpbWUgaW5qZWN0aW9uVGltZSkKK3sKKyAgICBzd2l0Y2ggKGluamVjdGlvblRpbWUpIHsK
KyAgICBjYXNlIFdFQktJVF9VU0VSX1NDUklQVF9JTkpFQ1RfQVRfRE9DVU1FTlRfU1RBUlQ6Cisg
ICAgICAgIHJldHVybiBJbmplY3RBdERvY3VtZW50U3RhcnQ7CisgICAgY2FzZSBXRUJLSVRfVVNF
Ul9TQ1JJUFRfSU5KRUNUX0FUX0RPQ1VNRU5UX0VORDoKKyAgICAgICAgcmV0dXJuIEluamVjdEF0
RG9jdW1lbnRFbmQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIHJldHVybiBJbmplY3RBdERvY3VtZW50U3RhcnQ7CisgICAgfQorfQorCiBzdGF0
aWMgaW5saW5lIFZlY3RvcjxTdHJpbmc+IHRvU3RyaW5nVmVjdG9yKGNvbnN0IGNoYXIqIGNvbnN0
KiBzdHJ2KQogewogICAgIGlmICghc3RydikKQEAgLTE1OSwzICsxNzIsODkgQEAgY29uc3QgVXNl
clN0eWxlU2hlZXQmIHdlYmtpdFVzZXJTdHlsZVNoZWV0R2V0VXNlclN0eWxlU2hlZXQoV2ViS2l0
VXNlclN0eWxlU2hlZXQKIHsKICAgICByZXR1cm4gKnVzZXJTdHlsZVNoZWV0LT51c2VyU3R5bGVT
aGVldDsKIH0KKworc3RydWN0IF9XZWJLaXRVc2VyU2NyaXB0IHsKKyAgICBfV2ViS2l0VXNlclNj
cmlwdChjb25zdCBnY2hhciogc291cmNlLCBXZWJLaXRVc2VyQ29udGVudEluamVjdGVkRnJhbWVz
IGluamVjdGVkRnJhbWVzLCBXZWJLaXRVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSBpbmplY3Rpb25U
aW1lLCBjb25zdCBnY2hhciogY29uc3QqIHdoaXRlbGlzdCwgY29uc3QgZ2NoYXIqIGNvbnN0KiBi
bGFja2xpc3QpCisgICAgICAgIDogdXNlclNjcmlwdChzdGQ6Om1ha2VfdW5pcXVlPFVzZXJTY3Jp
cHQ+KAorICAgICAgICAgICAgU3RyaW5nOjpmcm9tVVRGOChzb3VyY2UpLCBVUkwgeyB9LAorICAg
ICAgICAgICAgdG9TdHJpbmdWZWN0b3Iod2hpdGVsaXN0KSwgdG9TdHJpbmdWZWN0b3IoYmxhY2ts
aXN0KSwKKyAgICAgICAgICAgIHRvVXNlclNjcmlwdEluamVjdGlvblRpbWUoaW5qZWN0aW9uVGlt
ZSksCisgICAgICAgICAgICB0b1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMoaW5qZWN0ZWRGcmFt
ZXMpKSkKKyAgICAgICAgLCByZWZlcmVuY2VDb3VudCgxKQorICAgIHsKKyAgICB9CisKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8VXNlclNjcmlwdD4gdXNlclNjcmlwdDsKKyAgICBpbnQgcmVmZXJlbmNl
Q291bnQ7Cit9OworCitHX0RFRklORV9CT1hFRF9UWVBFKFdlYktpdFVzZXJTY3JpcHQsIHdlYmtp
dF91c2VyX3NjcmlwdCwgd2Via2l0X3VzZXJfc2NyaXB0X3JlZiwgd2Via2l0X3VzZXJfc2NyaXB0
X3VucmVmKQorCisvKioKKyAqIHdlYmtpdF91c2VyX3NjcmlwdF9yZWY6CisgKiBAdXNlcl9zY3Jp
cHQ6IGEgI1dlYktpdFVzZXJTY3JpcHQKKyAqCisgKiBBdG9taWNhbGx5IGluY3JlbWVudHMgdGhl
IHJlZmVyZW5jZSBjb3VudCBvZiBAdXNlcl9zY3JpcHQgYnkgb25lLgorICogVGhpcyBmdW5jdGlv
biBpcyBNVC1zYWZlIGFuZCBtYXkgYmUgY2FsbGVkIGZyb20gYW55IHRocmVhZC4KKyAqCisgKiBS
ZXR1cm5zOiBUaGUgcGFzc2VkICNXZWJLaXRVc2VyU2NyaXB0CisgKgorICogU2luY2U6IDIuNgor
ICovCitXZWJLaXRVc2VyU2NyaXB0KiB3ZWJraXRfdXNlcl9zY3JpcHRfcmVmKFdlYktpdFVzZXJT
Y3JpcHQqIHVzZXJTY3JpcHQpCit7CisgICAgZ19hdG9taWNfaW50X2luYygmdXNlclNjcmlwdC0+
cmVmZXJlbmNlQ291bnQpOworICAgIHJldHVybiB1c2VyU2NyaXB0OworfQorCisvKioKKyAqIHdl
YmtpdF91c2VyX3NjcmlwdF91bnJlZjoKKyAqIEB1c2VyX3NjcmlwdDogYSAjV2ViS2l0VXNlclNj
cmlwdAorICoKKyAqIEF0b21pY2FsbHkgZGVjcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9m
IEB1c2VyX3NjcmlwdCBieSBvbmUuCisgKiBJZiB0aGUgcmVmZXJlbmNlIGNvdW50IGRyb3BzIHRv
IDAsIGFsbCBtZW1vcnkgYWxsb2NhdGVkIGJ5CisgKiAjV2ViS2l0VXNlclNjcmlwdCBpcyByZWxl
YXNlZC4gVGhpcyBmdW5jdGlvbiBpcyBNVC1zYWZlIGFuZCBtYXkgYmUgY2FsbGVkCisgKiBmcm9t
IGFueSB0aHJlYWQuCisgKgorICogU2luY2U6IDIuNgorICovCit2b2lkIHdlYmtpdF91c2VyX3Nj
cmlwdF91bnJlZihXZWJLaXRVc2VyU2NyaXB0KiB1c2VyU2NyaXB0KQoreworICAgIGlmIChnX2F0
b21pY19pbnRfZGVjX2FuZF90ZXN0KCZ1c2VyU2NyaXB0LT5yZWZlcmVuY2VDb3VudCkpIHsKKyAg
ICAgICAgdXNlclNjcmlwdC0+fldlYktpdFVzZXJTY3JpcHQoKTsKKyAgICAgICAgZ19zbGljZV9m
cmVlKFdlYktpdFVzZXJTY3JpcHQsIHVzZXJTY3JpcHQpOworICAgIH0KK30KKworLyoqCisgKiB3
ZWJraXRfdXNlcl9zY3JpcHRfbmV3OgorICogQHNvdXJjZTogU291cmNlIGNvZGUgb2YgdGhlIHVz
ZXIgc2NyaXB0LgorICogQGluamVjdGVkX2ZyYW1lczogQSAjV2ViS2l0VXNlckNvbnRlbnRJbmpl
Y3RlZEZyYW1lcyB2YWx1ZQorICogQGluamVjdGlvbl90aW1lOiBBICNXZWJLaXRVc2VyU2NyaXB0
SW5qZWN0aW9uVGltZSB2YWx1ZQorICogQHdoaXRlbGlzdDogKGFycmF5IHplcm8tdGVybWluYXRl
ZD0xKSAoYWxsb3ctbm9uZSk6IEEgd2hpdGVsaXN0IG9mIFVSSSBwYXR0ZXJucyBvciAlTlVMTAor
ICogQGJsYWNrbGlzdDogKGFycmF5IHplcm8tdGVybWluYXRlZD0xKSAoYWxsb3ctbm9uZSk6IEEg
YmxhY2tsaXN0IG9mIFVSSSBwYXR0ZXJucyBvciAlTlVMTAorICoKKyAqIENyZWF0ZXMgYSBuZXcg
dXNlciBzY3JpcHQuIFNjcmlwdHMgY2FuIGJlIGFwcGxpZWQgdG8gc29tZSBVUklzCisgKiBvbmx5
IGJ5IHBhc3Npbmcgbm9uLW51bGwgdmFsdWVzIGZvciBAd2hpdGVsaXN0IG9yIEBibGFja2xpc3Qu
IFBhc3NpbmcgYQorICogJU5VTEwgd2hpdGVsaXN0IGltcGxpZXMgdGhhdCBhbGwgVVJJcyBhcmUg
b24gdGhlIHdoaXRlbGlzdC4gVGhlIHNjcmlwdAorICogaXMgYXBwbGllZCBpZiBhbiBVUkkgbWF0
Y2hlcyB0aGUgd2hpdGVsaXN0IGFuZCBub3QgdGhlIGJsYWNrbGlzdC4KKyAqIFVSSSBwYXR0ZXJu
cyBtdXN0IGJlIG9mIHRoZSBmb3JtIGBbcHJvdG9jb2xdOi8vW2hvc3RdL1twYXRoXWAsIHdoZXJl
IHRoZQorICogKmhvc3QqIGFuZCAqcGF0aCogY29tcG9uZW50cyBjYW4gY29udGFpbiB0aGUgd2ls
ZGNhcmQgY2hhcmFjdGVyIChgKmApIHRvCisgKiByZXByZXNlbnQgemVybyBvciBtb3JlIG90aGVy
IGNoYXJhY3RlcnMuCisgKgorICogUmV0dXJuczogQSBuZXcgI1dlYktpdFNjcmlwdAorICoKKyAq
IFNpbmNlOiAyLjYKKyAqLworV2ViS2l0VXNlclNjcmlwdCogd2Via2l0X3VzZXJfc2NyaXB0X25l
dyhjb25zdCBnY2hhciogc291cmNlLCBXZWJLaXRVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGlu
amVjdGVkRnJhbWVzLCBXZWJLaXRVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSBpbmplY3Rpb25UaW1l
LCBjb25zdCBnY2hhciogY29uc3QqIHdoaXRlbGlzdCwgY29uc3QgZ2NoYXIqIGNvbnN0KiBibGFj
a2xpc3QpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc291cmNlLCBudWxscHRyKTsKKyAg
ICBXZWJLaXRVc2VyU2NyaXB0KiB1c2VyU2NyaXB0ID0gZ19zbGljZV9uZXcoV2ViS2l0VXNlclNj
cmlwdCk7CisgICAgbmV3ICh1c2VyU2NyaXB0KSBXZWJLaXRVc2VyU2NyaXB0KHNvdXJjZSwgaW5q
ZWN0ZWRGcmFtZXMsIGluamVjdGlvblRpbWUsIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICBy
ZXR1cm4gdXNlclNjcmlwdDsKK30KKworY29uc3QgVXNlclNjcmlwdCYgd2Via2l0VXNlclNjcmlw
dEdldFVzZXJTY3JpcHQoV2ViS2l0VXNlclNjcmlwdCogdXNlclNjcmlwdCkKK3sKKyAgICByZXR1
cm4gKnVzZXJTY3JpcHQtPnVzZXJTY3JpcHQ7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnQuaAppbmRleCA4MjI3NmU2MTFmY2Vi
MzM0OWI4NTI5MDllOGUzYzBmZTBjOTgwNmVkLi5jM2YxZWQ1NjlmODNkNmFkYjUyZjNkZmUxYmU0
MjZmMjljMjg3YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVc2VyQ29udGVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVzZXJDb250ZW50LmgKQEAgLTg0LDYgKzg0LDQyIEBAIHdlYmtpdF91c2VyX3N0
eWxlX3NoZWV0X25ldyAgICAgIChjb25zdCBnY2hhciAgICAgICAgICAgICAgICAgICAgKnNvdXJj
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciogY29uc3Qg
ICAgICAgICAgICAgKndoaXRlbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBnY2hhciogY29uc3QgICAgICAgICAgICAgKmJsYWNrbGlzdCk7CiAKKy8qKgorICog
V2ViS2l0VXNlclNjcmlwdEluamVjdGlvblRpbWU6CisgKiBAV0VCS0lUX1VTRVJfU0NSSVBUX0lO
SkVDVF9BVF9ET0NVTUVOVF9TVEFSVDogSW5zZXJ0IHRoZSBjb2RlIG9mIHRoZSB1c2VyCisgKiAg
IHNjcmlwdCBhdCB0aGUgYmVnaW5uaW5nIG9mIGxvYWRlZCBkb2N1bWVudHMuIFRoaXMgaXMgdGhl
IGRlZmF1bHQuCisgKiBAV0VCS0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9FTkQ6
IEluc2VydCB0aGUgY29kZSBvZiB0aGUgdXNlcgorICogICBzY3JpcHQgYXQgdGhlIGVuZCBvZiB0
aGUgbG9hZGVkIGRvY3VtZW50cy4KKyAqCisgKiBTcGVjaWZpZXMgYXQgd2hpY2ggcGxhY2Ugb2Yg
ZG9jdW1lbnRzIGFuIHVzZXIgc2NyaXB0IHdpbGwgYmUgaW5zZXJ0ZWQuCisgKgorICogU2luY2U6
IDIuNgorICovCit0eXBlZGVmIGVudW0geworICAgIFdFQktJVF9VU0VSX1NDUklQVF9JTkpFQ1Rf
QVRfRE9DVU1FTlRfU1RBUlQsCisgICAgV0VCS0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NV
TUVOVF9FTkQsCit9IFdlYktpdFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lOworCisjZGVmaW5lIFdF
QktJVF9UWVBFX1VTRVJfU0NSSVBUICh3ZWJraXRfdXNlcl9zY3JpcHRfZ2V0X3R5cGUoKSkKKwor
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFVzZXJTY3JpcHQgV2ViS2l0VXNlclNjcmlwdDsKKworV0VC
S0lUX0FQSSBHVHlwZQord2Via2l0X3VzZXJfc2NyaXB0X2dldF90eXBlICAgICAgKHZvaWQpOwor
CitXRUJLSVRfQVBJIFdlYktpdFVzZXJTY3JpcHQgKgord2Via2l0X3VzZXJfc2NyaXB0X3JlZiAg
ICAgICAgICAgKFdlYktpdFVzZXJTY3JpcHQgICAgICAgICAgICAgICAqdXNlcl9zY3JpcHQpOwor
CitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91c2VyX3NjcmlwdF91bnJlZiAgICAgICAgIChXZWJL
aXRVc2VyU2NyaXB0ICAgICAgICAgICAgICAgKnVzZXJfc2NyaXB0KTsKKworV0VCS0lUX0FQSSBX
ZWJLaXRVc2VyU2NyaXB0ICoKK3dlYmtpdF91c2VyX3NjcmlwdF9uZXcgICAgICAgICAgIChjb25z
dCBnY2hhciAgICAgICAgICAgICAgICAgICAgKnNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJLaXRVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGluamVjdGVkX2Zy
YW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRVc2VyU2NyaXB0
SW5qZWN0aW9uVGltZSAgIGluamVjdGlvbl90aW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGdjaGFyKiBjb25zdCAgICAgICAgICAgICAqd2hpdGVsaXN0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiBjb25zdCAgICAgICAg
ICAgICAqYmxhY2tsaXN0KTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRN
YW5hZ2VyLmNwcAppbmRleCA5ZTFiNGNjNTdkYTY4NTJkMjgxZTdlM2MwN2ZjZGE1N2U5ODY4NmU2
Li41ZWQ3OTk5N2E5MjM4MjU2NzNhYjdjYTVmMzQzNzcwODhkOTIwMDM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250
ZW50TWFuYWdlci5jcHAKQEAgLTEwOSw2ICsxMDksMzggQEAgdm9pZCB3ZWJraXRfdXNlcl9jb250
ZW50X21hbmFnZXJfcmVtb3ZlX2FsbF9zdHlsZV9zaGVldHMoV2ViS2l0VXNlckNvbnRlbnRNYW5h
Z2UKICAgICBtYW5hZ2VyLT5wcml2LT51c2VyQ29udGVudENvbnRyb2xsZXItPnJlbW92ZUFsbFVz
ZXJTdHlsZVNoZWV0cygpOwogfQogCisvKioKKyAqIHdlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdl
cl9hZGRfc2NyaXB0OgorICogQG1hbmFnZXI6IEEgI1dlYktpdFVzZXJDb250ZW50TWFuYWdlcgor
ICogQHNjcmlwdDogQSAjV2ViS2l0VXNlclNjcmlwdAorICoKKyAqIEFkZHMgYSAjV2ViS2l0VXNl
clNjcmlwdCB0byB0aGUgZ2l2ZW4gI1dlYktpdFVzZXJDb250ZW50TWFuYWdlci4KKyAqIFRoZSBz
YW1lICNXZWJLaXRVc2VyU2NyaXB0IGNhbiBiZSByZXVzZWQgd2l0aCBtdWx0aXBsZQorICogI1dl
YktpdFVzZXJDb250ZW50TWFuYWdlciBpbnN0YW5jZXMuCisgKgorICogU2luY2U6IDIuNgorICov
Cit2b2lkIHdlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9hZGRfc2NyaXB0KFdlYktpdFVzZXJD
b250ZW50TWFuYWdlciogbWFuYWdlciwgV2ViS2l0VXNlclNjcmlwdCogc2NyaXB0KQoreworICAg
IGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1VTRVJfQ09OVEVOVF9NQU5BR0VSKG1hbmFnZXIp
KTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHNjcmlwdCk7CisgICAgbWFuYWdlci0+cHJpdi0+dXNl
ckNvbnRlbnRDb250cm9sbGVyLT5hZGRVc2VyU2NyaXB0KHdlYmtpdFVzZXJTY3JpcHRHZXRVc2Vy
U2NyaXB0KHNjcmlwdCkpOworfQorCisvKioKKyAqIHdlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdl
cl9yZW1vdmVfYWxsX3NjcmlwdHM6CisgKiBAbWFuYWdlcjogQSAjV2ViS2l0VXNlckNvbnRlbnRN
YW5hZ2VyCisgKgorICogUmVtb3ZlcyBhbGwgdXNlciBzY3JpcHRzIGZyb20gdGhlIGdpdmVuICNX
ZWJLaXRVc2VyQ29udGVudE1hbmFnZXIKKyAqCisgKiBTaW5jZTogMi42CisgKi8KK3ZvaWQgd2Vi
a2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX3JlbW92ZV9hbGxfc2NyaXB0cyhXZWJLaXRVc2VyQ29u
dGVudE1hbmFnZXIqIG1hbmFnZXIpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNf
VVNFUl9DT05URU5UX01BTkFHRVIobWFuYWdlcikpOworICAgIG1hbmFnZXItPnByaXYtPnVzZXJD
b250ZW50Q29udHJvbGxlci0+cmVtb3ZlQWxsVXNlclNjcmlwdHMoKTsKK30KKwogV2ViVXNlckNv
bnRlbnRDb250cm9sbGVyUHJveHkqIHdlYmtpdFVzZXJDb250ZW50TWFuYWdlckdldFVzZXJDb250
ZW50Q29udHJvbGxlclByb3h5KFdlYktpdFVzZXJDb250ZW50TWFuYWdlciogbWFuYWdlcikKIHsK
ICAgICByZXR1cm4gbWFuYWdlci0+cHJpdi0+dXNlckNvbnRlbnRDb250cm9sbGVyLmdldCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNv
bnRlbnRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRV
c2VyQ29udGVudE1hbmFnZXIuaAppbmRleCBiOTE5NTAwZmFlZjBjNTg1ZjBjYTQ5NjM2NDJlNmVi
ODMzYTE3MmVkLi5iNjA1ZjdmYTVlMTczOTUxZWI2OTg5MGY3MzNhOWM4NDU2MjExYTU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVu
dE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRV
c2VyQ29udGVudE1hbmFnZXIuaApAQCAtNzEsNiArNzEsMTMgQEAgd2Via2l0X3VzZXJfY29udGVu
dF9tYW5hZ2VyX2FkZF9zdHlsZV9zaGVldCAgICAgICAgIChXZWJLaXRVc2VyQ29udGVudE1hbmFn
ZXIgKm0KIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX3JlbW92
ZV9hbGxfc3R5bGVfc2hlZXRzIChXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIgKm1hbmFnZXIpOwog
CitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9hZGRfc2NyaXB0
ICAgICAgICAgICAgICAoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyICptYW5hZ2VyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRVc2Vy
U2NyaXB0ICAgICAgICAgKnNjcmlwdCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3VzZXJf
Y29udGVudF9tYW5hZ2VyX3JlbW92ZV9hbGxfc2NyaXB0cyAgICAgIChXZWJLaXRVc2VyQ29udGVu
dE1hbmFnZXIgKm1hbmFnZXIpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50UHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRQ
cml2YXRlLmgKaW5kZXggNGIxYTdhZTVhMTBiNDBhZmZjNjNkNTU3Yjg1Y2NmMTkzZWFjYzM0Yi4u
Y2QxODY0ZWNjMmNkY2M0YmMzYTcwZGRiNjJmZGQxOGU5MWY3MTdiMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRQ
cml2YXRlLmgKQEAgLTIxLDggKzIxLDEwIEBACiAjZGVmaW5lIFdlYktpdFVzZXJDb250ZW50UHJp
dmF0ZV9oCiAKICNpbmNsdWRlICJXZWJLaXRVc2VyQ29udGVudC5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvVXNlclNjcmlwdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlclN0eWxlU2hlZXQuaD4KIAor
Y29uc3QgV2ViQ29yZTo6VXNlclNjcmlwdCYgd2Via2l0VXNlclNjcmlwdEdldFVzZXJTY3JpcHQo
V2ViS2l0VXNlclNjcmlwdCopOwogY29uc3QgV2ViQ29yZTo6VXNlclN0eWxlU2hlZXQmIHdlYmtp
dFVzZXJTdHlsZVNoZWV0R2V0VXNlclN0eWxlU2hlZXQoV2ViS2l0VXNlclN0eWxlU2hlZXQqKTsK
IAogI2VuZGlmIC8vIFdlYktpdFVzZXJDb250ZW50UHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rp
b25zLnR4dAppbmRleCAwNjNjYjY3NWJiZmE5MmE4ZDU3MGMzYjAxZjY4NWZiMDJjZTU2YmVhLi4w
MzQ2MmZlNjY1ZDI0MzQxYzcwNDYyOWI1MDhlZDE1NTNlZWJmYTVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1z
ZWN0aW9ucy50eHQKQEAgLTc2LDE3ICs3NiwyNCBAQCB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3R5
cGUKIDxGSUxFPldlYktpdFVzZXJDb250ZW50PC9GSUxFPgogPFRJVExFPldlYktpdFVzZXJDb250
ZW50PC9USVRMRT4KIFdlYktpdFVzZXJTdHlsZVNoZWV0CitXZWJLaXRVc2VyU2NyaXB0CiBXZWJL
aXRVc2VyQ29udGVudEluamVjdGVkRnJhbWVzCiBXZWJLaXRVc2VyU3R5bGVMZXZlbAorV2ViS2l0
VXNlclNjcmlwdEluamVjdGlvblRpbWUKIHdlYmtpdF91c2VyX3N0eWxlX3NoZWV0X3JlZgogd2Vi
a2l0X3VzZXJfc3R5bGVfc2hlZXRfdW5yZWYKIHdlYmtpdF91c2VyX3N0eWxlX3NoZWV0X25ldwor
d2Via2l0X3VzZXJfc2NyaXB0X3JlZgord2Via2l0X3VzZXJfc2NyaXB0X3VucmVmCit3ZWJraXRf
dXNlcl9zY3JpcHRfbmV3CiAKIDxTVUJTRUNUSU9OIFN0YW5kYXJkPgogV0VCS0lUX1RZUEVfVVNF
Ul9TVFlMRV9TSEVFVAorV0VCS0lUX1RZUEVfVVNFUl9TQ1JJUFQKIAogPFNVQlNFQ1RJT04gUHJp
dmF0ZT4KIHdlYmtpdF91c2VyX3N0eWxlX3NoZWV0X2dldF90eXBlCit3ZWJraXRfdXNlcl9zY3Jp
cHRfZ2V0X3R5cGUKIDwvU0VDVElPTj4KIAogPFNFQ1RJT04+CkBAIC05Niw2ICsxMDMsOCBAQCBX
ZWJLaXRVc2VyQ29udGVudE1hbmFnZXIKIHdlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9uZXcK
IHdlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9hZGRfc3R5bGVfc2hlZXQKIHdlYmtpdF91c2Vy
X2NvbnRlbnRfbWFuYWdlcl9yZW1vdmVfYWxsX3N0eWxlX3NoZWV0cword2Via2l0X3VzZXJfY29u
dGVudF9tYW5hZ2VyX2FkZF9zY3JpcHQKK3dlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9yZW1v
dmVfYWxsX3NjcmlwdHMKIAogPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CiBXRUJLSVRfSVNfVVNFUl9D
T05URU5UX01BTkFHRVIKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBlYmI3ZDJmNzJjODI0MDMxOTg3OWNkYzgyYmViN2ZmOTkwMzVhZTBiLi4yMDYw
ZGUzYmJhMjFmY2FkYzM5NTU1NjJkYjYwZDRjZGM4ZGFjZmY4IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQtMDct
MDggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbR1RLXSBBZGQgc3VwcG9ydCBmb3IgdXNlciBzY3JpcHRzIHRvIFdlYktpdFVzZXJDb250ZW50
TWFuYWdlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM0NzM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIHVzZXIgc2NyaXB0cywgdG8gY29tcGxlbWVudCB0aGUgdXNlciBzdHls
ZSBzaGVldAorICAgICAgICBzdXBwb3J0IGFscmVhZHkgcHJlc2VudCBpbiBXZWJLaXRVc2VyQ29u
dGVudE1hbmFnZXIuIE1vc3Qgb2YgdGhlCisgICAgICAgIG1vdmluZyBwYXJ0cyBhcmUgYWxyZWFk
eSBwcmVzZW50LCBzbyB0aGlzIGp1c3QgYWRkcyBhIGJveGVkIHR5cGUKKyAgICAgICAgZm9yIHVz
ZXIgc2NyaXB0cyAoV2ViS2l0VXNlclNjcmlwdCkgYW5kIHRoZSBjb3JyZXNwb25kaW5nIG1ldGhv
ZHMKKyAgICAgICAgdG8gYWRkIGFuZCByZW1vdmUgc2NyaXB0cyBmcm9tIHRoZSBXZWJLaXRVc2Vy
Q29udGVudE1hbmFnZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJH
dGsvVGVzdFdlYktpdFVzZXJDb250ZW50TWFuYWdlci5jcHA6CisgICAgICAgIEFkZCB0ZXN0IGNh
c2UgZm9yIGluamVjdGVkIHVzZXIgc2NyaXB0cy4KKyAgICAgICAgKGlzU2NyaXB0SW5qZWN0ZWRG
b3JVUkxBdFBhdGgpOgorICAgICAgICAocmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRM
aXN0cyk6CisgICAgICAgICh0ZXN0VXNlckNvbnRlbnRNYW5hZ2VySW5qZWN0ZWRTdHlsZVNoZWV0
KToKKyAgICAgICAgKHRlc3RVc2VyQ29udGVudE1hbmFnZXJJbmplY3RlZFNjcmlwdCk6CisgICAg
ICAgIChiZWZvcmVBbGwpOgorICAgICAgICAocmVtb3ZlT2xkSW5qZWN0ZWRTdHlsZVNoZWV0c0Fu
ZFJlc2V0TGlzdHMpOiBEZWxldGVkLgorCiAyMDE0LTA3LTA5ICBCcmVudCBGdWxnaGFtICA8YmZ1
bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5dIFJlbW92ZSB1c2Ugb2YgJ2dyZXAnIGlu
IGJ1aWxkIHN0ZXBzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJHdGsvVGVzdFdlYktpdFVzZXJDb250ZW50TWFuYWdlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFVzZXJDb250ZW50TWFuYWdlci5jcHAKaW5k
ZXggMTA0ZTM2N2JjZTI0MTlhZmQ4ODdmNTY5ZjVkNDFiNjBmZjg0ZDVlOS4uNDNjMzc4MDViOTBm
MGM2MGUyYTk5ZmY0M2Q2ODNhZGRmMGJhMDQ4YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0VXNlckNv
bnRlbnRNYW5hZ2VyLmNwcApAQCAtNTAsNiArNTAsOSBAQCBzdGF0aWMgY29uc3QgY2hhcioga1N0
eWxlU2hlZXRIVE1MID0gIjxodG1sPjxkaXYgaWQ9XCJzdHlsZWRFbGVtZW50XCI+U3dlZXQgc3R5
bAogc3RhdGljIGNvbnN0IGNoYXIqIGtJbmplY3RlZFN0eWxlU2hlZXQgPSAiI3N0eWxlZEVsZW1l
bnQgeyBmb250LXdlaWdodDogYm9sZDsgfSI7CiBzdGF0aWMgY29uc3QgY2hhcioga1N0eWxlU2hl
ZXRUZXN0U2NyaXB0ID0gImdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3N0eWxlZEVsZW1lbnQnKSlbJ2ZvbnQtd2VpZ2h0J10iOwogc3RhdGljIGNvbnN0IGNoYXIqIGtT
dHlsZVNoZWV0VGVzdFNjcmlwdFJlc3VsdCA9ICJib2xkIjsKK3N0YXRpYyBjb25zdCBjaGFyKiBr
SW5qZWN0ZWRTY3JpcHQgPSAiZG9jdW1lbnQud3JpdGUoJzxkaXYgaWQ9XCJpdGVtXCI+R2VuZXJh
dGVkIGJ5IGEgc2NyaXB0PC9kaXY+JykiOworc3RhdGljIGNvbnN0IGNoYXIqIGtTY3JpcHRUZXN0
U2NyaXB0ID0gImdldEVsZW1lbnRCeUlkKCdpdGVtJykuaW5uZXJUZXh0IjsKK3N0YXRpYyBjb25z
dCBjaGFyKiBrU2NyaXB0VGVzdFNjcmlwdFJlc3VsdCA9ICJHZW5lcmF0ZWQgYnkgYSBzY3JpcHQi
OwogCiBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld05ld1dpdGhVc2VyQ29udGVudE1hbmFnZXIoVGVz
dCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKQEAgLTc2LDYgKzc5LDIwIEBAIHN0YXRpYyBib29s
IGlzU3R5bGVTaGVldEluamVjdGVkRm9yVVJMQXRQYXRoKFdlYlZpZXdUZXN0KiB0ZXN0LCBjb25z
dCBjaGFyKiBwYXRoCiAgICAgcmV0dXJuICFnX3N0cmNtcDAocmVzdWx0U3RyaW5nLmdldCgpLCBr
U3R5bGVTaGVldFRlc3RTY3JpcHRSZXN1bHQpOwogfQogCitzdGF0aWMgYm9vbCBpc1NjcmlwdElu
amVjdGVkRm9yVVJMQXRQYXRoKFdlYlZpZXdUZXN0KiB0ZXN0LCBjb25zdCBjaGFyKiBwYXRoKQor
eworICAgIHRlc3QtPmxvYWRVUkkoa1NlcnZlci0+Z2V0VVJJRm9yUGF0aChwYXRoKS5kYXRhKCkp
OworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOworCisgICAgR1VuaXF1ZU91dFB0
cjxHRXJyb3I+IGVycm9yOworICAgIFdlYktpdEphdmFzY3JpcHRSZXN1bHQqIGphdmFzY3JpcHRS
ZXN1bHQgPSB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5kV2FpdFVudGlsRmluaXNoZWQoa1NjcmlwdFRl
c3RTY3JpcHQsICZlcnJvci5vdXRQdHIoKSk7CisgICAgZ19hc3NlcnQoamF2YXNjcmlwdFJlc3Vs
dCk7CisgICAgZ19hc3NlcnQoIWVycm9yLmdldCgpKTsKKworICAgIEdVbmlxdWVQdHI8Y2hhcj4g
cmVzdWx0U3RyaW5nKFdlYlZpZXdUZXN0OjpqYXZhc2NyaXB0UmVzdWx0VG9DU3RyaW5nKGphdmFz
Y3JpcHRSZXN1bHQpKTsKKyAgICByZXR1cm4gIWdfc3RyY21wMChyZXN1bHRTdHJpbmcuZ2V0KCks
IGtTY3JpcHRUZXN0U2NyaXB0UmVzdWx0KTsKK30KKwogc3RhdGljIHZvaWQgZmlsbFVSTExpc3RG
cm9tUGF0aHMoY2hhcioqIGxpc3QsIGNvbnN0IGNoYXIqIHBhdGgsIC4uLikKIHsKICAgICB2YV9s
aXN0IGFyZ3VtZW50TGlzdDsKQEAgLTkwLDkgKzEwNywxMCBAQCBzdGF0aWMgdm9pZCBmaWxsVVJM
TGlzdEZyb21QYXRocyhjaGFyKiogbGlzdCwgY29uc3QgY2hhciogcGF0aCwgLi4uKQogICAgIH0K
IH0KIAotc3RhdGljIHZvaWQgcmVtb3ZlT2xkSW5qZWN0ZWRTdHlsZVNoZWV0c0FuZFJlc2V0TGlz
dHMoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyKiB1c2VyQ29udGVudE1hbmFnZXIsIGNoYXIqKiB3
aGl0ZWxpc3QsIGNoYXIqKiBibGFja2xpc3QpCitzdGF0aWMgdm9pZCByZW1vdmVPbGRJbmplY3Rl
ZENvbnRlbnRBbmRSZXNldExpc3RzKFdlYktpdFVzZXJDb250ZW50TWFuYWdlciogdXNlckNvbnRl
bnRNYW5hZ2VyLCBjaGFyKiogd2hpdGVsaXN0LCBjaGFyKiogYmxhY2tsaXN0KQogewogICAgIHdl
YmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9yZW1vdmVfYWxsX3N0eWxlX3NoZWV0cyh1c2VyQ29u
dGVudE1hbmFnZXIpOworICAgIHdlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9yZW1vdmVfYWxs
X3NjcmlwdHModXNlckNvbnRlbnRNYW5hZ2VyKTsKIAogICAgIHdoaWxlICgqd2hpdGVsaXN0KSB7
CiAgICAgICAgIGdfZnJlZSgqd2hpdGVsaXN0KTsKQEAgLTExMiw3ICsxMzAsNTAgQEAgc3RhdGlj
IHZvaWQgdGVzdFVzZXJDb250ZW50TWFuYWdlckluamVjdGVkU3R5bGVTaGVldChVc2VyQ29udGVu
dE1hbmFnZXJUZXN0KiB0ZXMKICAgICBjaGFyKiB3aGl0ZWxpc3RbM10gPSB7IDAsIDAsIDAgfTsK
ICAgICBjaGFyKiBibGFja2xpc3RbM10gPSB7IDAsIDAsIDAgfTsKIAotICAgIHJlbW92ZU9sZElu
amVjdGVkU3R5bGVTaGVldHNBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2Vy
LmdldCgpLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCk7CisgICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250
ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgd2hpdGVs
aXN0LCBibGFja2xpc3QpOworCisgICAgLy8gV2l0aG91dCBhIHdoaXRlbGlzdCBvciBhIGJsYWNr
bGlzdCBhbGwgVVJMcyBzaG91bGQgaGF2ZSB0aGUgaW5qZWN0ZWQgc3R5bGUgc2hlZXQuCisgICAg
c3RhdGljIGNvbnN0IGNoYXIqIHJhbmRvbVBhdGggPSAic29tZXJhbmRvbXBhdGgiOworICAgIGdf
YXNzZXJ0KCFpc1NjcmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIHJhbmRvbVBhdGgpKTsK
KyAgICBXZWJLaXRVc2VyU2NyaXB0KiBzY3JpcHQgPSB3ZWJraXRfdXNlcl9zY3JpcHRfbmV3KGtJ
bmplY3RlZFNjcmlwdCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VC
S0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9FTkQsIG51bGxwdHIsIG51bGxwdHIp
OworICAgIHdlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9hZGRfc2NyaXB0KHRlc3QtPm1fdXNl
ckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBzY3JpcHQpOworICAgIHdlYmtpdF91c2VyX3NjcmlwdF91
bnJlZihzY3JpcHQpOworICAgIGdfYXNzZXJ0KGlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgo
dGVzdCwgcmFuZG9tUGF0aCkpOworCisgICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVz
ZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgd2hpdGVsaXN0LCBibGFj
a2xpc3QpOworCisgICAgZmlsbFVSTExpc3RGcm9tUGF0aHMoYmxhY2tsaXN0LCByYW5kb21QYXRo
LCAwKTsKKyAgICBzY3JpcHQgPSB3ZWJraXRfdXNlcl9zY3JpcHRfbmV3KGtJbmplY3RlZFNjcmlw
dCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU0NS
SVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9FTkQsIG51bGxwdHIsIGJsYWNrbGlzdCk7CisgICAgd2Vi
a2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX2FkZF9zY3JpcHQodGVzdC0+bV91c2VyQ29udGVudE1h
bmFnZXIuZ2V0KCksIHNjcmlwdCk7CisgICAgd2Via2l0X3VzZXJfc2NyaXB0X3VucmVmKHNjcmlw
dCk7CisgICAgZ19hc3NlcnQoIWlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgcmFu
ZG9tUGF0aCkpOworICAgIGdfYXNzZXJ0KGlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVz
dCwgInNvbWVvdGhlcnJhbmRvbXBhdGgiKSk7CisKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRl
bnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxp
c3QsIGJsYWNrbGlzdCk7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogaW5UaGVXaGl0ZUxpc3Qg
PSAiaW50aGV3aGl0ZWxpc3QiOworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBub3RJbldoaXRlbGlz
dCA9ICJub3RpbnRoZXdoaXRlbGlzdCI7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGluVGhlV2hp
dGVMaXN0QW5kQmxhY2tMaXN0ID0gImludGhld2hpdGVsaXN0YW5kYmxhY2tsaXN0IjsKKworICAg
IGZpbGxVUkxMaXN0RnJvbVBhdGhzKHdoaXRlbGlzdCwgaW5UaGVXaGl0ZUxpc3QsIGluVGhlV2hp
dGVMaXN0QW5kQmxhY2tMaXN0LCAwKTsKKyAgICBmaWxsVVJMTGlzdEZyb21QYXRocyhibGFja2xp
c3QsIGluVGhlV2hpdGVMaXN0QW5kQmxhY2tMaXN0LCAwKTsKKyAgICBzY3JpcHQgPSB3ZWJraXRf
dXNlcl9zY3JpcHRfbmV3KGtJbmplY3RlZFNjcmlwdCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpF
Q1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9FTkQs
IHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJf
YWRkX3NjcmlwdCh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgc2NyaXB0KTsKKyAg
ICB3ZWJraXRfdXNlcl9zY3JpcHRfdW5yZWYoc2NyaXB0KTsKKyAgICBnX2Fzc2VydChpc1Njcmlw
dEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIGluVGhlV2hpdGVMaXN0KSk7CisgICAgZ19hc3Nl
cnQoIWlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgaW5UaGVXaGl0ZUxpc3RBbmRC
bGFja0xpc3QpKTsKKyAgICBnX2Fzc2VydCghaXNTY3JpcHRJbmplY3RlZEZvclVSTEF0UGF0aCh0
ZXN0LCBub3RJbldoaXRlbGlzdCkpOworCisgICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gY2xlYW4g
dXAgdGhlIGVudmlyb25tZW50IGJlZm9yZSBvdGhlciB0ZXN0cy4KKyAgICByZW1vdmVPbGRJbmpl
Y3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgp
LCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RVc2VyQ29udGVu
dE1hbmFnZXJJbmplY3RlZFNjcmlwdChVc2VyQ29udGVudE1hbmFnZXJUZXN0KiB0ZXN0LCBnY29u
c3Rwb2ludGVyKQoreworICAgIGNoYXIqIHdoaXRlbGlzdFszXSA9IHsgMCwgMCwgMCB9OworICAg
IGNoYXIqIGJsYWNrbGlzdFszXSA9IHsgMCwgMCwgMCB9OworCisgICAgcmVtb3ZlT2xkSW5qZWN0
ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwg
d2hpdGVsaXN0LCBibGFja2xpc3QpOwogCiAgICAgLy8gV2l0aG91dCBhIHdoaXRlbGlzdCBvciBh
IGJsYWNrbGlzdCBhbGwgVVJMcyBzaG91bGQgaGF2ZSB0aGUgaW5qZWN0ZWQgc3R5bGUgc2hlZXQu
CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHJhbmRvbVBhdGggPSAic29tZXJhbmRvbXBhdGgiOwpA
QCAtMTIyLDcgKzE4Myw3IEBAIHN0YXRpYyB2b2lkIHRlc3RVc2VyQ29udGVudE1hbmFnZXJJbmpl
Y3RlZFN0eWxlU2hlZXQoVXNlckNvbnRlbnRNYW5hZ2VyVGVzdCogdGVzCiAgICAgd2Via2l0X3Vz
ZXJfc3R5bGVfc2hlZXRfdW5yZWYoc3R5bGVTaGVldCk7CiAgICAgZ19hc3NlcnQoaXNTdHlsZVNo
ZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgcmFuZG9tUGF0aCkpOwogCi0gICAgcmVtb3Zl
T2xkSW5qZWN0ZWRTdHlsZVNoZWV0c0FuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1h
bmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICByZW1vdmVPbGRJbmplY3Rl
ZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3
aGl0ZWxpc3QsIGJsYWNrbGlzdCk7CiAKICAgICBmaWxsVVJMTGlzdEZyb21QYXRocyhibGFja2xp
c3QsIHJhbmRvbVBhdGgsIDApOwogICAgIHN0eWxlU2hlZXQgPSB3ZWJraXRfdXNlcl9zdHlsZV9z
aGVldF9uZXcoa0luamVjdGVkU3R5bGVTaGVldCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1Rf
QUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU1RZTEVfTEVWRUxfVVNFUiwgbnVsbHB0ciwgYmxhY2ts
aXN0KTsKQEAgLTEzMSw3ICsxOTIsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0VXNlckNvbnRlbnRNYW5h
Z2VySW5qZWN0ZWRTdHlsZVNoZWV0KFVzZXJDb250ZW50TWFuYWdlclRlc3QqIHRlcwogICAgIGdf
YXNzZXJ0KCFpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCByYW5kb21QYXRo
KSk7CiAgICAgZ19hc3NlcnQoaXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwg
InNvbWVvdGhlcnJhbmRvbXBhdGgiKSk7CiAKLSAgICByZW1vdmVPbGRJbmplY3RlZFN0eWxlU2hl
ZXRzQW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgd2hpdGVs
aXN0LCBibGFja2xpc3QpOworICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlz
dHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxhY2tsaXN0
KTsKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpblRoZVdoaXRlTGlzdCA9ICJpbnRoZXdoaXRl
bGlzdCI7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIG5vdEluV2hpdGVsaXN0ID0gIm5vdGludGhl
d2hpdGVsaXN0IjsKQEAgLTE0Nyw3ICsyMDgsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0VXNlckNvbnRl
bnRNYW5hZ2VySW5qZWN0ZWRTdHlsZVNoZWV0KFVzZXJDb250ZW50TWFuYWdlclRlc3QqIHRlcwog
ICAgIGdfYXNzZXJ0KCFpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBub3RJ
bldoaXRlbGlzdCkpOwogCiAgICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gY2xlYW4gdXAgdGhlIGVu
dmlyb25tZW50IGJlZm9yZSBvdGhlciB0ZXN0cy4KLSAgICByZW1vdmVPbGRJbmplY3RlZFN0eWxl
U2hlZXRzQW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgd2hp
dGVsaXN0LCBibGFja2xpc3QpOworICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0
TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxhY2ts
aXN0KTsKIH0KIAogc3RhdGljIHZvaWQgc2VydmVyQ2FsbGJhY2soU291cFNlcnZlciogc2VydmVy
LCBTb3VwTWVzc2FnZSogbWVzc2FnZSwgY29uc3QgY2hhciogcGF0aCwgR0hhc2hUYWJsZSosIFNv
dXBDbGllbnRDb250ZXh0KiwgZ3BvaW50ZXIpCkBAIC0xNjQsNiArMjI1LDcgQEAgdm9pZCBiZWZv
cmVBbGwoKQogCiAgICAgVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgIm5ldy13aXRoLXVzZXIt
Y29udGVudC1tYW5hZ2VyIiwgdGVzdFdlYlZpZXdOZXdXaXRoVXNlckNvbnRlbnRNYW5hZ2VyKTsK
ICAgICBVc2VyQ29udGVudE1hbmFnZXJUZXN0OjphZGQoIldlYktpdFVzZXJDb250ZW50TWFuYWdl
ciIsICJpbmplY3RlZC1zdHlsZS1zaGVldCIsIHRlc3RVc2VyQ29udGVudE1hbmFnZXJJbmplY3Rl
ZFN0eWxlU2hlZXQpOworICAgIFVzZXJDb250ZW50TWFuYWdlclRlc3Q6OmFkZCgiV2ViS2l0VXNl
ckNvbnRlbnRNYW5hZ2VyIiwgImluamVjdGVkLXNjcmlwdCIsIHRlc3RVc2VyQ29udGVudE1hbmFn
ZXJJbmplY3RlZFNjcmlwdCk7CiB9CiAKIHZvaWQgYWZ0ZXJBbGwoKQo=
</data>
<flag name="review"
          id="259191"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
    <flag name="commit-queue"
          id="259192"
          type_id="3"
          status="-"
          setter="cgarcia"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236098</attachid>
            <date>2014-08-06 06:45:37 -0700</date>
            <delta_ts>2014-08-06 08:07:27 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wk2-user-scripts.diff</filename>
            <type>text/plain</type>
            <size>21924</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBhZWY4ZjgxLi5jOWM0MGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTQtMDgtMDYgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNv
bT4KKworICAgICAgICBbR1RLXSBBZGQgc3VwcG9ydCBmb3IgdXNlciBzY3JpcHRzIHRvIFdlYktp
dFVzZXJDb250ZW50TWFuYWdlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTM0NzM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBD
YW1wb3MuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHVzZXIgc2NyaXB0cywgdG8gY29tcGxl
bWVudCB0aGUgdXNlciBzdHlsZSBzaGVldAorICAgICAgICBzdXBwb3J0IGFscmVhZHkgcHJlc2Vu
dCBpbiBXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuIE1vc3Qgb2YgdGhlCisgICAgICAgIG1vdmlu
ZyBwYXJ0cyBhcmUgYWxyZWFkeSBwcmVzZW50LCBzbyB0aGlzIGp1c3QgYWRkcyBhIGJveGVkIHR5
cGUKKyAgICAgICAgZm9yIHVzZXIgc2NyaXB0cyAoV2ViS2l0VXNlclNjcmlwdCkgYW5kIHRoZSBj
b3JyZXNwb25kaW5nIG1ldGhvZHMKKyAgICAgICAgdG8gYWRkIGFuZCByZW1vdmUgc2NyaXB0cyBm
cm9tIHRoZSBXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudC5jcHA6IEFkZCBhIFdlYktpdFVzZXJTY3JpcHQKKyAg
ICAgICAgYm94ZWQgdHlwZSBhbmQgaXRzIGNvcnJlc3BvbmRpbmcgbWV0aG9kcyBhbmQgZW51bXMu
CisgICAgICAgICh0b1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lKTogTmVlZGVkIHRvIGNvbnZlcnQK
KyAgICAgICAgV2ViS2l0VXNlclNjcmlwdEluamVjdGlvblRpbWUgdmFsdWVzIGludG8gaXRzIFdl
YkNvcmUgY291bnRlcnBhcnRzLgorICAgICAgICAoX1dlYktpdFVzZXJTY3JpcHQ6Ol9XZWJLaXRV
c2VyU2NyaXB0KTogQWRkZWQuCisgICAgICAgIChfV2ViS2l0VXNlclNjcmlwdDo6cmVmZXJlbmNl
Q291bnQpOiBEaXR0by4KKyAgICAgICAgKHdlYmtpdF91c2VyX3NjcmlwdF9yZWYpOgorICAgICAg
ICAod2Via2l0X3VzZXJfc2NyaXB0X3VucmVmKToKKyAgICAgICAgKHdlYmtpdF91c2VyX3Njcmlw
dF9uZXcpOgorICAgICAgICAod2Via2l0VXNlclNjcmlwdEdldFVzZXJTY3JpcHQpOiBJbnRlcm5h
bCBtZXRob2QgdG8gb2J0YWluIHRoZQorICAgICAgICBib3hlZCBXZWJDb3JlOjpVc2VyU2NyaXB0
IHZhbHVlLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50Lmg6
IEFkZCB0aGUgbmV3IHB1YmxpYyBBUEkKKyAgICAgICAgbWV0aG9kcy4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwOiBJbXBsZW1lbnQgdGhl
CisgICAgICAgIG1ldGhvZHMgZm9yIGFkZGluZyBhbmQgcmVtb3ZpbmcgdXNlciBzY3JpcHRzLgor
ICAgICAgICAod2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX2FkZF9zY3JpcHQpOgorICAgICAg
ICAod2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX3JlbW92ZV9hbGxfc2NyaXB0cyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmg6IEFkZCB0
aGUgbmV3IHB1YmxpYworICAgICAgICBBUEkgbWV0aG9kcy4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudFByaXZhdGUuaDogQWRkIHRoZSBkZWZpbml0aW9uCisg
ICAgICAgIGZvciB0aGUgbmV3IHByaXZhdGUgZnVuY3Rpb24uCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dDogSW5jbHVkZSB0aGUKKyAgICAg
ICAgbmV3IHB1YmxpYyBtZXRob2RzIGluIHRoZSBBUEkgZG9jdW1lbnRhdGlvbi4KKwogMjAxNC0w
OC0wNSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
RUdSRVNTSU9OIChyMTY0MzM3KTogUGFnZXMgYXJlIHNvbWV0aW1lcyBjdXQgb2ZmL29yaWVudGVk
IGluY29ycmVjdGx5IGFmdGVyIHVzaW5nIFdLVGh1bWJuYWlsVmlldwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnQuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnQuY3BwCmluZGV4
IDIxZDE3MmMuLmZlYjg3MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFVzZXJDb250ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudC5jcHAKQEAgLTYzLDYgKzYzLDE5IEBAIHN0YXRp
YyBpbmxpbmUgVXNlclN0eWxlTGV2ZWwgdG9Vc2VyU3R5bGVMZXZlbChXZWJLaXRVc2VyU3R5bGVM
ZXZlbCBzdHlsZUxldmVsKQogICAgIH0KIH0KIAorc3RhdGljIGlubGluZSBVc2VyU2NyaXB0SW5q
ZWN0aW9uVGltZSB0b1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lKFdlYktpdFVzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lIGluamVjdGlvblRpbWUpCit7CisgICAgc3dpdGNoIChpbmplY3Rpb25UaW1lKSB7
CisgICAgY2FzZSBXRUJLSVRfVVNFUl9TQ1JJUFRfSU5KRUNUX0FUX0RPQ1VNRU5UX1NUQVJUOgor
ICAgICAgICByZXR1cm4gSW5qZWN0QXREb2N1bWVudFN0YXJ0OworICAgIGNhc2UgV0VCS0lUX1VT
RVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9FTkQ6CisgICAgICAgIHJldHVybiBJbmplY3RB
dERvY3VtZW50RW5kOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICByZXR1cm4gSW5qZWN0QXREb2N1bWVudFN0YXJ0OworICAgIH0KK30KKwogc3Rh
dGljIGlubGluZSBWZWN0b3I8U3RyaW5nPiB0b1N0cmluZ1ZlY3Rvcihjb25zdCBjaGFyKiBjb25z
dCogc3RydikKIHsKICAgICBpZiAoIXN0cnYpCkBAIC0xNTksMyArMTcyLDg5IEBAIGNvbnN0IFVz
ZXJTdHlsZVNoZWV0JiB3ZWJraXRVc2VyU3R5bGVTaGVldEdldFVzZXJTdHlsZVNoZWV0KFdlYktp
dFVzZXJTdHlsZVNoZWV0CiB7CiAgICAgcmV0dXJuICp1c2VyU3R5bGVTaGVldC0+dXNlclN0eWxl
U2hlZXQ7CiB9CisKK3N0cnVjdCBfV2ViS2l0VXNlclNjcmlwdCB7CisgICAgX1dlYktpdFVzZXJT
Y3JpcHQoY29uc3QgZ2NoYXIqIHNvdXJjZSwgV2ViS2l0VXNlckNvbnRlbnRJbmplY3RlZEZyYW1l
cyBpbmplY3RlZEZyYW1lcywgV2ViS2l0VXNlclNjcmlwdEluamVjdGlvblRpbWUgaW5qZWN0aW9u
VGltZSwgY29uc3QgZ2NoYXIqIGNvbnN0KiB3aGl0ZWxpc3QsIGNvbnN0IGdjaGFyKiBjb25zdCog
YmxhY2tsaXN0KQorICAgICAgICA6IHVzZXJTY3JpcHQoc3RkOjptYWtlX3VuaXF1ZTxVc2VyU2Ny
aXB0PigKKyAgICAgICAgICAgIFN0cmluZzo6ZnJvbVVURjgoc291cmNlKSwgVVJMIHsgfSwKKyAg
ICAgICAgICAgIHRvU3RyaW5nVmVjdG9yKHdoaXRlbGlzdCksIHRvU3RyaW5nVmVjdG9yKGJsYWNr
bGlzdCksCisgICAgICAgICAgICB0b1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lKGluamVjdGlvblRp
bWUpLAorICAgICAgICAgICAgdG9Vc2VyQ29udGVudEluamVjdGVkRnJhbWVzKGluamVjdGVkRnJh
bWVzKSkpCisgICAgICAgICwgcmVmZXJlbmNlQ291bnQoMSkKKyAgICB7CisgICAgfQorCisgICAg
c3RkOjp1bmlxdWVfcHRyPFVzZXJTY3JpcHQ+IHVzZXJTY3JpcHQ7CisgICAgaW50IHJlZmVyZW5j
ZUNvdW50OworfTsKKworR19ERUZJTkVfQk9YRURfVFlQRShXZWJLaXRVc2VyU2NyaXB0LCB3ZWJr
aXRfdXNlcl9zY3JpcHQsIHdlYmtpdF91c2VyX3NjcmlwdF9yZWYsIHdlYmtpdF91c2VyX3Njcmlw
dF91bnJlZikKKworLyoqCisgKiB3ZWJraXRfdXNlcl9zY3JpcHRfcmVmOgorICogQHVzZXJfc2Ny
aXB0OiBhICNXZWJLaXRVc2VyU2NyaXB0CisgKgorICogQXRvbWljYWxseSBpbmNyZW1lbnRzIHRo
ZSByZWZlcmVuY2UgY291bnQgb2YgQHVzZXJfc2NyaXB0IGJ5IG9uZS4KKyAqIFRoaXMgZnVuY3Rp
b24gaXMgTVQtc2FmZSBhbmQgbWF5IGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQuCisgKgorICog
UmV0dXJuczogVGhlIHBhc3NlZCAjV2ViS2l0VXNlclNjcmlwdAorICoKKyAqIFNpbmNlOiAyLjYK
KyAqLworV2ViS2l0VXNlclNjcmlwdCogd2Via2l0X3VzZXJfc2NyaXB0X3JlZihXZWJLaXRVc2Vy
U2NyaXB0KiB1c2VyU2NyaXB0KQoreworICAgIGdfYXRvbWljX2ludF9pbmMoJnVzZXJTY3JpcHQt
PnJlZmVyZW5jZUNvdW50KTsKKyAgICByZXR1cm4gdXNlclNjcmlwdDsKK30KKworLyoqCisgKiB3
ZWJraXRfdXNlcl9zY3JpcHRfdW5yZWY6CisgKiBAdXNlcl9zY3JpcHQ6IGEgI1dlYktpdFVzZXJT
Y3JpcHQKKyAqCisgKiBBdG9taWNhbGx5IGRlY3JlbWVudHMgdGhlIHJlZmVyZW5jZSBjb3VudCBv
ZiBAdXNlcl9zY3JpcHQgYnkgb25lLgorICogSWYgdGhlIHJlZmVyZW5jZSBjb3VudCBkcm9wcyB0
byAwLCBhbGwgbWVtb3J5IGFsbG9jYXRlZCBieQorICogI1dlYktpdFVzZXJTY3JpcHQgaXMgcmVs
ZWFzZWQuIFRoaXMgZnVuY3Rpb24gaXMgTVQtc2FmZSBhbmQgbWF5IGJlIGNhbGxlZAorICogZnJv
bSBhbnkgdGhyZWFkLgorICoKKyAqIFNpbmNlOiAyLjYKKyAqLwordm9pZCB3ZWJraXRfdXNlcl9z
Y3JpcHRfdW5yZWYoV2ViS2l0VXNlclNjcmlwdCogdXNlclNjcmlwdCkKK3sKKyAgICBpZiAoZ19h
dG9taWNfaW50X2RlY19hbmRfdGVzdCgmdXNlclNjcmlwdC0+cmVmZXJlbmNlQ291bnQpKSB7Cisg
ICAgICAgIHVzZXJTY3JpcHQtPn5XZWJLaXRVc2VyU2NyaXB0KCk7CisgICAgICAgIGdfc2xpY2Vf
ZnJlZShXZWJLaXRVc2VyU2NyaXB0LCB1c2VyU2NyaXB0KTsKKyAgICB9Cit9CisKKy8qKgorICog
d2Via2l0X3VzZXJfc2NyaXB0X25ldzoKKyAqIEBzb3VyY2U6IFNvdXJjZSBjb2RlIG9mIHRoZSB1
c2VyIHNjcmlwdC4KKyAqIEBpbmplY3RlZF9mcmFtZXM6IEEgI1dlYktpdFVzZXJDb250ZW50SW5q
ZWN0ZWRGcmFtZXMgdmFsdWUKKyAqIEBpbmplY3Rpb25fdGltZTogQSAjV2ViS2l0VXNlclNjcmlw
dEluamVjdGlvblRpbWUgdmFsdWUKKyAqIEB3aGl0ZWxpc3Q6IChhcnJheSB6ZXJvLXRlcm1pbmF0
ZWQ9MSkgKGFsbG93LW5vbmUpOiBBIHdoaXRlbGlzdCBvZiBVUkkgcGF0dGVybnMgb3IgJU5VTEwK
KyAqIEBibGFja2xpc3Q6IChhcnJheSB6ZXJvLXRlcm1pbmF0ZWQ9MSkgKGFsbG93LW5vbmUpOiBB
IGJsYWNrbGlzdCBvZiBVUkkgcGF0dGVybnMgb3IgJU5VTEwKKyAqCisgKiBDcmVhdGVzIGEgbmV3
IHVzZXIgc2NyaXB0LiBTY3JpcHRzIGNhbiBiZSBhcHBsaWVkIHRvIHNvbWUgVVJJcworICogb25s
eSBieSBwYXNzaW5nIG5vbi1udWxsIHZhbHVlcyBmb3IgQHdoaXRlbGlzdCBvciBAYmxhY2tsaXN0
LiBQYXNzaW5nIGEKKyAqICVOVUxMIHdoaXRlbGlzdCBpbXBsaWVzIHRoYXQgYWxsIFVSSXMgYXJl
IG9uIHRoZSB3aGl0ZWxpc3QuIFRoZSBzY3JpcHQKKyAqIGlzIGFwcGxpZWQgaWYgYW4gVVJJIG1h
dGNoZXMgdGhlIHdoaXRlbGlzdCBhbmQgbm90IHRoZSBibGFja2xpc3QuCisgKiBVUkkgcGF0dGVy
bnMgbXVzdCBiZSBvZiB0aGUgZm9ybSBgW3Byb3RvY29sXTovL1tob3N0XS9bcGF0aF1gLCB3aGVy
ZSB0aGUKKyAqICpob3N0KiBhbmQgKnBhdGgqIGNvbXBvbmVudHMgY2FuIGNvbnRhaW4gdGhlIHdp
bGRjYXJkIGNoYXJhY3RlciAoYCpgKSB0bworICogcmVwcmVzZW50IHplcm8gb3IgbW9yZSBvdGhl
ciBjaGFyYWN0ZXJzLgorICoKKyAqIFJldHVybnM6IEEgbmV3ICNXZWJLaXRTY3JpcHQKKyAqCisg
KiBTaW5jZTogMi42CisgKi8KK1dlYktpdFVzZXJTY3JpcHQqIHdlYmtpdF91c2VyX3NjcmlwdF9u
ZXcoY29uc3QgZ2NoYXIqIHNvdXJjZSwgV2ViS2l0VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyBp
bmplY3RlZEZyYW1lcywgV2ViS2l0VXNlclNjcmlwdEluamVjdGlvblRpbWUgaW5qZWN0aW9uVGlt
ZSwgY29uc3QgZ2NoYXIqIGNvbnN0KiB3aGl0ZWxpc3QsIGNvbnN0IGdjaGFyKiBjb25zdCogYmxh
Y2tsaXN0KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNvdXJjZSwgbnVsbHB0cik7Cisg
ICAgV2ViS2l0VXNlclNjcmlwdCogdXNlclNjcmlwdCA9IGdfc2xpY2VfbmV3KFdlYktpdFVzZXJT
Y3JpcHQpOworICAgIG5ldyAodXNlclNjcmlwdCkgV2ViS2l0VXNlclNjcmlwdChzb3VyY2UsIGlu
amVjdGVkRnJhbWVzLCBpbmplY3Rpb25UaW1lLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCk7CisgICAg
cmV0dXJuIHVzZXJTY3JpcHQ7Cit9CisKK2NvbnN0IFVzZXJTY3JpcHQmIHdlYmtpdFVzZXJTY3Jp
cHRHZXRVc2VyU2NyaXB0KFdlYktpdFVzZXJTY3JpcHQqIHVzZXJTY3JpcHQpCit7CisgICAgcmV0
dXJuICp1c2VyU2NyaXB0LT51c2VyU2NyaXB0OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnQuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50LmgKaW5kZXggODIyNzZlNi4uYzNm
MWVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VXNlckNvbnRlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRVc2VyQ29udGVudC5oCkBAIC04NCw2ICs4NCw0MiBAQCB3ZWJraXRfdXNlcl9zdHlsZV9zaGVl
dF9uZXcgICAgICAoY29uc3QgZ2NoYXIgICAgICAgICAgICAgICAgICAgICpzb3VyY2UsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIqIGNvbnN0ICAgICAgICAg
ICAgICp3aGl0ZWxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Z2NoYXIqIGNvbnN0ICAgICAgICAgICAgICpibGFja2xpc3QpOwogCisvKioKKyAqIFdlYktpdFVz
ZXJTY3JpcHRJbmplY3Rpb25UaW1lOgorICogQFdFQktJVF9VU0VSX1NDUklQVF9JTkpFQ1RfQVRf
RE9DVU1FTlRfU1RBUlQ6IEluc2VydCB0aGUgY29kZSBvZiB0aGUgdXNlcgorICogICBzY3JpcHQg
YXQgdGhlIGJlZ2lubmluZyBvZiBsb2FkZWQgZG9jdW1lbnRzLiBUaGlzIGlzIHRoZSBkZWZhdWx0
LgorICogQFdFQktJVF9VU0VSX1NDUklQVF9JTkpFQ1RfQVRfRE9DVU1FTlRfRU5EOiBJbnNlcnQg
dGhlIGNvZGUgb2YgdGhlIHVzZXIKKyAqICAgc2NyaXB0IGF0IHRoZSBlbmQgb2YgdGhlIGxvYWRl
ZCBkb2N1bWVudHMuCisgKgorICogU3BlY2lmaWVzIGF0IHdoaWNoIHBsYWNlIG9mIGRvY3VtZW50
cyBhbiB1c2VyIHNjcmlwdCB3aWxsIGJlIGluc2VydGVkLgorICoKKyAqIFNpbmNlOiAyLjYKKyAq
LwordHlwZWRlZiBlbnVtIHsKKyAgICBXRUJLSVRfVVNFUl9TQ1JJUFRfSU5KRUNUX0FUX0RPQ1VN
RU5UX1NUQVJULAorICAgIFdFQktJVF9VU0VSX1NDUklQVF9JTkpFQ1RfQVRfRE9DVU1FTlRfRU5E
LAorfSBXZWJLaXRVc2VyU2NyaXB0SW5qZWN0aW9uVGltZTsKKworI2RlZmluZSBXRUJLSVRfVFlQ
RV9VU0VSX1NDUklQVCAod2Via2l0X3VzZXJfc2NyaXB0X2dldF90eXBlKCkpCisKK3R5cGVkZWYg
c3RydWN0IF9XZWJLaXRVc2VyU2NyaXB0IFdlYktpdFVzZXJTY3JpcHQ7CisKK1dFQktJVF9BUEkg
R1R5cGUKK3dlYmtpdF91c2VyX3NjcmlwdF9nZXRfdHlwZSAgICAgICh2b2lkKTsKKworV0VCS0lU
X0FQSSBXZWJLaXRVc2VyU2NyaXB0ICoKK3dlYmtpdF91c2VyX3NjcmlwdF9yZWYgICAgICAgICAg
IChXZWJLaXRVc2VyU2NyaXB0ICAgICAgICAgICAgICAgKnVzZXJfc2NyaXB0KTsKKworV0VCS0lU
X0FQSSB2b2lkCit3ZWJraXRfdXNlcl9zY3JpcHRfdW5yZWYgICAgICAgICAoV2ViS2l0VXNlclNj
cmlwdCAgICAgICAgICAgICAgICp1c2VyX3NjcmlwdCk7CisKK1dFQktJVF9BUEkgV2ViS2l0VXNl
clNjcmlwdCAqCit3ZWJraXRfdXNlcl9zY3JpcHRfbmV3ICAgICAgICAgICAoY29uc3QgZ2NoYXIg
ICAgICAgICAgICAgICAgICAgICpzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV2ViS2l0VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyBpbmplY3RlZF9mcmFtZXMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VXNlclNjcmlwdEluamVjdGlv
blRpbWUgICBpbmplY3Rpb25fdGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBnY2hhciogY29uc3QgICAgICAgICAgICAgKndoaXRlbGlzdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciogY29uc3QgICAgICAgICAgICAgKmJs
YWNrbGlzdCk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50TWFuYWdlci5j
cHAKaW5kZXggOWUxYjRjYy4uNWVkNzk5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCkBA
IC0xMDksNiArMTA5LDM4IEBAIHZvaWQgd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX3JlbW92
ZV9hbGxfc3R5bGVfc2hlZXRzKFdlYktpdFVzZXJDb250ZW50TWFuYWdlCiAgICAgbWFuYWdlci0+
cHJpdi0+dXNlckNvbnRlbnRDb250cm9sbGVyLT5yZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoKTsK
IH0KIAorLyoqCisgKiB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfYWRkX3NjcmlwdDoKKyAq
IEBtYW5hZ2VyOiBBICNXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIKKyAqIEBzY3JpcHQ6IEEgI1dl
YktpdFVzZXJTY3JpcHQKKyAqCisgKiBBZGRzIGEgI1dlYktpdFVzZXJTY3JpcHQgdG8gdGhlIGdp
dmVuICNXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuCisgKiBUaGUgc2FtZSAjV2ViS2l0VXNlclNj
cmlwdCBjYW4gYmUgcmV1c2VkIHdpdGggbXVsdGlwbGUKKyAqICNXZWJLaXRVc2VyQ29udGVudE1h
bmFnZXIgaW5zdGFuY2VzLgorICoKKyAqIFNpbmNlOiAyLjYKKyAqLwordm9pZCB3ZWJraXRfdXNl
cl9jb250ZW50X21hbmFnZXJfYWRkX3NjcmlwdChXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIqIG1h
bmFnZXIsIFdlYktpdFVzZXJTY3JpcHQqIHNjcmlwdCkKK3sKKyAgICBnX3JldHVybl9pZl9mYWls
KFdFQktJVF9JU19VU0VSX0NPTlRFTlRfTUFOQUdFUihtYW5hZ2VyKSk7CisgICAgZ19yZXR1cm5f
aWZfZmFpbChzY3JpcHQpOworICAgIG1hbmFnZXItPnByaXYtPnVzZXJDb250ZW50Q29udHJvbGxl
ci0+YWRkVXNlclNjcmlwdCh3ZWJraXRVc2VyU2NyaXB0R2V0VXNlclNjcmlwdChzY3JpcHQpKTsK
K30KKworLyoqCisgKiB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfcmVtb3ZlX2FsbF9zY3Jp
cHRzOgorICogQG1hbmFnZXI6IEEgI1dlYktpdFVzZXJDb250ZW50TWFuYWdlcgorICoKKyAqIFJl
bW92ZXMgYWxsIHVzZXIgc2NyaXB0cyBmcm9tIHRoZSBnaXZlbiAjV2ViS2l0VXNlckNvbnRlbnRN
YW5hZ2VyCisgKgorICogU2luY2U6IDIuNgorICovCit2b2lkIHdlYmtpdF91c2VyX2NvbnRlbnRf
bWFuYWdlcl9yZW1vdmVfYWxsX3NjcmlwdHMoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyKiBtYW5h
Z2VyKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1VTRVJfQ09OVEVOVF9NQU5B
R0VSKG1hbmFnZXIpKTsKKyAgICBtYW5hZ2VyLT5wcml2LT51c2VyQ29udGVudENvbnRyb2xsZXIt
PnJlbW92ZUFsbFVzZXJTY3JpcHRzKCk7Cit9CisKIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclBy
b3h5KiB3ZWJraXRVc2VyQ29udGVudE1hbmFnZXJHZXRVc2VyQ29udGVudENvbnRyb2xsZXJQcm94
eShXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIqIG1hbmFnZXIpCiB7CiAgICAgcmV0dXJuIG1hbmFn
ZXItPnByaXYtPnVzZXJDb250ZW50Q29udHJvbGxlci5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50TWFuYWdlci5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2Vy
LmgKaW5kZXggYjkxOTUwMC4uYjYwNWY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmgKQEAgLTcx
LDYgKzcxLDEzIEBAIHdlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9hZGRfc3R5bGVfc2hlZXQg
ICAgICAgICAoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyICptCiBXRUJLSVRfQVBJIHZvaWQKIHdl
YmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9yZW1vdmVfYWxsX3N0eWxlX3NoZWV0cyAoV2ViS2l0
VXNlckNvbnRlbnRNYW5hZ2VyICptYW5hZ2VyKTsKIAorV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRf
dXNlcl9jb250ZW50X21hbmFnZXJfYWRkX3NjcmlwdCAgICAgICAgICAgICAgKFdlYktpdFVzZXJD
b250ZW50TWFuYWdlciAqbWFuYWdlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VXNlclNjcmlwdCAgICAgICAgICpzY3JpcHQpOwor
CitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9yZW1vdmVfYWxs
X3NjcmlwdHMgICAgICAoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyICptYW5hZ2VyKTsKKwogR19F
TkRfREVDTFMKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRVc2VyQ29udGVudFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVzZXJDb250ZW50UHJpdmF0ZS5oCmluZGV4IDRiMWE3YWUuLmNk
MTg2NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFVzZXJDb250ZW50UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVzZXJDb250ZW50UHJpdmF0ZS5oCkBAIC0yMSw4ICsyMSwxMCBAQAogI2RlZmlu
ZSBXZWJLaXRVc2VyQ29udGVudFByaXZhdGVfaAogCiAjaW5jbHVkZSAiV2ViS2l0VXNlckNvbnRl
bnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJTY3JpcHQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1VzZXJTdHlsZVNoZWV0Lmg+CiAKK2NvbnN0IFdlYkNvcmU6OlVzZXJTY3JpcHQmIHdlYmtpdFVz
ZXJTY3JpcHRHZXRVc2VyU2NyaXB0KFdlYktpdFVzZXJTY3JpcHQqKTsKIGNvbnN0IFdlYkNvcmU6
OlVzZXJTdHlsZVNoZWV0JiB3ZWJraXRVc2VyU3R5bGVTaGVldEdldFVzZXJTdHlsZVNoZWV0KFdl
YktpdFVzZXJTdHlsZVNoZWV0Kik7CiAKICNlbmRpZiAvLyBXZWJLaXRVc2VyQ29udGVudFByaXZh
dGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93
ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggNzRmZjAwOS4uZTQ2ZGMyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2Nz
L3dlYmtpdDJndGstc2VjdGlvbnMudHh0CkBAIC03NiwxNyArNzYsMjQgQEAgd2Via2l0X3dlYl9j
b250ZXh0X2dldF90eXBlCiA8RklMRT5XZWJLaXRVc2VyQ29udGVudDwvRklMRT4KIDxUSVRMRT5X
ZWJLaXRVc2VyQ29udGVudDwvVElUTEU+CiBXZWJLaXRVc2VyU3R5bGVTaGVldAorV2ViS2l0VXNl
clNjcmlwdAogV2ViS2l0VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcwogV2ViS2l0VXNlclN0eWxl
TGV2ZWwKK1dlYktpdFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lCiB3ZWJraXRfdXNlcl9zdHlsZV9z
aGVldF9yZWYKIHdlYmtpdF91c2VyX3N0eWxlX3NoZWV0X3VucmVmCiB3ZWJraXRfdXNlcl9zdHls
ZV9zaGVldF9uZXcKK3dlYmtpdF91c2VyX3NjcmlwdF9yZWYKK3dlYmtpdF91c2VyX3NjcmlwdF91
bnJlZgord2Via2l0X3VzZXJfc2NyaXB0X25ldwogCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KIFdF
QktJVF9UWVBFX1VTRVJfU1RZTEVfU0hFRVQKK1dFQktJVF9UWVBFX1VTRVJfU0NSSVBUCiAKIDxT
VUJTRUNUSU9OIFByaXZhdGU+CiB3ZWJraXRfdXNlcl9zdHlsZV9zaGVldF9nZXRfdHlwZQord2Vi
a2l0X3VzZXJfc2NyaXB0X2dldF90eXBlCiA8L1NFQ1RJT04+CiAKIDxTRUNUSU9OPgpAQCAtOTYs
NiArMTAzLDggQEAgV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyCiB3ZWJraXRfdXNlcl9jb250ZW50
X21hbmFnZXJfbmV3CiB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfYWRkX3N0eWxlX3NoZWV0
CiB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfcmVtb3ZlX2FsbF9zdHlsZV9zaGVldHMKK3dl
YmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9hZGRfc2NyaXB0Cit3ZWJraXRfdXNlcl9jb250ZW50
X21hbmFnZXJfcmVtb3ZlX2FsbF9zY3JpcHRzCiAKIDxTVUJTRUNUSU9OIFN0YW5kYXJkPgogV0VC
S0lUX0lTX1VTRVJfQ09OVEVOVF9NQU5BR0VSCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2ZkOTJiZi4uM2I3YTc5ZiAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0
LTA4LTA2ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW0dUS10gQWRkIHN1cHBvcnQgZm9yIHVzZXIgc2NyaXB0cyB0byBXZWJLaXRVc2VyQ29u
dGVudE1hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzNDczOAorCisgICAgICAgIFJldmlld2VkIGJ5IENhcmxvcyBHYXJjaWEgQ2FtcG9zLgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB1c2VyIHNjcmlwdHMsIHRvIGNvbXBsZW1lbnQgdGhl
IHVzZXIgc3R5bGUgc2hlZXQKKyAgICAgICAgc3VwcG9ydCBhbHJlYWR5IHByZXNlbnQgaW4gV2Vi
S2l0VXNlckNvbnRlbnRNYW5hZ2VyLiBNb3N0IG9mIHRoZQorICAgICAgICBtb3ZpbmcgcGFydHMg
YXJlIGFscmVhZHkgcHJlc2VudCwgc28gdGhpcyBqdXN0IGFkZHMgYSBib3hlZCB0eXBlCisgICAg
ICAgIGZvciB1c2VyIHNjcmlwdHMgKFdlYktpdFVzZXJTY3JpcHQpIGFuZCB0aGUgY29ycmVzcG9u
ZGluZyBtZXRob2RzCisgICAgICAgIHRvIGFkZCBhbmQgcmVtb3ZlIHNjcmlwdHMgZnJvbSB0aGUg
V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwOgorICAgICAgICBB
ZGQgdGVzdCBjYXNlIGZvciBpbmplY3RlZCB1c2VyIHNjcmlwdHMuCisgICAgICAgIChpc1Njcmlw
dEluamVjdGVkRm9yVVJMQXRQYXRoKToKKyAgICAgICAgKHJlbW92ZU9sZEluamVjdGVkQ29udGVu
dEFuZFJlc2V0TGlzdHMpOgorICAgICAgICAodGVzdFVzZXJDb250ZW50TWFuYWdlckluamVjdGVk
U3R5bGVTaGVldCk6CisgICAgICAgICh0ZXN0VXNlckNvbnRlbnRNYW5hZ2VySW5qZWN0ZWRTY3Jp
cHQpOgorICAgICAgICAoYmVmb3JlQWxsKToKKyAgICAgICAgKHJlbW92ZU9sZEluamVjdGVkU3R5
bGVTaGVldHNBbmRSZXNldExpc3RzKTogRGVsZXRlZC4KKwogMjAxNC0wOC0wNiAgUGhpbGlwcGUg
Tm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gcnVuLWxhdW5j
aGVyIC0tZ3RrIHN0aWxsIGZhaWxzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFVzZXJDb250ZW50TWFuYWdlci5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFVzZXJDb250ZW50TWFuYWdl
ci5jcHAKaW5kZXggMTA0ZTM2Ny4uZWU2MDQ5ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0VXNlckNv
bnRlbnRNYW5hZ2VyLmNwcApAQCAtNTAsNiArNTAsOSBAQCBzdGF0aWMgY29uc3QgY2hhcioga1N0
eWxlU2hlZXRIVE1MID0gIjxodG1sPjxkaXYgaWQ9XCJzdHlsZWRFbGVtZW50XCI+U3dlZXQgc3R5
bAogc3RhdGljIGNvbnN0IGNoYXIqIGtJbmplY3RlZFN0eWxlU2hlZXQgPSAiI3N0eWxlZEVsZW1l
bnQgeyBmb250LXdlaWdodDogYm9sZDsgfSI7CiBzdGF0aWMgY29uc3QgY2hhcioga1N0eWxlU2hl
ZXRUZXN0U2NyaXB0ID0gImdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3N0eWxlZEVsZW1lbnQnKSlbJ2ZvbnQtd2VpZ2h0J10iOwogc3RhdGljIGNvbnN0IGNoYXIqIGtT
dHlsZVNoZWV0VGVzdFNjcmlwdFJlc3VsdCA9ICJib2xkIjsKK3N0YXRpYyBjb25zdCBjaGFyKiBr
SW5qZWN0ZWRTY3JpcHQgPSAiZG9jdW1lbnQud3JpdGUoJzxkaXYgaWQ9XCJpdGVtXCI+R2VuZXJh
dGVkIGJ5IGEgc2NyaXB0PC9kaXY+JykiOworc3RhdGljIGNvbnN0IGNoYXIqIGtTY3JpcHRUZXN0
U2NyaXB0ID0gImdldEVsZW1lbnRCeUlkKCdpdGVtJykuaW5uZXJUZXh0IjsKK3N0YXRpYyBjb25z
dCBjaGFyKiBrU2NyaXB0VGVzdFNjcmlwdFJlc3VsdCA9ICJHZW5lcmF0ZWQgYnkgYSBzY3JpcHQi
OwogCiBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld05ld1dpdGhVc2VyQ29udGVudE1hbmFnZXIoVGVz
dCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKQEAgLTc2LDYgKzc5LDIwIEBAIHN0YXRpYyBib29s
IGlzU3R5bGVTaGVldEluamVjdGVkRm9yVVJMQXRQYXRoKFdlYlZpZXdUZXN0KiB0ZXN0LCBjb25z
dCBjaGFyKiBwYXRoCiAgICAgcmV0dXJuICFnX3N0cmNtcDAocmVzdWx0U3RyaW5nLmdldCgpLCBr
U3R5bGVTaGVldFRlc3RTY3JpcHRSZXN1bHQpOwogfQogCitzdGF0aWMgYm9vbCBpc1NjcmlwdElu
amVjdGVkRm9yVVJMQXRQYXRoKFdlYlZpZXdUZXN0KiB0ZXN0LCBjb25zdCBjaGFyKiBwYXRoKQor
eworICAgIHRlc3QtPmxvYWRVUkkoa1NlcnZlci0+Z2V0VVJJRm9yUGF0aChwYXRoKS5kYXRhKCkp
OworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOworCisgICAgR1VuaXF1ZU91dFB0
cjxHRXJyb3I+IGVycm9yOworICAgIFdlYktpdEphdmFzY3JpcHRSZXN1bHQqIGphdmFzY3JpcHRS
ZXN1bHQgPSB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5kV2FpdFVudGlsRmluaXNoZWQoa1NjcmlwdFRl
c3RTY3JpcHQsICZlcnJvci5vdXRQdHIoKSk7CisgICAgZ19hc3NlcnQoamF2YXNjcmlwdFJlc3Vs
dCk7CisgICAgZ19hc3NlcnQoIWVycm9yLmdldCgpKTsKKworICAgIEdVbmlxdWVQdHI8Y2hhcj4g
cmVzdWx0U3RyaW5nKFdlYlZpZXdUZXN0OjpqYXZhc2NyaXB0UmVzdWx0VG9DU3RyaW5nKGphdmFz
Y3JpcHRSZXN1bHQpKTsKKyAgICByZXR1cm4gIWdfc3RyY21wMChyZXN1bHRTdHJpbmcuZ2V0KCks
IGtTY3JpcHRUZXN0U2NyaXB0UmVzdWx0KTsKK30KKwogc3RhdGljIHZvaWQgZmlsbFVSTExpc3RG
cm9tUGF0aHMoY2hhcioqIGxpc3QsIGNvbnN0IGNoYXIqIHBhdGgsIC4uLikKIHsKICAgICB2YV9s
aXN0IGFyZ3VtZW50TGlzdDsKQEAgLTkwLDkgKzEwNywxMCBAQCBzdGF0aWMgdm9pZCBmaWxsVVJM
TGlzdEZyb21QYXRocyhjaGFyKiogbGlzdCwgY29uc3QgY2hhciogcGF0aCwgLi4uKQogICAgIH0K
IH0KIAotc3RhdGljIHZvaWQgcmVtb3ZlT2xkSW5qZWN0ZWRTdHlsZVNoZWV0c0FuZFJlc2V0TGlz
dHMoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyKiB1c2VyQ29udGVudE1hbmFnZXIsIGNoYXIqKiB3
aGl0ZWxpc3QsIGNoYXIqKiBibGFja2xpc3QpCitzdGF0aWMgdm9pZCByZW1vdmVPbGRJbmplY3Rl
ZENvbnRlbnRBbmRSZXNldExpc3RzKFdlYktpdFVzZXJDb250ZW50TWFuYWdlciogdXNlckNvbnRl
bnRNYW5hZ2VyLCBjaGFyKiogd2hpdGVsaXN0LCBjaGFyKiogYmxhY2tsaXN0KQogewogICAgIHdl
YmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9yZW1vdmVfYWxsX3N0eWxlX3NoZWV0cyh1c2VyQ29u
dGVudE1hbmFnZXIpOworICAgIHdlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9yZW1vdmVfYWxs
X3NjcmlwdHModXNlckNvbnRlbnRNYW5hZ2VyKTsKIAogICAgIHdoaWxlICgqd2hpdGVsaXN0KSB7
CiAgICAgICAgIGdfZnJlZSgqd2hpdGVsaXN0KTsKQEAgLTExMiw3ICsxMzAsNyBAQCBzdGF0aWMg
dm9pZCB0ZXN0VXNlckNvbnRlbnRNYW5hZ2VySW5qZWN0ZWRTdHlsZVNoZWV0KFVzZXJDb250ZW50
TWFuYWdlclRlc3QqIHRlcwogICAgIGNoYXIqIHdoaXRlbGlzdFszXSA9IHsgMCwgMCwgMCB9Owog
ICAgIGNoYXIqIGJsYWNrbGlzdFszXSA9IHsgMCwgMCwgMCB9OwogCi0gICAgcmVtb3ZlT2xkSW5q
ZWN0ZWRTdHlsZVNoZWV0c0FuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIu
Z2V0KCksIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRl
bnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxp
c3QsIGJsYWNrbGlzdCk7CiAKICAgICAvLyBXaXRob3V0IGEgd2hpdGVsaXN0IG9yIGEgYmxhY2ts
aXN0IGFsbCBVUkxzIHNob3VsZCBoYXZlIHRoZSBpbmplY3RlZCBzdHlsZSBzaGVldC4KICAgICBz
dGF0aWMgY29uc3QgY2hhciogcmFuZG9tUGF0aCA9ICJzb21lcmFuZG9tcGF0aCI7CkBAIC0xMjIs
NyArMTQwLDcgQEAgc3RhdGljIHZvaWQgdGVzdFVzZXJDb250ZW50TWFuYWdlckluamVjdGVkU3R5
bGVTaGVldChVc2VyQ29udGVudE1hbmFnZXJUZXN0KiB0ZXMKICAgICB3ZWJraXRfdXNlcl9zdHls
ZV9zaGVldF91bnJlZihzdHlsZVNoZWV0KTsKICAgICBnX2Fzc2VydChpc1N0eWxlU2hlZXRJbmpl
Y3RlZEZvclVSTEF0UGF0aCh0ZXN0LCByYW5kb21QYXRoKSk7CiAKLSAgICByZW1vdmVPbGRJbmpl
Y3RlZFN0eWxlU2hlZXRzQW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5n
ZXQoKSwgd2hpdGVsaXN0LCBibGFja2xpc3QpOworICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVu
dEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlz
dCwgYmxhY2tsaXN0KTsKIAogICAgIGZpbGxVUkxMaXN0RnJvbVBhdGhzKGJsYWNrbGlzdCwgcmFu
ZG9tUGF0aCwgMCk7CiAgICAgc3R5bGVTaGVldCA9IHdlYmtpdF91c2VyX3N0eWxlX3NoZWV0X25l
dyhrSW5qZWN0ZWRTdHlsZVNoZWV0LCBXRUJLSVRfVVNFUl9DT05URU5UX0lOSkVDVF9BTExfRlJB
TUVTLCBXRUJLSVRfVVNFUl9TVFlMRV9MRVZFTF9VU0VSLCBudWxscHRyLCBibGFja2xpc3QpOwpA
QCAtMTMxLDcgKzE0OSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RVc2VyQ29udGVudE1hbmFnZXJJbmpl
Y3RlZFN0eWxlU2hlZXQoVXNlckNvbnRlbnRNYW5hZ2VyVGVzdCogdGVzCiAgICAgZ19hc3NlcnQo
IWlzU3R5bGVTaGVldEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIHJhbmRvbVBhdGgpKTsKICAg
ICBnX2Fzc2VydChpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCAic29tZW90
aGVycmFuZG9tcGF0aCIpKTsKIAotICAgIHJlbW92ZU9sZEluamVjdGVkU3R5bGVTaGVldHNBbmRS
ZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxpc3QsIGJs
YWNrbGlzdCk7CisgICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0
LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgd2hpdGVsaXN0LCBibGFja2xpc3QpOwogCiAg
ICAgc3RhdGljIGNvbnN0IGNoYXIqIGluVGhlV2hpdGVMaXN0ID0gImludGhld2hpdGVsaXN0IjsK
ICAgICBzdGF0aWMgY29uc3QgY2hhciogbm90SW5XaGl0ZWxpc3QgPSAibm90aW50aGV3aGl0ZWxp
c3QiOwpAQCAtMTQ3LDcgKzE2NSw1MCBAQCBzdGF0aWMgdm9pZCB0ZXN0VXNlckNvbnRlbnRNYW5h
Z2VySW5qZWN0ZWRTdHlsZVNoZWV0KFVzZXJDb250ZW50TWFuYWdlclRlc3QqIHRlcwogICAgIGdf
YXNzZXJ0KCFpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBub3RJbldoaXRl
bGlzdCkpOwogCiAgICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gY2xlYW4gdXAgdGhlIGVudmlyb25t
ZW50IGJlZm9yZSBvdGhlciB0ZXN0cy4KLSAgICByZW1vdmVPbGRJbmplY3RlZFN0eWxlU2hlZXRz
QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgd2hpdGVsaXN0
LCBibGFja2xpc3QpOworICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHMo
dGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsK
K30KKworc3RhdGljIHZvaWQgdGVzdFVzZXJDb250ZW50TWFuYWdlckluamVjdGVkU2NyaXB0KFVz
ZXJDb250ZW50TWFuYWdlclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgY2hhciog
d2hpdGVsaXN0WzNdID0geyAwLCAwLCAwIH07CisgICAgY2hhciogYmxhY2tsaXN0WzNdID0geyAw
LCAwLCAwIH07CisKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRl
c3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCk7CisK
KyAgICAvLyBXaXRob3V0IGEgd2hpdGVsaXN0IG9yIGEgYmxhY2tsaXN0IGFsbCBVUkxzIHNob3Vs
ZCBoYXZlIHRoZSBpbmplY3RlZCBzY3JpcHQuCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHJhbmRv
bVBhdGggPSAic29tZXJhbmRvbXBhdGgiOworICAgIGdfYXNzZXJ0KCFpc1NjcmlwdEluamVjdGVk
Rm9yVVJMQXRQYXRoKHRlc3QsIHJhbmRvbVBhdGgpKTsKKyAgICBXZWJLaXRVc2VyU2NyaXB0KiBz
Y3JpcHQgPSB3ZWJraXRfdXNlcl9zY3JpcHRfbmV3KGtJbmplY3RlZFNjcmlwdCwgV0VCS0lUX1VT
RVJfQ09OVEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9B
VF9ET0NVTUVOVF9FTkQsIG51bGxwdHIsIG51bGxwdHIpOworICAgIHdlYmtpdF91c2VyX2NvbnRl
bnRfbWFuYWdlcl9hZGRfc2NyaXB0KHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBz
Y3JpcHQpOworICAgIHdlYmtpdF91c2VyX3NjcmlwdF91bnJlZihzY3JpcHQpOworICAgIGdfYXNz
ZXJ0KGlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgcmFuZG9tUGF0aCkpOworCisg
ICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250
ZW50TWFuYWdlci5nZXQoKSwgd2hpdGVsaXN0LCBibGFja2xpc3QpOworCisgICAgZmlsbFVSTExp
c3RGcm9tUGF0aHMoYmxhY2tsaXN0LCByYW5kb21QYXRoLCAwKTsKKyAgICBzY3JpcHQgPSB3ZWJr
aXRfdXNlcl9zY3JpcHRfbmV3KGtJbmplY3RlZFNjcmlwdCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9J
TkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9F
TkQsIG51bGxwdHIsIGJsYWNrbGlzdCk7CisgICAgd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2Vy
X2FkZF9zY3JpcHQodGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHNjcmlwdCk7Cisg
ICAgd2Via2l0X3VzZXJfc2NyaXB0X3VucmVmKHNjcmlwdCk7CisgICAgZ19hc3NlcnQoIWlzU2Ny
aXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgcmFuZG9tUGF0aCkpOworICAgIGdfYXNzZXJ0
KGlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgInNvbWVvdGhlcnJhbmRvbXBhdGgi
KSk7CisKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1f
dXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCk7CisKKyAgICBz
dGF0aWMgY29uc3QgY2hhciogaW5UaGVXaGl0ZUxpc3QgPSAiaW50aGV3aGl0ZWxpc3QiOworICAg
IHN0YXRpYyBjb25zdCBjaGFyKiBub3RJbldoaXRlbGlzdCA9ICJub3RpbnRoZXdoaXRlbGlzdCI7
CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGluVGhlV2hpdGVMaXN0QW5kQmxhY2tMaXN0ID0gImlu
dGhld2hpdGVsaXN0YW5kYmxhY2tsaXN0IjsKKworICAgIGZpbGxVUkxMaXN0RnJvbVBhdGhzKHdo
aXRlbGlzdCwgaW5UaGVXaGl0ZUxpc3QsIGluVGhlV2hpdGVMaXN0QW5kQmxhY2tMaXN0LCAwKTsK
KyAgICBmaWxsVVJMTGlzdEZyb21QYXRocyhibGFja2xpc3QsIGluVGhlV2hpdGVMaXN0QW5kQmxh
Y2tMaXN0LCAwKTsKKyAgICBzY3JpcHQgPSB3ZWJraXRfdXNlcl9zY3JpcHRfbmV3KGtJbmplY3Rl
ZFNjcmlwdCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VT
RVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9FTkQsIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsK
KyAgICB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfYWRkX3NjcmlwdCh0ZXN0LT5tX3VzZXJD
b250ZW50TWFuYWdlci5nZXQoKSwgc2NyaXB0KTsKKyAgICB3ZWJraXRfdXNlcl9zY3JpcHRfdW5y
ZWYoc2NyaXB0KTsKKyAgICBnX2Fzc2VydChpc1NjcmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRl
c3QsIGluVGhlV2hpdGVMaXN0KSk7CisgICAgZ19hc3NlcnQoIWlzU2NyaXB0SW5qZWN0ZWRGb3JV
UkxBdFBhdGgodGVzdCwgaW5UaGVXaGl0ZUxpc3RBbmRCbGFja0xpc3QpKTsKKyAgICBnX2Fzc2Vy
dCghaXNTY3JpcHRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBub3RJbldoaXRlbGlzdCkpOwor
CisgICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gY2xlYW4gdXAgdGhlIGVudmlyb25tZW50IGJlZm9y
ZSBvdGhlciB0ZXN0cy4KKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3Rz
KHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCk7
CiB9CiAKIHN0YXRpYyB2b2lkIHNlcnZlckNhbGxiYWNrKFNvdXBTZXJ2ZXIqIHNlcnZlciwgU291
cE1lc3NhZ2UqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3VwQ2xp
ZW50Q29udGV4dCosIGdwb2ludGVyKQpAQCAtMTY0LDYgKzIyNSw3IEBAIHZvaWQgYmVmb3JlQWxs
KCkKIAogICAgIFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJuZXctd2l0aC11c2VyLWNvbnRl
bnQtbWFuYWdlciIsIHRlc3RXZWJWaWV3TmV3V2l0aFVzZXJDb250ZW50TWFuYWdlcik7CiAgICAg
VXNlckNvbnRlbnRNYW5hZ2VyVGVzdDo6YWRkKCJXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIiLCAi
aW5qZWN0ZWQtc3R5bGUtc2hlZXQiLCB0ZXN0VXNlckNvbnRlbnRNYW5hZ2VySW5qZWN0ZWRTdHls
ZVNoZWV0KTsKKyAgICBVc2VyQ29udGVudE1hbmFnZXJUZXN0OjphZGQoIldlYktpdFVzZXJDb250
ZW50TWFuYWdlciIsICJpbmplY3RlZC1zY3JpcHQiLCB0ZXN0VXNlckNvbnRlbnRNYW5hZ2VySW5q
ZWN0ZWRTY3JpcHQpOwogfQogCiB2b2lkIGFmdGVyQWxsKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>