<?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>146781</bug_id>
          
          <creation_ts>2015-07-09 05:31:06 -0700</creation_ts>
          <short_desc>[GTK] Add API to allow executing editing commands that require an argument</short_desc>
          <delta_ts>2015-07-23 01:24:55 -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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>145875</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>darin</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcrha</cc>
    
    <cc>svillar</cc>
    
    <cc>tpopela</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1108185</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-09 05:31:06 -0700</bug_when>
    <thetext>Commands like InsertImage or CreateLink receive an argument, but we only have webkit_web_view_execute_editing_command() that doesn&apos;t receive any argument. We need to add webkit_web_view_execute_editing_command_with_argument() for those commands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108186</commentid>
    <comment_count>1</comment_count>
      <attachid>256480</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-09 05:36:53 -0700</bug_when>
    <thetext>Created attachment 256480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109860</commentid>
    <comment_count>2</comment_count>
      <attachid>256480</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2015-07-16 06:34:45 -0700</bug_when>
    <thetext>Comment on attachment 256480
Patch

Is a single argument the only possibility, or are there editing commands that may take 2 or more?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109862</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-16 06:50:16 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 256480 [details]
&gt; Patch
&gt; 
&gt; Is a single argument the only possibility, or are there editing commands
&gt; that may take 2 or more?

Thanks for looking at it. There are no commands with more than one argument. If that eventually happens, we could add with_arguments() receiving the number of arguments and ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110652</commentid>
    <comment_count>4</comment_count>
      <attachid>256480</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2015-07-20 10:45:13 -0700</bug_when>
    <thetext>Comment on attachment 256480
Patch

OK =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110901</commentid>
    <comment_count>5</comment_count>
      <attachid>257163</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-20 23:14:14 -0700</bug_when>
    <thetext>Created attachment 257163
Patch for EWS

Anders, Darin, could you guys confirm you are ok with the cross-platform changes? It simply adds an editing command argument parameter to the ExecuteEditCommand message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110916</commentid>
    <comment_count>6</comment_count>
      <attachid>257169</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-21 00:34:21 -0700</bug_when>
    <thetext>Created attachment 257169
Try to fix IOS build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111405</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-07-22 13:47:50 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Anders, Darin, could you guys confirm you are ok with the cross-platform
&gt; changes? It simply adds an editing command argument parameter to the
&gt; ExecuteEditCommand message.

That part of the change looks fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111610</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-23 01:24:55 -0700</bug_when>
    <thetext>Committed r187220: &lt;http://trac.webkit.org/changeset/187220&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256480</attachid>
            <date>2015-07-09 05:36:53 -0700</date>
            <delta_ts>2015-07-20 23:14:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-command-argument.diff</filename>
            <type>text/plain</type>
            <size>19092</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwY2M0OTVlLi4wMTFlMjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQg
QEAKKzIwMTUtMDctMDkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gYWxsb3cgZXhlY3V0aW5nIGVkaXRpbmcgY29t
bWFuZHMgdGhhdCByZXF1aXJlIGFuIGFyZ3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY3ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDb21tYW5kcyBsaWtlIEluc2VydEltYWdlIG9yIENyZWF0
ZUxpbmsgcmVjZWl2ZSBhbiBhcmd1bWVudCwgYnV0CisgICAgICAgIHdlIG9ubHkgaGF2ZSB3ZWJr
aXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmQoKSB0aGF0CisgICAgICAgIGRvZXNu
J3QgcmVjZWl2ZSBhbnkgYXJndW1lbnQuIFRoaXMgcGF0Y2ggYWRkcworICAgICAgICB3ZWJraXRf
d2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmRfd2l0aF9hcmd1bWVudCgpIGZvciB0aG9z
ZQorICAgICAgICBjb21tYW5kcy4gSXQgYWxzbyBhZGRzIFdFQktJVF9FRElUSU5HX0NPTU1BTkRf
SU5TRVJUX0lNQUdFIGFuZAorICAgICAgICBXRUJLSVRfRURJVElOR19DT01NQU5EX0NSRUFURV9M
SU5LIHRvIHRoZSBwcmVkZWZpbmVkIGVkaXRpbmcgY29tbWFuZHMuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRFZGl0aW5nQ29tbWFuZHMuaDogQWRkCisgICAgICAgIFdFQktJ
VF9FRElUSU5HX0NPTU1BTkRfSU5TRVJUX0lNQUdFIGFuZCBXRUJLSVRfRURJVElOR19DT01NQU5E
X0NSRUFURV9MSU5LLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcu
Y3BwOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kX3dp
dGhfYXJndW1lbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rp
b25zLnR4dDogQWRkIG5ldyBzeW1ib2xzLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmV4ZWN1dGVFZGl0Q29tbWFu
ZCk6IFBhc3MgYWxzbyB0aGUgYXJndW1lbnQKKyAgICAgICAgdG8gdGhlIG1lc3NhZ2UuCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZXhlY3V0ZUVkaXRD
b21tYW5kKTogQWRkIHRoZSBhcmd1bWVudCBwYXJhbWV0ZXIKKyAgICAgICAgdG8gdGhlIG1lc3Nh
Z2UgaGFuZGxlci4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOiBBZGQgYXJndW1l
bnQgcGFyYW1ldGVyCisgICAgICAgIHRvIEV4ZWN1dGVFZGl0Q29tbWFuZCBtZXNzYWdlLgorCiAy
MDE1LTA2LTExICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXSBBZGQgQVBJIHRvIGJlIG5vdGlmaWVkIGFib3V0IGVkaXRvciBzdGF0ZSBj
aGFuZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRFZGl0aW5nQ29tbWFuZHMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEVkaXRpbmdDb21tYW5kcy5oCmluZGV4IDQzNzM5NTcuLmEzYmQwZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVkaXRpbmdDb21tYW5kcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVkaXRpbmdDb21t
YW5kcy5oCkBAIC05NCw2ICs5NCwzMSBAQCBHX0JFR0lOX0RFQ0xTCiAgKi8KICNkZWZpbmUgV0VC
S0lUX0VESVRJTkdfQ09NTUFORF9SRURPICJSZWRvIgogCisvKioKKyAqIFdFQktJVF9FRElUSU5H
X0NPTU1BTkRfSU5TRVJUX0lNQUdFOgorICoKKyAqIFRoZSBpbnNlcnQgaW1hZ2UgY29tbWFuZC4g
Q3JlYXRlcyBhbiBpbWFnZSBlbGVtZW50IHRoYXQgaXMgaW5zZXJ0ZWQgYXQKKyAqIHRoZSBjdXJy
ZW50IGN1cnNvciBwb3NpdGlvbi4gSXQgcmVjZWl2ZXMgYW4gVVJJIGFzIGFyZ3VtZW50LAorICog
dGhhdCBpcyB1c2VkIGFzIHRoZSBpbWFnZSBzb3VyY2UuIFRoaXMgY29tbWFuZCBzaG91bGQgYmUg
ZXhlY3V0ZWQgd2l0aAorICogd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5k
X3dpdGhfYXJndW1lbnQoKS4KKyAqCisgKiBTaW5jZTogMi4xMAorICovCisjZGVmaW5lIFdFQktJ
VF9FRElUSU5HX0NPTU1BTkRfSU5TRVJUX0lNQUdFICJJbnNlcnRJbWFnZSIKKworLyoqCisgKiBX
RUJLSVRfRURJVElOR19DT01NQU5EX0NSRUFURV9MSU5LOgorICoKKyAqIFRoZSBjcmVhdGUgbGlu
ayBjb21tYW5kLiBDcmVhdGVzIGEgbGluayBlbG1lbnQgdGhzdCBpcyBpbnNlcnRlZCBhdAorICog
dGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uLiBJZiB0aGVyZSdzIGEgc2VsZWN0aW9uLCB0aGUg
c2VsZWN0ZWQgdGV4dAorICogd2lsbCBiZSB1c2VkIGFzIHRoZSBsaW5rIHRleHQsIG90aGVyd2lz
ZSB0aGUgVVJMIGl0c2VsZiB3aWxsIGJlIHVzZWQuCisgKiBJdCByZWNlaXZlcyB0aGUgbGluayBV
UkwgYXMgYXJndW1lbnQuIFRoaXMgY29tbWFuZCBzaG91bGQgYmUgZXhlY3V0ZWQKKyAqIHdpdGgg
d2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kX3dpdGhfYXJndW1lbnQoKQor
ICoKKyAqIFNpbmNlOiAyLjEwCisgKi8KKyNkZWZpbmUgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9D
UkVBVEVfTElOSyAiQ3JlYXRlTGluayIKKwogR19FTkRfREVDTFMKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4
IDI2NmQyMzkuLmViODRiNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCkBAIC0yOTQ1LDYgKzI5NDUsMjcgQEAgdm9pZCB3ZWJr
aXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmQoV2ViS2l0V2ViVmlldyogd2ViVmll
dywgY29uc3QgY2hhcioKIH0KIAogLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0
aW5nX2NvbW1hbmRfd2l0aF9hcmd1bWVudDoKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmll
dworICogQGNvbW1hbmQ6IHRoZSBjb21tYW5kIHRvIGV4ZWN1dGUKKyAqIEBhcmd1bWVudDogdGhl
IGNvbW1hbmQgYXJndW1lbnQKKyAqCisgKiBSZXF1ZXN0IHRvIGV4ZWN1dGUgdGhlIGdpdmVuIEBj
b21tYW5kIHdpdGggQGFyZ3VtZW50IGZvciBAd2ViX3ZpZXcuIFlvdSBjYW4gdXNlCisgKiB3ZWJr
aXRfd2ViX3ZpZXdfY2FuX2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kKCkgdG8gY2hlY2sgd2hldGhl
cgorICogaXQncyBwb3NzaWJsZSB0byBleGVjdXRlIHRoZSBjb21tYW5kLgorICoKKyAqIFNpbmNl
OiAyLjEwCisgKi8KK3ZvaWQgd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5k
X3dpdGhfYXJndW1lbnQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgY2hhciogY29tbWFu
ZCwgY29uc3QgY2hhciogYXJndW1lbnQpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRf
SVNfV0VCX1ZJRVcod2ViVmlldykpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29tbWFuZCk7Cisg
ICAgZ19yZXR1cm5faWZfZmFpbChhcmd1bWVudCk7CisKKyAgICBnZXRQYWdlKHdlYlZpZXcpLT5l
eGVjdXRlRWRpdENvbW1hbmQoU3RyaW5nOjpmcm9tVVRGOChjb21tYW5kKSwgU3RyaW5nOjpmcm9t
VVRGOChhcmd1bWVudCkpOworfQorCisvKioKICAqIHdlYmtpdF93ZWJfdmlld19nZXRfZmluZF9j
b250cm9sbGVyOgogICogQHdlYl92aWV3OiB0aGUgI1dlYktpdFdlYlZpZXcKICAqCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKaW5kZXggM2E3
NTNjMC4uOGRiOTY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXcuaApAQCAtMzkxLDYgKzM5MSwxMSBAQCBXRUJLSVRfQVBJIHZvaWQKIHdl
YmtpdF93ZWJfdmlld19leGVjdXRlX2VkaXRpbmdfY29tbWFuZCAgICAgICAgICAgICAgKFdlYktp
dFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICAq
Y29tbWFuZCk7CiAKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRp
dGluZ19jb21tYW5kX3dpdGhfYXJndW1lbnQoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2Vi
X3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBjaGFyICAgICAgICAgICAgICAgICpjb21tYW5kLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAg
ICAgICAgICAqYXJndW1lbnQpOworCiBXRUJLSVRfQVBJIFdlYktpdEZpbmRDb250cm9sbGVyICoK
IHdlYmtpdF93ZWJfdmlld19nZXRfZmluZF9jb250cm9sbGVyICAgICAgICAgICAgICAgICAgKFdl
YktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50
eHQgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4w
LXNlY3Rpb25zLnR4dAppbmRleCBjNTk0YmYzLi4xNTJkYjgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGst
NC4wLXNlY3Rpb25zLnR4dApAQCAtMTQ0LDYgKzE0NCw4IEBAIFdFQktJVF9FRElUSU5HX0NPTU1B
TkRfUEFTVEUKIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfU0VMRUNUX0FMTAogV0VCS0lUX0VESVRJ
TkdfQ09NTUFORF9VTkRPCiBXRUJLSVRfRURJVElOR19DT01NQU5EX1JFRE8KK1dFQktJVF9FRElU
SU5HX0NPTU1BTkRfSU5TRVJUX0lNQUdFCitXRUJLSVRfRURJVElOR19DT01NQU5EX0NSRUFURV9M
SU5LCiAKIDxTVUJTRUNUSU9OPgogd2Via2l0X3dlYl92aWV3X25ldwpAQCAtMTg1LDYgKzE4Nyw3
IEBAIHdlYmtpdF93ZWJfdmlld19nZXRfem9vbV9sZXZlbAogd2Via2l0X3dlYl92aWV3X2Nhbl9l
eGVjdXRlX2VkaXRpbmdfY29tbWFuZAogd2Via2l0X3dlYl92aWV3X2Nhbl9leGVjdXRlX2VkaXRp
bmdfY29tbWFuZF9maW5pc2gKIHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2VkaXRpbmdfY29tbWFu
ZAord2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kX3dpdGhfYXJndW1lbnQK
IHdlYmtpdF93ZWJfdmlld19nZXRfZmluZF9jb250cm9sbGVyCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X2luc3BlY3Rvcgogd2Via2l0X3dlYl92aWV3X2dldF9qYXZhc2NyaXB0X2dsb2JhbF9jb250ZXh0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGIzZGZiZGUu
LmZmMzRlNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC0xNTIzLDcgKzE1MjMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWFpbnRhaW5zSW5hY3Rp
dmVTZWxlY3Rpb24oYm9vbCBuZXdWYWx1ZSkKICAgICBtX21haW50YWluc0luYWN0aXZlU2VsZWN0
aW9uID0gbmV3VmFsdWU7CiB9CiAgICAgCi12b2lkIFdlYlBhZ2VQcm94eTo6ZXhlY3V0ZUVkaXRD
b21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZXhl
Y3V0ZUVkaXRDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIGNvbnN0IFN0cmluZyYg
YXJndW1lbnQpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gaWdub3JlU3Bl
bGxpbmdDb21tYW5kTmFtZShBU0NJSUxpdGVyYWwoImlnbm9yZVNwZWxsaW5nIikpOwogCkBAIC0x
NTMzLDcgKzE1MzMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZXhlY3V0ZUVkaXRDb21tYW5kKGNv
bnN0IFN0cmluZyYgY29tbWFuZE5hbWUpCiAgICAgaWYgKGNvbW1hbmROYW1lID09IGlnbm9yZVNw
ZWxsaW5nQ29tbWFuZE5hbWUpCiAgICAgICAgICsrbV9wZW5kaW5nTGVhcm5Pcklnbm9yZVdvcmRN
ZXNzYWdlQ291bnQ7CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkV4
ZWN1dGVFZGl0Q29tbWFuZChjb21tYW5kTmFtZSksIG1fcGFnZUlEKTsKKyAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkV4ZWN1dGVFZGl0Q29tbWFuZChjb21tYW5kTmFtZSwg
YXJndW1lbnQpLCBtX3BhZ2VJRCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRFZGl0YWJs
ZShib29sIGVkaXRhYmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmlu
ZGV4IDQ5MTJhYjkuLjg1MzI3ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTQzNyw3ICs0MzcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZE1JTUVUeXBl
V2l0aEN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKIAotICAg
IHZvaWQgZXhlY3V0ZUVkaXRDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUpOworICAg
IHZvaWQgZXhlY3V0ZUVkaXRDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIGNvbnN0
IFN0cmluZyYgYXJndW1lbnQgPSBTdHJpbmcoKSk7CiAgICAgdm9pZCB2YWxpZGF0ZUNvbW1hbmQo
Y29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkIChjb25zdCBTdHJp
bmcmLCBib29sLCBpbnQzMl90LCBDYWxsYmFja0Jhc2U6OkVycm9yKT4pOwogCiAgICAgY29uc3Qg
RWRpdG9yU3RhdGUmIGVkaXRvclN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9lZGl0b3JTdGF0ZTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IGZjNDUxNmMuLmUxOGMzZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKQEAgLTIxNDEsOSArMjE0MSw5IEBAIHZvaWQgV2ViUGFnZTo6dmFsaWRh
dGVDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpWYWxpZGF0ZUNvbW1hbmRDYWxsYmFj
ayhjb21tYW5kTmFtZSwgaXNFbmFibGVkLCBzdGF0ZSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lk
IFdlYlBhZ2U6OmV4ZWN1dGVFZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lKQor
dm9pZCBXZWJQYWdlOjpleGVjdXRlRWRpdENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFt
ZSwgY29uc3QgU3RyaW5nJiBhcmd1bWVudCkKIHsKLSAgICBleGVjdXRlRWRpdGluZ0NvbW1hbmQo
Y29tbWFuZE5hbWUsIFN0cmluZygpKTsKKyAgICBleGVjdXRlRWRpdGluZ0NvbW1hbmQoY29tbWFu
ZE5hbWUsIGFyZ3VtZW50KTsKIH0KIAogdm9pZCBXZWJQYWdlOjpyZXN0b3JlU2Vzc2lvbihjb25z
dCBWZWN0b3I8QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlPiYgaXRlbVN0YXRlcykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGYyNmM0YjUuLjQ3ZjU4
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAt
OTY0LDcgKzk2NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVJc0luV2luZG93KGJvb2wg
aXNJbml0aWFsU3RhdGUgPSBmYWxzZSk7CiAgICAgdm9pZCBzZXRWaWV3U3RhdGUoV2ViQ29yZTo6
Vmlld1N0YXRlOjpGbGFncywgYm9vbCB3YW50c0RpZFVwZGF0ZVZpZXdTdGF0ZSwgY29uc3QgVmVj
dG9yPHVpbnQ2NF90PiYgY2FsbGJhY2tJRHMpOwogICAgIHZvaWQgdmFsaWRhdGVDb21tYW5kKGNv
bnN0IFN0cmluZyYsIHVpbnQ2NF90KTsKLSAgICB2b2lkIGV4ZWN1dGVFZGl0Q29tbWFuZChjb25z
dCBTdHJpbmcmKTsKKyAgICB2b2lkIGV4ZWN1dGVFZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNldEVkaXRhYmxlKGJvb2wpOwogCiAgICAgdm9pZCB1
cGRhdGVVc2VyQWN0aXZpdHkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMDVhODllYy4uN2M5ZjliNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KQEAgLTE4Niw3ICsxODYsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJl
Y2VpdmVyIHsKIAogICAgIFNldEVkaXRhYmxlKGJvb2wgZWRpdGFibGUpCiAgICAgVmFsaWRhdGVD
b21tYW5kKFN0cmluZyBuYW1lLCB1aW50NjRfdCBjYWxsYmFja0lEKQotICAgIEV4ZWN1dGVFZGl0
Q29tbWFuZChTdHJpbmcgbmFtZSkKKyAgICBFeGVjdXRlRWRpdENvbW1hbmQoU3RyaW5nIG5hbWUs
IFN0cmluZyBhcmd1bWVudCkKIAogICAgIERpZFJlbW92ZUVkaXRDb21tYW5kKHVpbnQ2NF90IGNv
bW1hbmRJRCkKICAgICBSZWFwcGx5RWRpdENvbW1hbmQodWludDY0X3QgY29tbWFuZElEKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGY1ZjFmNjcu
Ljk2ZGNhYTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMyBAQAorMjAxNS0wNy0wOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIEFQSSB0byBhbGxvdyBleGVj
dXRpbmcgZWRpdGluZyBjb21tYW5kcyB0aGF0IHJlcXVpcmUgYW4gYXJndW1lbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Njc4MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBidXR0b25zIHRvIGlu
c2VydCBpbWFnZS9saW5rIHRvIHRoZSBNaW5pQnJvd3NlciBlZGl0IHRvb2xiYXIsCisgICAgICAg
IGFuZCB0ZXN0IGNhc2VzIGZvciBpbnNlcnQgaW1hZ2UvbGluayBjb21tYW5kcyB0b28uCisKKyAg
ICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jOgorICAgICAgICAoaW5zZXJ0
SW1hZ2VDb21tYW5kQ2FsbGJhY2spOgorICAgICAgICAoaW5zZXJ0TGlua0NvbW1hbmRDYWxsYmFj
ayk6CisgICAgICAgIChicm93c2VyV2luZG93U2V0dXBFZGl0b3JUb29sYmFyKToKKyAgICAgICAg
KGJyb3dzZXJXaW5kb3dDb25zdHJ1Y3RlZCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNwcDoKKyAgICAgICAgKHRlc3RXZWJWaWV3
RWRpdG9ySW5zZXJ0SW1hZ2UpOgorICAgICAgICAodGVzdFdlYlZpZXdFZGl0b3JDcmVhdGVMaW5r
KToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisKIDIwMTUtMDYtMTEgIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gYmUg
bm90aWZpZWQgYWJvdXQgZWRpdG9yIHN0YXRlIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL01p
bmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJv
d3NlcldpbmRvdy5jCmluZGV4IGQwN2UzZjkuLjg4MDc5MWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01p
bmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3Rr
L0Jyb3dzZXJXaW5kb3cuYwpAQCAtNzAwLDYgKzcwMCw0NiBAQCBzdGF0aWMgdm9pZCBlZGl0aW5n
Q29tbWFuZENhbGxiYWNrKEd0a1dpZGdldCp3aWRnZXQsIEJyb3dzZXJXaW5kb3cgKndpbmRvdykK
ICAgICB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmQod2luZG93LT53ZWJW
aWV3LCBndGtfd2lkZ2V0X2dldF9uYW1lKHdpZGdldCkpOwogfQogCitzdGF0aWMgdm9pZCBpbnNl
cnRJbWFnZUNvbW1hbmRDYWxsYmFjayhHdGtXaWRnZXQqd2lkZ2V0LCBCcm93c2VyV2luZG93ICp3
aW5kb3cpCit7CisgICAgR3RrV2lkZ2V0ICpmaWxlQ2hvb3NlciA9IGd0a19maWxlX2Nob29zZXJf
ZGlhbG9nX25ldygiSW5zZXJ0IEltYWdlIiwgR1RLX1dJTkRPVyh3aW5kb3cpLCBHVEtfRklMRV9D
SE9PU0VSX0FDVElPTl9PUEVOLAorICAgICAgICAiQ2FuY2VsIiwgR1RLX1JFU1BPTlNFX0NBTkNF
TCwgIk9wZW4iLCBHVEtfUkVTUE9OU0VfQUNDRVBULCBOVUxMKTsKKworICAgIEd0a0ZpbGVGaWx0
ZXIgKmZpbHRlciA9IGd0a19maWxlX2ZpbHRlcl9uZXcoKTsKKyAgICBndGtfZmlsZV9maWx0ZXJf
c2V0X25hbWUoZmlsdGVyLCAiSW1hZ2VzIik7CisgICAgZ3RrX2ZpbGVfZmlsdGVyX2FkZF9waXhi
dWZfZm9ybWF0cyhmaWx0ZXIpOworICAgIGd0a19maWxlX2Nob29zZXJfc2V0X2ZpbHRlcihHVEtf
RklMRV9DSE9PU0VSKGZpbGVDaG9vc2VyKSwgZmlsdGVyKTsKKworICAgIGlmIChndGtfZGlhbG9n
X3J1bihHVEtfRElBTE9HKGZpbGVDaG9vc2VyKSkgPT0gR1RLX1JFU1BPTlNFX0FDQ0VQVCkgewor
ICAgICAgICBjaGFyICp1cmkgPSBndGtfZmlsZV9jaG9vc2VyX2dldF91cmkoR1RLX0ZJTEVfQ0hP
T1NFUihmaWxlQ2hvb3NlcikpOworICAgICAgICBpZiAodXJpKSB7CisgICAgICAgICAgICB3ZWJr
aXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmRfd2l0aF9hcmd1bWVudCh3aW5kb3ct
PndlYlZpZXcsIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfSU5TRVJUX0lNQUdFLCB1cmkpOworICAg
ICAgICAgICAgZ19mcmVlKHVyaSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBndGtfd2lkZ2V0
X2Rlc3Ryb3koZmlsZUNob29zZXIpOworfQorCitzdGF0aWMgdm9pZCBpbnNlcnRMaW5rQ29tbWFu
ZENhbGxiYWNrKEd0a1dpZGdldCp3aWRnZXQsIEJyb3dzZXJXaW5kb3cgKndpbmRvdykKK3sKKyAg
ICBHdGtXaWRnZXQgKmRpYWxvZyA9IGd0a19kaWFsb2dfbmV3X3dpdGhfYnV0dG9ucygiSW5zZXJ0
IExpbmsiLCBHVEtfV0lORE9XKHdpbmRvdyksIEdUS19ESUFMT0dfTU9EQUwsICJJbnNlcnQiLCBH
VEtfUkVTUE9OU0VfQUNDRVBULCBOVUxMKTsKKyAgICBndGtfZGlhbG9nX3NldF9kZWZhdWx0X3Jl
c3BvbnNlKEdUS19ESUFMT0coZGlhbG9nKSwgR1RLX1JFU1BPTlNFX0FDQ0VQVCk7CisgICAgR3Rr
V2lkZ2V0ICplbnRyeSA9IGd0a19lbnRyeV9uZXcoKTsKKyAgICBndGtfZW50cnlfc2V0X3BsYWNl
aG9sZGVyX3RleHQoR1RLX0VOVFJZKGVudHJ5KSwgIlVSTCIpOworICAgIGd0a19lbnRyeV9zZXRf
YWN0aXZhdGVzX2RlZmF1bHQoR1RLX0VOVFJZKGVudHJ5KSwgVFJVRSk7CisgICAgZ3RrX2NvbnRh
aW5lcl9hZGQoR1RLX0NPTlRBSU5FUihndGtfZGlhbG9nX2dldF9jb250ZW50X2FyZWEoR1RLX0RJ
QUxPRyhkaWFsb2cpKSksIGVudHJ5KTsKKyAgICBndGtfd2lkZ2V0X3Nob3coZW50cnkpOworCisg
ICAgaWYgKGd0a19kaWFsb2dfcnVuKEdUS19ESUFMT0coZGlhbG9nKSkgPT0gR1RLX1JFU1BPTlNF
X0FDQ0VQVCkgeworICAgICAgICBjb25zdCBjaGFyICp1cmwgPSBndGtfZW50cnlfZ2V0X3RleHQo
R1RLX0VOVFJZKGVudHJ5KSk7CisgICAgICAgIGlmICh1cmwgJiYgKnVybCkKKyAgICAgICAgICAg
IHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2VkaXRpbmdfY29tbWFuZF93aXRoX2FyZ3VtZW50KHdp
bmRvdy0+d2ViVmlldywgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9DUkVBVEVfTElOSywgdXJsKTsK
KyAgICB9CisKKyAgICBndGtfd2lkZ2V0X2Rlc3Ryb3koZGlhbG9nKTsKK30KKwogc3RhdGljIHZv
aWQgYnJvd3NlcldpbmRvd0VkaXRpbmdDb21tYW5kVG9nZ2xlQnV0dG9uU2V0QWN0aXZlKEJyb3dz
ZXJXaW5kb3cgKndpbmRvdywgR3RrV2lkZ2V0ICpidXR0b24sIGdib29sZWFuIGFjdGl2ZSkKIHsK
ICAgICBnX3NpZ25hbF9oYW5kbGVyc19ibG9ja19ieV9mdW5jKGJ1dHRvbiwgR19DQUxMQkFDSyhl
ZGl0aW5nQ29tbWFuZENhbGxiYWNrKSwgd2luZG93KTsKQEAgLTg3OSw2ICs5MTksMjIgQEAgc3Rh
dGljIHZvaWQgYnJvd3NlcldpbmRvd1NldHVwRWRpdG9yVG9vbGJhcihCcm93c2VyV2luZG93ICp3
aW5kb3cpCiAgICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIpLCBpdGVt
LCAtMSk7CiAgICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQoaXRlbSkpOwogCisgICAgaXRl
bSA9IGd0a19zZXBhcmF0b3JfdG9vbF9pdGVtX25ldygpOworICAgIGd0a190b29sYmFyX2luc2Vy
dChHVEtfVE9PTEJBUih0b29sYmFyKSwgaXRlbSwgLTEpOworICAgIGd0a193aWRnZXRfc2hvdyhH
VEtfV0lER0VUKGl0ZW0pKTsKKworICAgIGl0ZW0gPSBndGtfdG9vbF9idXR0b25fbmV3KE5VTEws
IE5VTEwpOworICAgIGd0a190b29sX2J1dHRvbl9zZXRfaWNvbl9uYW1lKEdUS19UT09MX0JVVFRP
TihpdGVtKSwgImluc2VydC1pbWFnZSIpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1Qo
aXRlbSksICJjbGlja2VkIiwgR19DQUxMQkFDSyhpbnNlcnRJbWFnZUNvbW1hbmRDYWxsYmFjayks
IHdpbmRvdyk7CisgICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIpLCBp
dGVtLCAtMSk7CisgICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQoaXRlbSkpOworCisgICAg
aXRlbSA9IGd0a190b29sX2J1dHRvbl9uZXcoTlVMTCwgTlVMTCk7CisgICAgZ3RrX3Rvb2xfYnV0
dG9uX3NldF9pY29uX25hbWUoR1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCAiaW5zZXJ0LWxpbmsiKTsK
KyAgICBnX3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKGl0ZW0pLCAiY2xpY2tlZCIsIEdfQ0FMTEJB
Q0soaW5zZXJ0TGlua0NvbW1hbmRDYWxsYmFjayksIHdpbmRvdyk7CisgICAgZ3RrX3Rvb2xiYXJf
aW5zZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7CisgICAgZ3RrX3dpZGdldF9z
aG93KEdUS19XSURHRVQoaXRlbSkpOworCiAgICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1go
d2luZG93LT5tYWluQm94KSwgdG9vbGJhciwgRkFMU0UsIEZBTFNFLCAwKTsKICAgICBndGtfd2lk
Z2V0X3Nob3codG9vbGJhcik7CiB9CkBAIC0xMDg3LDcgKzExNDMsNyBAQCBzdGF0aWMgdm9pZCBi
cm93c2VyV2luZG93Q29uc3RydWN0ZWQoR09iamVjdCAqZ09iamVjdCkKICAgICBndGtfd2lkZ2V0
X3Nob3coR1RLX1dJREdFVCh3aW5kb3ctPndlYlZpZXcpKTsKIAogICAgIGlmICh3ZWJraXRfd2Vi
X3ZpZXdfaXNfZWRpdGFibGUod2luZG93LT53ZWJWaWV3KSkKLSAgICAgICAgd2Via2l0X3dlYl92
aWV3X2xvYWRfaHRtbCh3aW5kb3ctPndlYlZpZXcsICI8aHRtbD48L2h0bWw+IiwgTlVMTCk7Cisg
ICAgICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX2h0bWwod2luZG93LT53ZWJWaWV3LCAiPGh0bWw+
PC9odG1sPiIsICJmaWxlOi8vLyIpOwogfQogCiBzdGF0aWMgdm9pZCBicm93c2VyX3dpbmRvd19j
bGFzc19pbml0KEJyb3dzZXJXaW5kb3dDbGFzcyAqa2xhc3MpCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYlZpZXdFZGl0b3IuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNwcApp
bmRleCAxMDg0ZGYyLi5kMjBjNzk0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJHdGsvVGVzdFdlYlZpZXdFZGl0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViVmlld0VkaXRvci5jcHAKQEAgLTQwMSw2ICs0
MDEsNTggQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdFZGl0b3JFZGl0b3JTdGF0ZVR5cGluZ0F0
dHJpYnV0ZXMoRWRpdG9yVGVzdCogdGVzdCwgZ2NvbnMKICAgICBnX2Fzc2VydF9jbXB1aW50KHR5
cGluZ0F0dHJpYnV0ZXMsID09LCBXRUJLSVRfRURJVE9SX1RZUElOR19BVFRSSUJVVEVfTk9ORSk7
CiB9CiAKK3N0YXRpYyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9ySW5zZXJ0SW1hZ2UoRWRpdG9yVGVz
dCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICB0ZXN0LT5sb2FkSHRtbCgiPGh0bWw+PGJv
ZHk+PC9ib2R5PjwvaHRtbD4iLCAiZmlsZTovLy8iKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2Fk
RmluaXNoZWQoKTsKKyAgICB0ZXN0LT5zZXRFZGl0YWJsZSh0cnVlKTsKKworICAgIEdVbmlxdWVQ
dHI8Y2hhcj4gaW1hZ2VQYXRoKGdfYnVpbGRfZmlsZW5hbWUoVGVzdDo6Z2V0UmVzb3VyY2VzRGly
KCkuZGF0YSgpLCAiYmxhbmsuaWNvIiwgbnVsbHB0cikpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4g
aW1hZ2VVUkkoZ19maWxlbmFtZV90b191cmkoaW1hZ2VQYXRoLmdldCgpLCBudWxscHRyLCBudWxs
cHRyKSk7CisgICAgd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kX3dpdGhf
YXJndW1lbnQodGVzdC0+bV93ZWJWaWV3LCBXRUJLSVRfRURJVElOR19DT01NQU5EX0lOU0VSVF9J
TUFHRSwgaW1hZ2VVUkkuZ2V0KCkpOworICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsK
KyAgICBXZWJLaXRKYXZhc2NyaXB0UmVzdWx0KiBqYXZhc2NyaXB0UmVzdWx0ID0gdGVzdC0+cnVu
SmF2YVNjcmlwdEFuZFdhaXRVbnRpbEZpbmlzaGVkKCJkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgnSU1HJylbMF0uc3JjIiwgJmVycm9yLm91dFB0cigpKTsKKyAgICBnX2Fzc2VydChqYXZh
c2NyaXB0UmVzdWx0KTsKKyAgICBnX2Fzc2VydCghZXJyb3IpOworICAgIEdVbmlxdWVQdHI8Y2hh
cj4gcmVzdWx0U3RyaW5nKFdlYlZpZXdUZXN0OjpqYXZhc2NyaXB0UmVzdWx0VG9DU3RyaW5nKGph
dmFzY3JpcHRSZXN1bHQpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIocmVzdWx0U3RyaW5nLmdldCgp
LCA9PSwgaW1hZ2VVUkkuZ2V0KCkpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0VkaXRv
ckNyZWF0ZUxpbmsoRWRpdG9yVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICB0ZXN0
LT5sb2FkSHRtbCgiPGh0bWw+PGJvZHkgb25sb2FkPVwiZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCku
c2VsZWN0QWxsQ2hpbGRyZW4oZG9jdW1lbnQuYm9keSk7XCI+d2Via2l0Z3RrLm9yZzwvYm9keT48
L2h0bWw+IiwgbnVsbHB0cik7CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7Cisg
ICAgdGVzdC0+c2V0RWRpdGFibGUodHJ1ZSk7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogd2Vi
a2l0R1RLVVJMID0gImh0dHA6Ly93d3cud2Via2l0Z3RrLm9yZy8iOworICAgIHdlYmtpdF93ZWJf
dmlld19leGVjdXRlX2VkaXRpbmdfY29tbWFuZF93aXRoX2FyZ3VtZW50KHRlc3QtPm1fd2ViVmll
dywgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9DUkVBVEVfTElOSywgd2Via2l0R1RLVVJMKTsKKyAg
ICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CisgICAgV2ViS2l0SmF2YXNjcmlwdFJlc3Vs
dCogamF2YXNjcmlwdFJlc3VsdCA9IHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5p
c2hlZCgiZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ0EnKVswXS5ocmVmOyIsICZlcnJv
ci5vdXRQdHIoKSk7CisgICAgZ19hc3NlcnQoamF2YXNjcmlwdFJlc3VsdCk7CisgICAgZ19hc3Nl
cnQoIWVycm9yKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IHJlc3VsdFN0cmluZyhXZWJWaWV3VGVz
dDo6amF2YXNjcmlwdFJlc3VsdFRvQ1N0cmluZyhqYXZhc2NyaXB0UmVzdWx0KSk7CisgICAgZ19h
c3NlcnRfY21wc3RyKHJlc3VsdFN0cmluZy5nZXQoKSwgPT0sIHdlYmtpdEdUS1VSTCk7CisgICAg
amF2YXNjcmlwdFJlc3VsdCA9IHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hl
ZCgiZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ0EnKVswXS5pbm5lclRleHQ7IiwgJmVy
cm9yLm91dFB0cigpKTsKKyAgICBnX2Fzc2VydChqYXZhc2NyaXB0UmVzdWx0KTsKKyAgICBnX2Fz
c2VydCghZXJyb3IpOworICAgIHJlc3VsdFN0cmluZy5yZXNldChXZWJWaWV3VGVzdDo6amF2YXNj
cmlwdFJlc3VsdFRvQ1N0cmluZyhqYXZhc2NyaXB0UmVzdWx0KSk7CisgICAgZ19hc3NlcnRfY21w
c3RyKHJlc3VsdFN0cmluZy5nZXQoKSwgPT0sICJ3ZWJraXRndGsub3JnIik7CisKKyAgICAvLyBX
aGVuIHRoZXJlIGlzbid0IHRleHQgc2VsZWN0ZWQsIHRoZSBVUkwgaXMgdXNlZCBhcyBsaW5rIHRl
eHQuCisgICAgd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kKHRlc3QtPm1f
d2ViVmlldywgIk1vdmVUb0VuZE9mTGluZSIpOworICAgIHdlYmtpdF93ZWJfdmlld19leGVjdXRl
X2VkaXRpbmdfY29tbWFuZF93aXRoX2FyZ3VtZW50KHRlc3QtPm1fd2ViVmlldywgV0VCS0lUX0VE
SVRJTkdfQ09NTUFORF9DUkVBVEVfTElOSywgd2Via2l0R1RLVVJMKTsKKyAgICBqYXZhc2NyaXB0
UmVzdWx0ID0gdGVzdC0+cnVuSmF2YVNjcmlwdEFuZFdhaXRVbnRpbEZpbmlzaGVkKCJkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnQScpWzFdLmhyZWY7IiwgJmVycm9yLm91dFB0cigpKTsK
KyAgICBnX2Fzc2VydChqYXZhc2NyaXB0UmVzdWx0KTsKKyAgICBnX2Fzc2VydCghZXJyb3IpOwor
ICAgIHJlc3VsdFN0cmluZy5yZXNldChXZWJWaWV3VGVzdDo6amF2YXNjcmlwdFJlc3VsdFRvQ1N0
cmluZyhqYXZhc2NyaXB0UmVzdWx0KSk7CisgICAgZ19hc3NlcnRfY21wc3RyKHJlc3VsdFN0cmlu
Zy5nZXQoKSwgPT0sIHdlYmtpdEdUS1VSTCk7CisgICAgamF2YXNjcmlwdFJlc3VsdCA9IHRlc3Qt
PnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hlZCgiZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoJ0EnKVsxXS5pbm5lclRleHQ7IiwgJmVycm9yLm91dFB0cigpKTsKKyAgICBnX2Fz
c2VydChqYXZhc2NyaXB0UmVzdWx0KTsKKyAgICBnX2Fzc2VydCghZXJyb3IpOworICAgIHJlc3Vs
dFN0cmluZy5yZXNldChXZWJWaWV3VGVzdDo6amF2YXNjcmlwdFJlc3VsdFRvQ1N0cmluZyhqYXZh
c2NyaXB0UmVzdWx0KSk7CisgICAgZ19hc3NlcnRfY21wc3RyKHJlc3VsdFN0cmluZy5nZXQoKSwg
PT0sIHdlYmtpdEdUS1VSTCk7Cit9CisKIHZvaWQgYmVmb3JlQWxsKCkKIHsKICAgICBFZGl0b3JU
ZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAiZWRpdGFibGUvZWRpdGFibGUiLCB0ZXN0V2ViVmll
d0VkaXRvckVkaXRhYmxlKTsKQEAgLTQwOSw2ICs0NjEsOCBAQCB2b2lkIGJlZm9yZUFsbCgpCiAg
ICAgRWRpdG9yVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgInNlbGVjdC1hbGwvbm9uLWVkaXRh
YmxlIiwgdGVzdFdlYlZpZXdFZGl0b3JTZWxlY3RBbGxOb25FZGl0YWJsZSk7CiAgICAgRWRpdG9y
VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgInNlbGVjdC1hbGwvZWRpdGFibGUiLCB0ZXN0V2Vi
Vmlld0VkaXRvclNlbGVjdEFsbEVkaXRhYmxlKTsKICAgICBFZGl0b3JUZXN0OjphZGQoIldlYktp
dFdlYlZpZXciLCAiZWRpdG9yLXN0YXRlL3R5cGluZy1hdHRyaWJ1dGVzIiwgdGVzdFdlYlZpZXdF
ZGl0b3JFZGl0b3JTdGF0ZVR5cGluZ0F0dHJpYnV0ZXMpOworICAgIEVkaXRvclRlc3Q6OmFkZCgi
V2ViS2l0V2ViVmlldyIsICJpbnNlcnQvaW1hZ2UiLCB0ZXN0V2ViVmlld0VkaXRvckluc2VydElt
YWdlKTsKKyAgICBFZGl0b3JUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAiaW5zZXJ0L2xpbmsi
LCB0ZXN0V2ViVmlld0VkaXRvckNyZWF0ZUxpbmspOwogfQogCiB2b2lkIGFmdGVyQWxsKCkK
</data>
<flag name="review"
          id="281569"
          type_id="1"
          status="+"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257163</attachid>
            <date>2015-07-20 23:14:14 -0700</date>
            <delta_ts>2015-07-21 00:34:21 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>wk2-editing-command-argument.diff</filename>
            <type>text/plain</type>
            <size>19222</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiZmI3ZTk1Li5jZWJiYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzYg
QEAKIDIwMTUtMDctMjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gYWxsb3cgZXhlY3V0aW5nIGVkaXRpbmcgY29t
bWFuZHMgdGhhdCByZXF1aXJlIGFuIGFyZ3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY3ODEKKworICAgICAgICBSZXZpZXdlZCBieSBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEuCisKKyAgICAgICAgQ29tbWFuZHMgbGlrZSBJbnNlcnRJbWFnZSBv
ciBDcmVhdGVMaW5rIHJlY2VpdmUgYW4gYXJndW1lbnQsIGJ1dAorICAgICAgICB3ZSBvbmx5IGhh
dmUgd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kKCkgdGhhdAorICAgICAg
ICBkb2Vzbid0IHJlY2VpdmUgYW55IGFyZ3VtZW50LiBUaGlzIHBhdGNoIGFkZHMKKyAgICAgICAg
d2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kX3dpdGhfYXJndW1lbnQoKSBm
b3IgdGhvc2UKKyAgICAgICAgY29tbWFuZHMuIEl0IGFsc28gYWRkcyBXRUJLSVRfRURJVElOR19D
T01NQU5EX0lOU0VSVF9JTUFHRSBhbmQKKyAgICAgICAgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9D
UkVBVEVfTElOSyB0byB0aGUgcHJlZGVmaW5lZCBlZGl0aW5nIGNvbW1hbmRzLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RWRpdGluZ0NvbW1hbmRzLmg6IEFkZAorICAgICAg
ICBXRUJLSVRfRURJVElOR19DT01NQU5EX0lOU0VSVF9JTUFHRSBhbmQgV0VCS0lUX0VESVRJTkdf
Q09NTUFORF9DUkVBVEVfTElOSy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2VkaXRpbmdfY29t
bWFuZF93aXRoX2FyZ3VtZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQu
MC1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgc3ltYm9scy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpleGVjdXRlRWRp
dENvbW1hbmQpOiBQYXNzIGFsc28gdGhlIGFyZ3VtZW50CisgICAgICAgIHRvIHRoZSBtZXNzYWdl
LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmV4ZWN1
dGVFZGl0Q29tbWFuZCk6IEFkZCB0aGUgYXJndW1lbnQgcGFyYW1ldGVyCisgICAgICAgIHRvIHRo
ZSBtZXNzYWdlIGhhbmRsZXIuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogQWRk
IGFyZ3VtZW50IHBhcmFtZXRlcgorICAgICAgICB0byBFeGVjdXRlRWRpdENvbW1hbmQgbWVzc2Fn
ZS4KKworMjAxNS0wNy0yMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+CisKICAgICAgICAgW0dUS10gQWRkIEFQSSB0byBiZSBub3RpZmllZCBhYm91dCBlZGl0b3Ig
c3RhdGUgY2hhbmdlcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ1ODc1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEVkaXRpbmdDb21tYW5kcy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0RWRpdGluZ0NvbW1hbmRzLmgKaW5kZXggNDM3Mzk1Ny4uYTNiZDBmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RWRpdGluZ0Nv
bW1hbmRzLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RWRp
dGluZ0NvbW1hbmRzLmgKQEAgLTk0LDYgKzk0LDMxIEBAIEdfQkVHSU5fREVDTFMKICAqLwogI2Rl
ZmluZSBXRUJLSVRfRURJVElOR19DT01NQU5EX1JFRE8gIlJlZG8iCiAKKy8qKgorICogV0VCS0lU
X0VESVRJTkdfQ09NTUFORF9JTlNFUlRfSU1BR0U6CisgKgorICogVGhlIGluc2VydCBpbWFnZSBj
b21tYW5kLiBDcmVhdGVzIGFuIGltYWdlIGVsZW1lbnQgdGhhdCBpcyBpbnNlcnRlZCBhdAorICog
dGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uLiBJdCByZWNlaXZlcyBhbiBVUkkgYXMgYXJndW1l
bnQsCisgKiB0aGF0IGlzIHVzZWQgYXMgdGhlIGltYWdlIHNvdXJjZS4gVGhpcyBjb21tYW5kIHNo
b3VsZCBiZSBleGVjdXRlZCB3aXRoCisgKiB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5n
X2NvbW1hbmRfd2l0aF9hcmd1bWVudCgpLgorICoKKyAqIFNpbmNlOiAyLjEwCisgKi8KKyNkZWZp
bmUgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9JTlNFUlRfSU1BR0UgIkluc2VydEltYWdlIgorCisv
KioKKyAqIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ1JFQVRFX0xJTks6CisgKgorICogVGhlIGNy
ZWF0ZSBsaW5rIGNvbW1hbmQuIENyZWF0ZXMgYSBsaW5rIGVsbWVudCB0aHN0IGlzIGluc2VydGVk
IGF0CisgKiB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24uIElmIHRoZXJlJ3MgYSBzZWxlY3Rp
b24sIHRoZSBzZWxlY3RlZCB0ZXh0CisgKiB3aWxsIGJlIHVzZWQgYXMgdGhlIGxpbmsgdGV4dCwg
b3RoZXJ3aXNlIHRoZSBVUkwgaXRzZWxmIHdpbGwgYmUgdXNlZC4KKyAqIEl0IHJlY2VpdmVzIHRo
ZSBsaW5rIFVSTCBhcyBhcmd1bWVudC4gVGhpcyBjb21tYW5kIHNob3VsZCBiZSBleGVjdXRlZAor
ICogd2l0aCB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmRfd2l0aF9hcmd1
bWVudCgpCisgKgorICogU2luY2U6IDIuMTAKKyAqLworI2RlZmluZSBXRUJLSVRfRURJVElOR19D
T01NQU5EX0NSRUFURV9MSU5LICJDcmVhdGVMaW5rIgorCiBHX0VORF9ERUNMUwogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5j
cHAKaW5kZXggMjY2ZDIzOS4uZWI4NGI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTI5NDUsNiArMjk0NSwyNyBAQCB2
b2lkIHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2VkaXRpbmdfY29tbWFuZChXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3LCBjb25zdCBjaGFyKgogfQogCiAvKioKKyAqIHdlYmtpdF93ZWJfdmlld19leGVj
dXRlX2VkaXRpbmdfY29tbWFuZF93aXRoX2FyZ3VtZW50OgorICogQHdlYl92aWV3OiBhICNXZWJL
aXRXZWJWaWV3CisgKiBAY29tbWFuZDogdGhlIGNvbW1hbmQgdG8gZXhlY3V0ZQorICogQGFyZ3Vt
ZW50OiB0aGUgY29tbWFuZCBhcmd1bWVudAorICoKKyAqIFJlcXVlc3QgdG8gZXhlY3V0ZSB0aGUg
Z2l2ZW4gQGNvbW1hbmQgd2l0aCBAYXJndW1lbnQgZm9yIEB3ZWJfdmlldy4gWW91IGNhbiB1c2UK
KyAqIHdlYmtpdF93ZWJfdmlld19jYW5fZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmQoKSB0byBjaGVj
ayB3aGV0aGVyCisgKiBpdCdzIHBvc3NpYmxlIHRvIGV4ZWN1dGUgdGhlIGNvbW1hbmQuCisgKgor
ICogU2luY2U6IDIuMTAKKyAqLwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5n
X2NvbW1hbmRfd2l0aF9hcmd1bWVudChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBjaGFy
KiBjb21tYW5kLCBjb25zdCBjaGFyKiBhcmd1bWVudCkKK3sKKyAgICBnX3JldHVybl9pZl9mYWls
KFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CisgICAgZ19yZXR1cm5faWZfZmFpbChjb21t
YW5kKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKGFyZ3VtZW50KTsKKworICAgIGdldFBhZ2Uod2Vi
VmlldyktPmV4ZWN1dGVFZGl0Q29tbWFuZChTdHJpbmc6OmZyb21VVEY4KGNvbW1hbmQpLCBTdHJp
bmc6OmZyb21VVEY4KGFyZ3VtZW50KSk7Cit9CisKKy8qKgogICogd2Via2l0X3dlYl92aWV3X2dl
dF9maW5kX2NvbnRyb2xsZXI6CiAgKiBAd2ViX3ZpZXc6IHRoZSAjV2ViS2l0V2ViVmlldwogICoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaApp
bmRleCAzYTc1M2MwLi44ZGI5Njg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCkBAIC0zOTEsNiArMzkxLDExIEBAIFdFQktJVF9BUEkg
dm9pZAogd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kICAgICAgICAgICAg
ICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAg
ICAgICAgICpjb21tYW5kKTsKIAorV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfZXhl
Y3V0ZV9lZGl0aW5nX2NvbW1hbmRfd2l0aF9hcmd1bWVudChXZWJLaXRXZWJWaWV3ICAgICAgICAg
ICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIgICAgICAgICAgICAgICAgKmNvbW1hbmQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
ICAgICAgICAgICAgICAgICphcmd1bWVudCk7CisKIFdFQktJVF9BUEkgV2ViS2l0RmluZENvbnRy
b2xsZXIgKgogd2Via2l0X3dlYl92aWV3X2dldF9maW5kX2NvbnRyb2xsZXIgICAgICAgICAgICAg
ICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNl
Y3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay00LjAtc2VjdGlvbnMudHh0CmluZGV4IDE4ZDg2MTEuLjllMWE5MjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2Vj
dGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Vi
a2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CkBAIC0xNDQsNiArMTQ0LDggQEAgV0VCS0lUX0VESVRJ
TkdfQ09NTUFORF9QQVNURQogV0VCS0lUX0VESVRJTkdfQ09NTUFORF9TRUxFQ1RfQUxMCiBXRUJL
SVRfRURJVElOR19DT01NQU5EX1VORE8KIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfUkVETworV0VC
S0lUX0VESVRJTkdfQ09NTUFORF9JTlNFUlRfSU1BR0UKK1dFQktJVF9FRElUSU5HX0NPTU1BTkRf
Q1JFQVRFX0xJTksKIAogPFNVQlNFQ1RJT04+CiB3ZWJraXRfd2ViX3ZpZXdfbmV3CkBAIC0xODUs
NiArMTg3LDcgQEAgd2Via2l0X3dlYl92aWV3X2dldF96b29tX2xldmVsCiB3ZWJraXRfd2ViX3Zp
ZXdfY2FuX2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kCiB3ZWJraXRfd2ViX3ZpZXdfY2FuX2V4ZWN1
dGVfZWRpdGluZ19jb21tYW5kX2ZpbmlzaAogd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGlu
Z19jb21tYW5kCit3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmRfd2l0aF9h
cmd1bWVudAogd2Via2l0X3dlYl92aWV3X2dldF9maW5kX2NvbnRyb2xsZXIKIHdlYmtpdF93ZWJf
dmlld19nZXRfaW5zcGVjdG9yCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2phdmFzY3JpcHRfZ2xvYmFs
X2NvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXgg
MTgwNmY2ZC4uNDc3NTgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKQEAgLTE1NDcsNyArMTU0Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNYWludGFp
bnNJbmFjdGl2ZVNlbGVjdGlvbihib29sIG5ld1ZhbHVlKQogICAgIG1fbWFpbnRhaW5zSW5hY3Rp
dmVTZWxlY3Rpb24gPSBuZXdWYWx1ZTsKIH0KICAgICAKLXZvaWQgV2ViUGFnZVByb3h5OjpleGVj
dXRlRWRpdENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpleGVjdXRlRWRpdENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgY29uc3Qg
U3RyaW5nJiBhcmd1bWVudCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBp
Z25vcmVTcGVsbGluZ0NvbW1hbmROYW1lKEFTQ0lJTGl0ZXJhbCgiaWdub3JlU3BlbGxpbmciKSk7
CiAKQEAgLTE1NTcsNyArMTU1Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpleGVjdXRlRWRpdENv
bW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSkKICAgICBpZiAoY29tbWFuZE5hbWUgPT0g
aWdub3JlU3BlbGxpbmdDb21tYW5kTmFtZSkKICAgICAgICAgKyttX3BlbmRpbmdMZWFybk9ySWdu
b3JlV29yZE1lc3NhZ2VDb3VudDsKIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6RXhlY3V0ZUVkaXRDb21tYW5kKGNvbW1hbmROYW1lKSwgbV9wYWdlSUQpOworICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RXhlY3V0ZUVkaXRDb21tYW5kKGNvbW1h
bmROYW1lLCBhcmd1bWVudCksIG1fcGFnZUlEKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnNl
dEVkaXRhYmxlKGJvb2wgZWRpdGFibGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggYmRjZTdjZC4uMzA3Y2ExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtNDM3LDcgKzQzNyw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRk
TUlNRVR5cGVXaXRoQ3VzdG9tQ29udGVudFByb3ZpZGVyKGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
OwogCi0gICAgdm9pZCBleGVjdXRlRWRpdENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFt
ZSk7CisgICAgdm9pZCBleGVjdXRlRWRpdENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFt
ZSwgY29uc3QgU3RyaW5nJiBhcmd1bWVudCA9IFN0cmluZygpKTsKICAgICB2b2lkIHZhbGlkYXRl
Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNv
bnN0IFN0cmluZyYsIGJvb2wsIGludDMyX3QsIENhbGxiYWNrQmFzZTo6RXJyb3IpPik7CiAKICAg
ICBjb25zdCBFZGl0b3JTdGF0ZSYgZWRpdG9yU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2VkaXRv
clN0YXRlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggNDcyYWVjZS4uMzcwMjAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjE0Nyw5ICsyMTQ3LDkgQEAgdm9pZCBXZWJQYWdl
Ojp2YWxpZGF0ZUNvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgdWludDY0X3QgY2Fs
bGJhY2tJRCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlZhbGlkYXRlQ29tbWFu
ZENhbGxiYWNrKGNvbW1hbmROYW1lLCBpc0VuYWJsZWQsIHN0YXRlLCBjYWxsYmFja0lEKSk7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6ZXhlY3V0ZUVkaXRDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFu
ZE5hbWUpCit2b2lkIFdlYlBhZ2U6OmV4ZWN1dGVFZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmIGNv
bW1hbmROYW1lLCBjb25zdCBTdHJpbmcmIGFyZ3VtZW50KQogewotICAgIGV4ZWN1dGVFZGl0aW5n
Q29tbWFuZChjb21tYW5kTmFtZSwgU3RyaW5nKCkpOworICAgIGV4ZWN1dGVFZGl0aW5nQ29tbWFu
ZChjb21tYW5kTmFtZSwgYXJndW1lbnQpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnJlc3RvcmVTZXNz
aW9uKGNvbnN0IFZlY3RvcjxCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU+JiBpdGVtU3RhdGVzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMDVlZWQ4
Yi4uODNjMDM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCkBAIC05NzAsNyArOTcwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUlzSW5XaW5k
b3coYm9vbCBpc0luaXRpYWxTdGF0ZSA9IGZhbHNlKTsKICAgICB2b2lkIHNldFZpZXdTdGF0ZShX
ZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzLCBib29sIHdhbnRzRGlkVXBkYXRlVmlld1N0YXRlLCBj
b25zdCBWZWN0b3I8dWludDY0X3Q+JiBjYWxsYmFja0lEcyk7CiAgICAgdm9pZCB2YWxpZGF0ZUNv
bW1hbmQoY29uc3QgU3RyaW5nJiwgdWludDY0X3QpOwotICAgIHZvaWQgZXhlY3V0ZUVkaXRDb21t
YW5kKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZXhlY3V0ZUVkaXRDb21tYW5kKGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0RWRpdGFibGUoYm9vbCk7CiAKICAg
ICB2b2lkIHVwZGF0ZVVzZXJBY3Rpdml0eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAzMTY0OGVkLi42ZDJl
MDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgpAQCAtMTg3LDcgKzE4Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2Ug
TGVnYWN5UmVjZWl2ZXIgewogCiAgICAgU2V0RWRpdGFibGUoYm9vbCBlZGl0YWJsZSkKICAgICBW
YWxpZGF0ZUNvbW1hbmQoU3RyaW5nIG5hbWUsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCi0gICAgRXhl
Y3V0ZUVkaXRDb21tYW5kKFN0cmluZyBuYW1lKQorICAgIEV4ZWN1dGVFZGl0Q29tbWFuZChTdHJp
bmcgbmFtZSwgU3RyaW5nIGFyZ3VtZW50KQogCiAgICAgRGlkUmVtb3ZlRWRpdENvbW1hbmQodWlu
dDY0X3QgY29tbWFuZElEKQogICAgIFJlYXBwbHlFZGl0Q29tbWFuZCh1aW50NjRfdCBjb21tYW5k
SUQpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
YTRkMTMzNC4uMjFjYTRhMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI1IEBACiAyMDE1LTA3LTIwICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAorICAgICAgICBbR1RLXSBBZGQgQVBJIHRvIGFs
bG93IGV4ZWN1dGluZyBlZGl0aW5nIGNvbW1hbmRzIHRoYXQgcmVxdWlyZSBhbiBhcmd1bWVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NzgxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgorCisgICAgICAgIEFk
ZCBidXR0b25zIHRvIGluc2VydCBpbWFnZS9saW5rIHRvIHRoZSBNaW5pQnJvd3NlciBlZGl0IHRv
b2xiYXIsCisgICAgICAgIGFuZCB0ZXN0IGNhc2VzIGZvciBpbnNlcnQgaW1hZ2UvbGluayBjb21t
YW5kcyB0b28uCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jOgor
ICAgICAgICAoaW5zZXJ0SW1hZ2VDb21tYW5kQ2FsbGJhY2spOgorICAgICAgICAoaW5zZXJ0TGlu
a0NvbW1hbmRDYWxsYmFjayk6CisgICAgICAgIChicm93c2VyV2luZG93U2V0dXBFZGl0b3JUb29s
YmFyKToKKyAgICAgICAgKGJyb3dzZXJXaW5kb3dDb25zdHJ1Y3RlZCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNwcDoKKyAgICAg
ICAgKHRlc3RXZWJWaWV3RWRpdG9ySW5zZXJ0SW1hZ2UpOgorICAgICAgICAodGVzdFdlYlZpZXdF
ZGl0b3JDcmVhdGVMaW5rKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisKKzIwMTUtMDctMjAgIENh
cmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCiAgICAgICAgIFtHVEtd
IEFkZCBBUEkgdG8gYmUgbm90aWZpZWQgYWJvdXQgZWRpdG9yIHN0YXRlIGNoYW5nZXMKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTg3NQogCmRpZmYg
LS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jIGIvVG9vbHMvTWlu
aUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYwppbmRleCBkMDdlM2Y5Li44ODA3OTFiIDEwMDY0
NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCisrKyBiL1Rvb2xz
L01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMKQEAgLTcwMCw2ICs3MDAsNDYgQEAgc3Rh
dGljIHZvaWQgZWRpdGluZ0NvbW1hbmRDYWxsYmFjayhHdGtXaWRnZXQqd2lkZ2V0LCBCcm93c2Vy
V2luZG93ICp3aW5kb3cpCiAgICAgd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21t
YW5kKHdpbmRvdy0+d2ViVmlldywgZ3RrX3dpZGdldF9nZXRfbmFtZSh3aWRnZXQpKTsKIH0KIAor
c3RhdGljIHZvaWQgaW5zZXJ0SW1hZ2VDb21tYW5kQ2FsbGJhY2soR3RrV2lkZ2V0KndpZGdldCwg
QnJvd3NlcldpbmRvdyAqd2luZG93KQoreworICAgIEd0a1dpZGdldCAqZmlsZUNob29zZXIgPSBn
dGtfZmlsZV9jaG9vc2VyX2RpYWxvZ19uZXcoIkluc2VydCBJbWFnZSIsIEdUS19XSU5ET1cod2lu
ZG93KSwgR1RLX0ZJTEVfQ0hPT1NFUl9BQ1RJT05fT1BFTiwKKyAgICAgICAgIkNhbmNlbCIsIEdU
S19SRVNQT05TRV9DQU5DRUwsICJPcGVuIiwgR1RLX1JFU1BPTlNFX0FDQ0VQVCwgTlVMTCk7CisK
KyAgICBHdGtGaWxlRmlsdGVyICpmaWx0ZXIgPSBndGtfZmlsZV9maWx0ZXJfbmV3KCk7CisgICAg
Z3RrX2ZpbGVfZmlsdGVyX3NldF9uYW1lKGZpbHRlciwgIkltYWdlcyIpOworICAgIGd0a19maWxl
X2ZpbHRlcl9hZGRfcGl4YnVmX2Zvcm1hdHMoZmlsdGVyKTsKKyAgICBndGtfZmlsZV9jaG9vc2Vy
X3NldF9maWx0ZXIoR1RLX0ZJTEVfQ0hPT1NFUihmaWxlQ2hvb3NlciksIGZpbHRlcik7CisKKyAg
ICBpZiAoZ3RrX2RpYWxvZ19ydW4oR1RLX0RJQUxPRyhmaWxlQ2hvb3NlcikpID09IEdUS19SRVNQ
T05TRV9BQ0NFUFQpIHsKKyAgICAgICAgY2hhciAqdXJpID0gZ3RrX2ZpbGVfY2hvb3Nlcl9nZXRf
dXJpKEdUS19GSUxFX0NIT09TRVIoZmlsZUNob29zZXIpKTsKKyAgICAgICAgaWYgKHVyaSkgewor
ICAgICAgICAgICAgd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kX3dpdGhf
YXJndW1lbnQod2luZG93LT53ZWJWaWV3LCBXRUJLSVRfRURJVElOR19DT01NQU5EX0lOU0VSVF9J
TUFHRSwgdXJpKTsKKyAgICAgICAgICAgIGdfZnJlZSh1cmkpOworICAgICAgICB9CisgICAgfQor
CisgICAgZ3RrX3dpZGdldF9kZXN0cm95KGZpbGVDaG9vc2VyKTsKK30KKworc3RhdGljIHZvaWQg
aW5zZXJ0TGlua0NvbW1hbmRDYWxsYmFjayhHdGtXaWRnZXQqd2lkZ2V0LCBCcm93c2VyV2luZG93
ICp3aW5kb3cpCit7CisgICAgR3RrV2lkZ2V0ICpkaWFsb2cgPSBndGtfZGlhbG9nX25ld193aXRo
X2J1dHRvbnMoIkluc2VydCBMaW5rIiwgR1RLX1dJTkRPVyh3aW5kb3cpLCBHVEtfRElBTE9HX01P
REFMLCAiSW5zZXJ0IiwgR1RLX1JFU1BPTlNFX0FDQ0VQVCwgTlVMTCk7CisgICAgZ3RrX2RpYWxv
Z19zZXRfZGVmYXVsdF9yZXNwb25zZShHVEtfRElBTE9HKGRpYWxvZyksIEdUS19SRVNQT05TRV9B
Q0NFUFQpOworICAgIEd0a1dpZGdldCAqZW50cnkgPSBndGtfZW50cnlfbmV3KCk7CisgICAgZ3Rr
X2VudHJ5X3NldF9wbGFjZWhvbGRlcl90ZXh0KEdUS19FTlRSWShlbnRyeSksICJVUkwiKTsKKyAg
ICBndGtfZW50cnlfc2V0X2FjdGl2YXRlc19kZWZhdWx0KEdUS19FTlRSWShlbnRyeSksIFRSVUUp
OworICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoZ3RrX2RpYWxvZ19nZXRfY29u
dGVudF9hcmVhKEdUS19ESUFMT0coZGlhbG9nKSkpLCBlbnRyeSk7CisgICAgZ3RrX3dpZGdldF9z
aG93KGVudHJ5KTsKKworICAgIGlmIChndGtfZGlhbG9nX3J1bihHVEtfRElBTE9HKGRpYWxvZykp
ID09IEdUS19SRVNQT05TRV9BQ0NFUFQpIHsKKyAgICAgICAgY29uc3QgY2hhciAqdXJsID0gZ3Rr
X2VudHJ5X2dldF90ZXh0KEdUS19FTlRSWShlbnRyeSkpOworICAgICAgICBpZiAodXJsICYmICp1
cmwpCisgICAgICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmRf
d2l0aF9hcmd1bWVudCh3aW5kb3ctPndlYlZpZXcsIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ1JF
QVRFX0xJTkssIHVybCk7CisgICAgfQorCisgICAgZ3RrX3dpZGdldF9kZXN0cm95KGRpYWxvZyk7
Cit9CisKIHN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dFZGl0aW5nQ29tbWFuZFRvZ2dsZUJ1dHRv
blNldEFjdGl2ZShCcm93c2VyV2luZG93ICp3aW5kb3csIEd0a1dpZGdldCAqYnV0dG9uLCBnYm9v
bGVhbiBhY3RpdmUpCiB7CiAgICAgZ19zaWduYWxfaGFuZGxlcnNfYmxvY2tfYnlfZnVuYyhidXR0
b24sIEdfQ0FMTEJBQ0soZWRpdGluZ0NvbW1hbmRDYWxsYmFjayksIHdpbmRvdyk7CkBAIC04Nzks
NiArOTE5LDIyIEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dTZXR1cEVkaXRvclRvb2xiYXIo
QnJvd3NlcldpbmRvdyAqd2luZG93KQogICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJB
Uih0b29sYmFyKSwgaXRlbSwgLTEpOwogICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0
ZW0pKTsKIAorICAgIGl0ZW0gPSBndGtfc2VwYXJhdG9yX3Rvb2xfaXRlbV9uZXcoKTsKKyAgICBn
dGtfdG9vbGJhcl9pbnNlcnQoR1RLX1RPT0xCQVIodG9vbGJhciksIGl0ZW0sIC0xKTsKKyAgICBn
dGtfd2lkZ2V0X3Nob3coR1RLX1dJREdFVChpdGVtKSk7CisKKyAgICBpdGVtID0gZ3RrX3Rvb2xf
YnV0dG9uX25ldyhOVUxMLCBOVUxMKTsKKyAgICBndGtfdG9vbF9idXR0b25fc2V0X2ljb25fbmFt
ZShHVEtfVE9PTF9CVVRUT04oaXRlbSksICJpbnNlcnQtaW1hZ2UiKTsKKyAgICBnX3NpZ25hbF9j
b25uZWN0KEdfT0JKRUNUKGl0ZW0pLCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0soaW5zZXJ0SW1hZ2VD
b21tYW5kQ2FsbGJhY2spLCB3aW5kb3cpOworICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9P
TEJBUih0b29sYmFyKSwgaXRlbSwgLTEpOworICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VU
KGl0ZW0pKTsKKworICAgIGl0ZW0gPSBndGtfdG9vbF9idXR0b25fbmV3KE5VTEwsIE5VTEwpOwor
ICAgIGd0a190b29sX2J1dHRvbl9zZXRfaWNvbl9uYW1lKEdUS19UT09MX0JVVFRPTihpdGVtKSwg
Imluc2VydC1saW5rIik7CisgICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVChpdGVtKSwgImNs
aWNrZWQiLCBHX0NBTExCQUNLKGluc2VydExpbmtDb21tYW5kQ2FsbGJhY2spLCB3aW5kb3cpOwor
ICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0b29sYmFyKSwgaXRlbSwgLTEpOwor
ICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0ZW0pKTsKKwogICAgIGd0a19ib3hfcGFj
a19zdGFydChHVEtfQk9YKHdpbmRvdy0+bWFpbkJveCksIHRvb2xiYXIsIEZBTFNFLCBGQUxTRSwg
MCk7CiAgICAgZ3RrX3dpZGdldF9zaG93KHRvb2xiYXIpOwogfQpAQCAtMTA4Nyw3ICsxMTQzLDcg
QEAgc3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd0NvbnN0cnVjdGVkKEdPYmplY3QgKmdPYmplY3Qp
CiAgICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQod2luZG93LT53ZWJWaWV3KSk7CiAKICAg
ICBpZiAod2Via2l0X3dlYl92aWV3X2lzX2VkaXRhYmxlKHdpbmRvdy0+d2ViVmlldykpCi0gICAg
ICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX2h0bWwod2luZG93LT53ZWJWaWV3LCAiPGh0bWw+PC9o
dG1sPiIsIE5VTEwpOworICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9odG1sKHdpbmRvdy0+
d2ViVmlldywgIjxodG1sPjwvaHRtbD4iLCAiZmlsZTovLy8iKTsKIH0KIAogc3RhdGljIHZvaWQg
YnJvd3Nlcl93aW5kb3dfY2xhc3NfaW5pdChCcm93c2VyV2luZG93Q2xhc3MgKmtsYXNzKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3
RWRpdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2Vi
Vmlld0VkaXRvci5jcHAKaW5kZXggMTA4NGRmMi4uZDIwYzc5NCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYlZpZXdFZGl0b3Iu
Y3BwCkBAIC00MDEsNiArNDAxLDU4IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9yRWRp
dG9yU3RhdGVUeXBpbmdBdHRyaWJ1dGVzKEVkaXRvclRlc3QqIHRlc3QsIGdjb25zCiAgICAgZ19h
c3NlcnRfY21wdWludCh0eXBpbmdBdHRyaWJ1dGVzLCA9PSwgV0VCS0lUX0VESVRPUl9UWVBJTkdf
QVRUUklCVVRFX05PTkUpOwogfQogCitzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0VkaXRvckluc2Vy
dEltYWdlKEVkaXRvclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgdGVzdC0+bG9h
ZEh0bWwoIjxodG1sPjxib2R5PjwvYm9keT48L2h0bWw+IiwgImZpbGU6Ly8vIik7CisgICAgdGVz
dC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgdGVzdC0+c2V0RWRpdGFibGUodHJ1ZSk7
CisKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGltYWdlUGF0aChnX2J1aWxkX2ZpbGVuYW1lKFRlc3Q6
OmdldFJlc291cmNlc0RpcigpLmRhdGEoKSwgImJsYW5rLmljbyIsIG51bGxwdHIpKTsKKyAgICBH
VW5pcXVlUHRyPGNoYXI+IGltYWdlVVJJKGdfZmlsZW5hbWVfdG9fdXJpKGltYWdlUGF0aC5nZXQo
KSwgbnVsbHB0ciwgbnVsbHB0cikpOworICAgIHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2VkaXRp
bmdfY29tbWFuZF93aXRoX2FyZ3VtZW50KHRlc3QtPm1fd2ViVmlldywgV0VCS0lUX0VESVRJTkdf
Q09NTUFORF9JTlNFUlRfSU1BR0UsIGltYWdlVVJJLmdldCgpKTsKKyAgICBHVW5pcXVlT3V0UHRy
PEdFcnJvcj4gZXJyb3I7CisgICAgV2ViS2l0SmF2YXNjcmlwdFJlc3VsdCogamF2YXNjcmlwdFJl
c3VsdCA9IHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hlZCgiZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ0lNRycpWzBdLnNyYyIsICZlcnJvci5vdXRQdHIoKSk7Cisg
ICAgZ19hc3NlcnQoamF2YXNjcmlwdFJlc3VsdCk7CisgICAgZ19hc3NlcnQoIWVycm9yKTsKKyAg
ICBHVW5pcXVlUHRyPGNoYXI+IHJlc3VsdFN0cmluZyhXZWJWaWV3VGVzdDo6amF2YXNjcmlwdFJl
c3VsdFRvQ1N0cmluZyhqYXZhc2NyaXB0UmVzdWx0KSk7CisgICAgZ19hc3NlcnRfY21wc3RyKHJl
c3VsdFN0cmluZy5nZXQoKSwgPT0sIGltYWdlVVJJLmdldCgpKTsKK30KKworc3RhdGljIHZvaWQg
dGVzdFdlYlZpZXdFZGl0b3JDcmVhdGVMaW5rKEVkaXRvclRlc3QqIHRlc3QsIGdjb25zdHBvaW50
ZXIpCit7CisgICAgdGVzdC0+bG9hZEh0bWwoIjxodG1sPjxib2R5IG9ubG9hZD1cImRvY3VtZW50
LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGRvY3VtZW50LmJvZHkpO1wiPndlYmtp
dGd0ay5vcmc8L2JvZHk+PC9odG1sPiIsIG51bGxwdHIpOworICAgIHRlc3QtPndhaXRVbnRpbExv
YWRGaW5pc2hlZCgpOworICAgIHRlc3QtPnNldEVkaXRhYmxlKHRydWUpOworCisgICAgc3RhdGlj
IGNvbnN0IGNoYXIqIHdlYmtpdEdUS1VSTCA9ICJodHRwOi8vd3d3LndlYmtpdGd0ay5vcmcvIjsK
KyAgICB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmRfd2l0aF9hcmd1bWVu
dCh0ZXN0LT5tX3dlYlZpZXcsIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ1JFQVRFX0xJTkssIHdl
YmtpdEdUS1VSTCk7CisgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgIFdlYktp
dEphdmFzY3JpcHRSZXN1bHQqIGphdmFzY3JpcHRSZXN1bHQgPSB0ZXN0LT5ydW5KYXZhU2NyaXB0
QW5kV2FpdFVudGlsRmluaXNoZWQoImRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdBJylb
MF0uaHJlZjsiLCAmZXJyb3Iub3V0UHRyKCkpOworICAgIGdfYXNzZXJ0KGphdmFzY3JpcHRSZXN1
bHQpOworICAgIGdfYXNzZXJ0KCFlcnJvcik7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXN1bHRT
dHJpbmcoV2ViVmlld1Rlc3Q6OmphdmFzY3JpcHRSZXN1bHRUb0NTdHJpbmcoamF2YXNjcmlwdFJl
c3VsdCkpOworICAgIGdfYXNzZXJ0X2NtcHN0cihyZXN1bHRTdHJpbmcuZ2V0KCksID09LCB3ZWJr
aXRHVEtVUkwpOworICAgIGphdmFzY3JpcHRSZXN1bHQgPSB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5k
V2FpdFVudGlsRmluaXNoZWQoImRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdBJylbMF0u
aW5uZXJUZXh0OyIsICZlcnJvci5vdXRQdHIoKSk7CisgICAgZ19hc3NlcnQoamF2YXNjcmlwdFJl
c3VsdCk7CisgICAgZ19hc3NlcnQoIWVycm9yKTsKKyAgICByZXN1bHRTdHJpbmcucmVzZXQoV2Vi
Vmlld1Rlc3Q6OmphdmFzY3JpcHRSZXN1bHRUb0NTdHJpbmcoamF2YXNjcmlwdFJlc3VsdCkpOwor
ICAgIGdfYXNzZXJ0X2NtcHN0cihyZXN1bHRTdHJpbmcuZ2V0KCksID09LCAid2Via2l0Z3RrLm9y
ZyIpOworCisgICAgLy8gV2hlbiB0aGVyZSBpc24ndCB0ZXh0IHNlbGVjdGVkLCB0aGUgVVJMIGlz
IHVzZWQgYXMgbGluayB0ZXh0LgorICAgIHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2VkaXRpbmdf
Y29tbWFuZCh0ZXN0LT5tX3dlYlZpZXcsICJNb3ZlVG9FbmRPZkxpbmUiKTsKKyAgICB3ZWJraXRf
d2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmRfd2l0aF9hcmd1bWVudCh0ZXN0LT5tX3dl
YlZpZXcsIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ1JFQVRFX0xJTkssIHdlYmtpdEdUS1VSTCk7
CisgICAgamF2YXNjcmlwdFJlc3VsdCA9IHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxG
aW5pc2hlZCgiZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ0EnKVsxXS5ocmVmOyIsICZl
cnJvci5vdXRQdHIoKSk7CisgICAgZ19hc3NlcnQoamF2YXNjcmlwdFJlc3VsdCk7CisgICAgZ19h
c3NlcnQoIWVycm9yKTsKKyAgICByZXN1bHRTdHJpbmcucmVzZXQoV2ViVmlld1Rlc3Q6OmphdmFz
Y3JpcHRSZXN1bHRUb0NTdHJpbmcoamF2YXNjcmlwdFJlc3VsdCkpOworICAgIGdfYXNzZXJ0X2Nt
cHN0cihyZXN1bHRTdHJpbmcuZ2V0KCksID09LCB3ZWJraXRHVEtVUkwpOworICAgIGphdmFzY3Jp
cHRSZXN1bHQgPSB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5kV2FpdFVudGlsRmluaXNoZWQoImRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdBJylbMV0uaW5uZXJUZXh0OyIsICZlcnJvci5vdXRQ
dHIoKSk7CisgICAgZ19hc3NlcnQoamF2YXNjcmlwdFJlc3VsdCk7CisgICAgZ19hc3NlcnQoIWVy
cm9yKTsKKyAgICByZXN1bHRTdHJpbmcucmVzZXQoV2ViVmlld1Rlc3Q6OmphdmFzY3JpcHRSZXN1
bHRUb0NTdHJpbmcoamF2YXNjcmlwdFJlc3VsdCkpOworICAgIGdfYXNzZXJ0X2NtcHN0cihyZXN1
bHRTdHJpbmcuZ2V0KCksID09LCB3ZWJraXRHVEtVUkwpOworfQorCiB2b2lkIGJlZm9yZUFsbCgp
CiB7CiAgICAgRWRpdG9yVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImVkaXRhYmxlL2VkaXRh
YmxlIiwgdGVzdFdlYlZpZXdFZGl0b3JFZGl0YWJsZSk7CkBAIC00MDksNiArNDYxLDggQEAgdm9p
ZCBiZWZvcmVBbGwoKQogICAgIEVkaXRvclRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJzZWxl
Y3QtYWxsL25vbi1lZGl0YWJsZSIsIHRlc3RXZWJWaWV3RWRpdG9yU2VsZWN0QWxsTm9uRWRpdGFi
bGUpOwogICAgIEVkaXRvclRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJzZWxlY3QtYWxsL2Vk
aXRhYmxlIiwgdGVzdFdlYlZpZXdFZGl0b3JTZWxlY3RBbGxFZGl0YWJsZSk7CiAgICAgRWRpdG9y
VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImVkaXRvci1zdGF0ZS90eXBpbmctYXR0cmlidXRl
cyIsIHRlc3RXZWJWaWV3RWRpdG9yRWRpdG9yU3RhdGVUeXBpbmdBdHRyaWJ1dGVzKTsKKyAgICBF
ZGl0b3JUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAiaW5zZXJ0L2ltYWdlIiwgdGVzdFdlYlZp
ZXdFZGl0b3JJbnNlcnRJbWFnZSk7CisgICAgRWRpdG9yVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3
IiwgImluc2VydC9saW5rIiwgdGVzdFdlYlZpZXdFZGl0b3JDcmVhdGVMaW5rKTsKIH0KIAogdm9p
ZCBhZnRlckFsbCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257169</attachid>
            <date>2015-07-21 00:34:21 -0700</date>
            <delta_ts>2015-07-21 00:34:21 -0700</delta_ts>
            <desc>Try to fix IOS build</desc>
            <filename>wk2-editing-command-argument.diff</filename>
            <type>text/plain</type>
            <size>20017</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiZmI3ZTk1Li5jZWJiYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzYg
QEAKIDIwMTUtMDctMjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gYWxsb3cgZXhlY3V0aW5nIGVkaXRpbmcgY29t
bWFuZHMgdGhhdCByZXF1aXJlIGFuIGFyZ3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY3ODEKKworICAgICAgICBSZXZpZXdlZCBieSBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEuCisKKyAgICAgICAgQ29tbWFuZHMgbGlrZSBJbnNlcnRJbWFnZSBv
ciBDcmVhdGVMaW5rIHJlY2VpdmUgYW4gYXJndW1lbnQsIGJ1dAorICAgICAgICB3ZSBvbmx5IGhh
dmUgd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kKCkgdGhhdAorICAgICAg
ICBkb2Vzbid0IHJlY2VpdmUgYW55IGFyZ3VtZW50LiBUaGlzIHBhdGNoIGFkZHMKKyAgICAgICAg
d2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kX3dpdGhfYXJndW1lbnQoKSBm
b3IgdGhvc2UKKyAgICAgICAgY29tbWFuZHMuIEl0IGFsc28gYWRkcyBXRUJLSVRfRURJVElOR19D
T01NQU5EX0lOU0VSVF9JTUFHRSBhbmQKKyAgICAgICAgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9D
UkVBVEVfTElOSyB0byB0aGUgcHJlZGVmaW5lZCBlZGl0aW5nIGNvbW1hbmRzLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RWRpdGluZ0NvbW1hbmRzLmg6IEFkZAorICAgICAg
ICBXRUJLSVRfRURJVElOR19DT01NQU5EX0lOU0VSVF9JTUFHRSBhbmQgV0VCS0lUX0VESVRJTkdf
Q09NTUFORF9DUkVBVEVfTElOSy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2VkaXRpbmdfY29t
bWFuZF93aXRoX2FyZ3VtZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQu
MC1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgc3ltYm9scy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpleGVjdXRlRWRp
dENvbW1hbmQpOiBQYXNzIGFsc28gdGhlIGFyZ3VtZW50CisgICAgICAgIHRvIHRoZSBtZXNzYWdl
LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmV4ZWN1
dGVFZGl0Q29tbWFuZCk6IEFkZCB0aGUgYXJndW1lbnQgcGFyYW1ldGVyCisgICAgICAgIHRvIHRo
ZSBtZXNzYWdlIGhhbmRsZXIuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogQWRk
IGFyZ3VtZW50IHBhcmFtZXRlcgorICAgICAgICB0byBFeGVjdXRlRWRpdENvbW1hbmQgbWVzc2Fn
ZS4KKworMjAxNS0wNy0yMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+CisKICAgICAgICAgW0dUS10gQWRkIEFQSSB0byBiZSBub3RpZmllZCBhYm91dCBlZGl0b3Ig
c3RhdGUgY2hhbmdlcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ1ODc1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEVkaXRpbmdDb21tYW5kcy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0RWRpdGluZ0NvbW1hbmRzLmgKaW5kZXggNDM3Mzk1Ny4uYTNiZDBmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RWRpdGluZ0Nv
bW1hbmRzLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RWRp
dGluZ0NvbW1hbmRzLmgKQEAgLTk0LDYgKzk0LDMxIEBAIEdfQkVHSU5fREVDTFMKICAqLwogI2Rl
ZmluZSBXRUJLSVRfRURJVElOR19DT01NQU5EX1JFRE8gIlJlZG8iCiAKKy8qKgorICogV0VCS0lU
X0VESVRJTkdfQ09NTUFORF9JTlNFUlRfSU1BR0U6CisgKgorICogVGhlIGluc2VydCBpbWFnZSBj
b21tYW5kLiBDcmVhdGVzIGFuIGltYWdlIGVsZW1lbnQgdGhhdCBpcyBpbnNlcnRlZCBhdAorICog
dGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uLiBJdCByZWNlaXZlcyBhbiBVUkkgYXMgYXJndW1l
bnQsCisgKiB0aGF0IGlzIHVzZWQgYXMgdGhlIGltYWdlIHNvdXJjZS4gVGhpcyBjb21tYW5kIHNo
b3VsZCBiZSBleGVjdXRlZCB3aXRoCisgKiB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5n
X2NvbW1hbmRfd2l0aF9hcmd1bWVudCgpLgorICoKKyAqIFNpbmNlOiAyLjEwCisgKi8KKyNkZWZp
bmUgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9JTlNFUlRfSU1BR0UgIkluc2VydEltYWdlIgorCisv
KioKKyAqIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ1JFQVRFX0xJTks6CisgKgorICogVGhlIGNy
ZWF0ZSBsaW5rIGNvbW1hbmQuIENyZWF0ZXMgYSBsaW5rIGVsbWVudCB0aHN0IGlzIGluc2VydGVk
IGF0CisgKiB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24uIElmIHRoZXJlJ3MgYSBzZWxlY3Rp
b24sIHRoZSBzZWxlY3RlZCB0ZXh0CisgKiB3aWxsIGJlIHVzZWQgYXMgdGhlIGxpbmsgdGV4dCwg
b3RoZXJ3aXNlIHRoZSBVUkwgaXRzZWxmIHdpbGwgYmUgdXNlZC4KKyAqIEl0IHJlY2VpdmVzIHRo
ZSBsaW5rIFVSTCBhcyBhcmd1bWVudC4gVGhpcyBjb21tYW5kIHNob3VsZCBiZSBleGVjdXRlZAor
ICogd2l0aCB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmRfd2l0aF9hcmd1
bWVudCgpCisgKgorICogU2luY2U6IDIuMTAKKyAqLworI2RlZmluZSBXRUJLSVRfRURJVElOR19D
T01NQU5EX0NSRUFURV9MSU5LICJDcmVhdGVMaW5rIgorCiBHX0VORF9ERUNMUwogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5j
cHAKaW5kZXggMjY2ZDIzOS4uZWI4NGI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTI5NDUsNiArMjk0NSwyNyBAQCB2
b2lkIHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2VkaXRpbmdfY29tbWFuZChXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3LCBjb25zdCBjaGFyKgogfQogCiAvKioKKyAqIHdlYmtpdF93ZWJfdmlld19leGVj
dXRlX2VkaXRpbmdfY29tbWFuZF93aXRoX2FyZ3VtZW50OgorICogQHdlYl92aWV3OiBhICNXZWJL
aXRXZWJWaWV3CisgKiBAY29tbWFuZDogdGhlIGNvbW1hbmQgdG8gZXhlY3V0ZQorICogQGFyZ3Vt
ZW50OiB0aGUgY29tbWFuZCBhcmd1bWVudAorICoKKyAqIFJlcXVlc3QgdG8gZXhlY3V0ZSB0aGUg
Z2l2ZW4gQGNvbW1hbmQgd2l0aCBAYXJndW1lbnQgZm9yIEB3ZWJfdmlldy4gWW91IGNhbiB1c2UK
KyAqIHdlYmtpdF93ZWJfdmlld19jYW5fZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmQoKSB0byBjaGVj
ayB3aGV0aGVyCisgKiBpdCdzIHBvc3NpYmxlIHRvIGV4ZWN1dGUgdGhlIGNvbW1hbmQuCisgKgor
ICogU2luY2U6IDIuMTAKKyAqLwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5n
X2NvbW1hbmRfd2l0aF9hcmd1bWVudChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBjaGFy
KiBjb21tYW5kLCBjb25zdCBjaGFyKiBhcmd1bWVudCkKK3sKKyAgICBnX3JldHVybl9pZl9mYWls
KFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CisgICAgZ19yZXR1cm5faWZfZmFpbChjb21t
YW5kKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKGFyZ3VtZW50KTsKKworICAgIGdldFBhZ2Uod2Vi
VmlldyktPmV4ZWN1dGVFZGl0Q29tbWFuZChTdHJpbmc6OmZyb21VVEY4KGNvbW1hbmQpLCBTdHJp
bmc6OmZyb21VVEY4KGFyZ3VtZW50KSk7Cit9CisKKy8qKgogICogd2Via2l0X3dlYl92aWV3X2dl
dF9maW5kX2NvbnRyb2xsZXI6CiAgKiBAd2ViX3ZpZXc6IHRoZSAjV2ViS2l0V2ViVmlldwogICoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaApp
bmRleCAzYTc1M2MwLi44ZGI5Njg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCkBAIC0zOTEsNiArMzkxLDExIEBAIFdFQktJVF9BUEkg
dm9pZAogd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kICAgICAgICAgICAg
ICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAg
ICAgICAgICpjb21tYW5kKTsKIAorV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfZXhl
Y3V0ZV9lZGl0aW5nX2NvbW1hbmRfd2l0aF9hcmd1bWVudChXZWJLaXRXZWJWaWV3ICAgICAgICAg
ICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIgICAgICAgICAgICAgICAgKmNvbW1hbmQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
ICAgICAgICAgICAgICAgICphcmd1bWVudCk7CisKIFdFQktJVF9BUEkgV2ViS2l0RmluZENvbnRy
b2xsZXIgKgogd2Via2l0X3dlYl92aWV3X2dldF9maW5kX2NvbnRyb2xsZXIgICAgICAgICAgICAg
ICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNl
Y3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay00LjAtc2VjdGlvbnMudHh0CmluZGV4IDE4ZDg2MTEuLjllMWE5MjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2Vj
dGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Vi
a2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CkBAIC0xNDQsNiArMTQ0LDggQEAgV0VCS0lUX0VESVRJ
TkdfQ09NTUFORF9QQVNURQogV0VCS0lUX0VESVRJTkdfQ09NTUFORF9TRUxFQ1RfQUxMCiBXRUJL
SVRfRURJVElOR19DT01NQU5EX1VORE8KIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfUkVETworV0VC
S0lUX0VESVRJTkdfQ09NTUFORF9JTlNFUlRfSU1BR0UKK1dFQktJVF9FRElUSU5HX0NPTU1BTkRf
Q1JFQVRFX0xJTksKIAogPFNVQlNFQ1RJT04+CiB3ZWJraXRfd2ViX3ZpZXdfbmV3CkBAIC0xODUs
NiArMTg3LDcgQEAgd2Via2l0X3dlYl92aWV3X2dldF96b29tX2xldmVsCiB3ZWJraXRfd2ViX3Zp
ZXdfY2FuX2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kCiB3ZWJraXRfd2ViX3ZpZXdfY2FuX2V4ZWN1
dGVfZWRpdGluZ19jb21tYW5kX2ZpbmlzaAogd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGlu
Z19jb21tYW5kCit3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmRfd2l0aF9h
cmd1bWVudAogd2Via2l0X3dlYl92aWV3X2dldF9maW5kX2NvbnRyb2xsZXIKIHdlYmtpdF93ZWJf
dmlld19nZXRfaW5zcGVjdG9yCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2phdmFzY3JpcHRfZ2xvYmFs
X2NvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXgg
MTgwNmY2ZC4uNDc3NTgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKQEAgLTE1NDcsNyArMTU0Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNYWludGFp
bnNJbmFjdGl2ZVNlbGVjdGlvbihib29sIG5ld1ZhbHVlKQogICAgIG1fbWFpbnRhaW5zSW5hY3Rp
dmVTZWxlY3Rpb24gPSBuZXdWYWx1ZTsKIH0KICAgICAKLXZvaWQgV2ViUGFnZVByb3h5OjpleGVj
dXRlRWRpdENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpleGVjdXRlRWRpdENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgY29uc3Qg
U3RyaW5nJiBhcmd1bWVudCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBp
Z25vcmVTcGVsbGluZ0NvbW1hbmROYW1lKEFTQ0lJTGl0ZXJhbCgiaWdub3JlU3BlbGxpbmciKSk7
CiAKQEAgLTE1NTcsNyArMTU1Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpleGVjdXRlRWRpdENv
bW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSkKICAgICBpZiAoY29tbWFuZE5hbWUgPT0g
aWdub3JlU3BlbGxpbmdDb21tYW5kTmFtZSkKICAgICAgICAgKyttX3BlbmRpbmdMZWFybk9ySWdu
b3JlV29yZE1lc3NhZ2VDb3VudDsKIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6RXhlY3V0ZUVkaXRDb21tYW5kKGNvbW1hbmROYW1lKSwgbV9wYWdlSUQpOworICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RXhlY3V0ZUVkaXRDb21tYW5kKGNvbW1h
bmROYW1lLCBhcmd1bWVudCksIG1fcGFnZUlEKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnNl
dEVkaXRhYmxlKGJvb2wgZWRpdGFibGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggYmRjZTdjZC4uMzA3Y2ExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtNDM3LDcgKzQzNyw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRk
TUlNRVR5cGVXaXRoQ3VzdG9tQ29udGVudFByb3ZpZGVyKGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
OwogCi0gICAgdm9pZCBleGVjdXRlRWRpdENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFt
ZSk7CisgICAgdm9pZCBleGVjdXRlRWRpdENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFt
ZSwgY29uc3QgU3RyaW5nJiBhcmd1bWVudCA9IFN0cmluZygpKTsKICAgICB2b2lkIHZhbGlkYXRl
Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNv
bnN0IFN0cmluZyYsIGJvb2wsIGludDMyX3QsIENhbGxiYWNrQmFzZTo6RXJyb3IpPik7CiAKICAg
ICBjb25zdCBFZGl0b3JTdGF0ZSYgZWRpdG9yU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2VkaXRv
clN0YXRlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggNDcyYWVjZS4uMzcwMjAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjE0Nyw5ICsyMTQ3LDkgQEAgdm9pZCBXZWJQYWdl
Ojp2YWxpZGF0ZUNvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgdWludDY0X3QgY2Fs
bGJhY2tJRCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlZhbGlkYXRlQ29tbWFu
ZENhbGxiYWNrKGNvbW1hbmROYW1lLCBpc0VuYWJsZWQsIHN0YXRlLCBjYWxsYmFja0lEKSk7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6ZXhlY3V0ZUVkaXRDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFu
ZE5hbWUpCit2b2lkIFdlYlBhZ2U6OmV4ZWN1dGVFZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmIGNv
bW1hbmROYW1lLCBjb25zdCBTdHJpbmcmIGFyZ3VtZW50KQogewotICAgIGV4ZWN1dGVFZGl0aW5n
Q29tbWFuZChjb21tYW5kTmFtZSwgU3RyaW5nKCkpOworICAgIGV4ZWN1dGVFZGl0aW5nQ29tbWFu
ZChjb21tYW5kTmFtZSwgYXJndW1lbnQpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnJlc3RvcmVTZXNz
aW9uKGNvbnN0IFZlY3RvcjxCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU+JiBpdGVtU3RhdGVzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMDVlZWQ4
Yi4uODNjMDM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCkBAIC05NzAsNyArOTcwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUlzSW5XaW5k
b3coYm9vbCBpc0luaXRpYWxTdGF0ZSA9IGZhbHNlKTsKICAgICB2b2lkIHNldFZpZXdTdGF0ZShX
ZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzLCBib29sIHdhbnRzRGlkVXBkYXRlVmlld1N0YXRlLCBj
b25zdCBWZWN0b3I8dWludDY0X3Q+JiBjYWxsYmFja0lEcyk7CiAgICAgdm9pZCB2YWxpZGF0ZUNv
bW1hbmQoY29uc3QgU3RyaW5nJiwgdWludDY0X3QpOwotICAgIHZvaWQgZXhlY3V0ZUVkaXRDb21t
YW5kKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZXhlY3V0ZUVkaXRDb21tYW5kKGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0RWRpdGFibGUoYm9vbCk7CiAKICAg
ICB2b2lkIHVwZGF0ZVVzZXJBY3Rpdml0eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAzMTY0OGVkLi42ZDJl
MDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgpAQCAtMTg3LDcgKzE4Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2Ug
TGVnYWN5UmVjZWl2ZXIgewogCiAgICAgU2V0RWRpdGFibGUoYm9vbCBlZGl0YWJsZSkKICAgICBW
YWxpZGF0ZUNvbW1hbmQoU3RyaW5nIG5hbWUsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCi0gICAgRXhl
Y3V0ZUVkaXRDb21tYW5kKFN0cmluZyBuYW1lKQorICAgIEV4ZWN1dGVFZGl0Q29tbWFuZChTdHJp
bmcgbmFtZSwgU3RyaW5nIGFyZ3VtZW50KQogCiAgICAgRGlkUmVtb3ZlRWRpdENvbW1hbmQodWlu
dDY0X3QgY29tbWFuZElEKQogICAgIFJlYXBwbHlFZGl0Q29tbWFuZCh1aW50NjRfdCBjb21tYW5k
SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KaW5kZXggNjA2NzI1Mi4uY2FlODRiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMTk5NSw3ICsxOTk1
LDcgQEAgdm9pZCBXZWJQYWdlOjphcHBseUF1dG9jb3JyZWN0aW9uKGNvbnN0IFN0cmluZyYgY29y
cmVjdGlvbiwgY29uc3QgU3RyaW5nJiBvcmlnaW4KIAogdm9pZCBXZWJQYWdlOjpleGVjdXRlRWRp
dENvbW1hbmRXaXRoQ2FsbGJhY2soY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKIHsKLSAgICBleGVjdXRlRWRpdENvbW1hbmQoY29tbWFuZE5hbWUpOworICAg
IGV4ZWN1dGVFZGl0Q29tbWFuZChjb21tYW5kTmFtZSwgU3RyaW5nKCkpOwogICAgIGlmIChjb21t
YW5kTmFtZSA9PSAidG9nZ2xlQm9sZCIgfHwgY29tbWFuZE5hbWUgPT0gInRvZ2dsZUl0YWxpYyIg
fHwgY29tbWFuZE5hbWUgPT0gInRvZ2dsZVVuZGVybGluZSIpCiAgICAgICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RWRpdG9yU3RhdGVDaGFuZ2VkKGVkaXRvclN0YXRlKCkpKTsKICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlZvaWRDYWxsYmFjayhjYWxsYmFja0lEKSk7
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTRk
MTMzNC4uMjFjYTRhMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDI1IEBACiAyMDE1LTA3LTIwICBDYXJsb3MgR2FyY2lhIENhbXBv
cyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAorICAgICAgICBbR1RLXSBBZGQgQVBJIHRvIGFsbG93
IGV4ZWN1dGluZyBlZGl0aW5nIGNvbW1hbmRzIHRoYXQgcmVxdWlyZSBhbiBhcmd1bWVudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NzgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgorCisgICAgICAgIEFkZCBi
dXR0b25zIHRvIGluc2VydCBpbWFnZS9saW5rIHRvIHRoZSBNaW5pQnJvd3NlciBlZGl0IHRvb2xi
YXIsCisgICAgICAgIGFuZCB0ZXN0IGNhc2VzIGZvciBpbnNlcnQgaW1hZ2UvbGluayBjb21tYW5k
cyB0b28uCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jOgorICAg
ICAgICAoaW5zZXJ0SW1hZ2VDb21tYW5kQ2FsbGJhY2spOgorICAgICAgICAoaW5zZXJ0TGlua0Nv
bW1hbmRDYWxsYmFjayk6CisgICAgICAgIChicm93c2VyV2luZG93U2V0dXBFZGl0b3JUb29sYmFy
KToKKyAgICAgICAgKGJyb3dzZXJXaW5kb3dDb25zdHJ1Y3RlZCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNwcDoKKyAgICAgICAg
KHRlc3RXZWJWaWV3RWRpdG9ySW5zZXJ0SW1hZ2UpOgorICAgICAgICAodGVzdFdlYlZpZXdFZGl0
b3JDcmVhdGVMaW5rKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisKKzIwMTUtMDctMjAgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCiAgICAgICAgIFtHVEtdIEFk
ZCBBUEkgdG8gYmUgbm90aWZpZWQgYWJvdXQgZWRpdG9yIHN0YXRlIGNoYW5nZXMKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTg3NQogCmRpZmYgLS1n
aXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jIGIvVG9vbHMvTWluaUJy
b3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYwppbmRleCBkMDdlM2Y5Li44ODA3OTFiIDEwMDY0NAot
LS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCisrKyBiL1Rvb2xzL01p
bmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMKQEAgLTcwMCw2ICs3MDAsNDYgQEAgc3RhdGlj
IHZvaWQgZWRpdGluZ0NvbW1hbmRDYWxsYmFjayhHdGtXaWRnZXQqd2lkZ2V0LCBCcm93c2VyV2lu
ZG93ICp3aW5kb3cpCiAgICAgd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5k
KHdpbmRvdy0+d2ViVmlldywgZ3RrX3dpZGdldF9nZXRfbmFtZSh3aWRnZXQpKTsKIH0KIAorc3Rh
dGljIHZvaWQgaW5zZXJ0SW1hZ2VDb21tYW5kQ2FsbGJhY2soR3RrV2lkZ2V0KndpZGdldCwgQnJv
d3NlcldpbmRvdyAqd2luZG93KQoreworICAgIEd0a1dpZGdldCAqZmlsZUNob29zZXIgPSBndGtf
ZmlsZV9jaG9vc2VyX2RpYWxvZ19uZXcoIkluc2VydCBJbWFnZSIsIEdUS19XSU5ET1cod2luZG93
KSwgR1RLX0ZJTEVfQ0hPT1NFUl9BQ1RJT05fT1BFTiwKKyAgICAgICAgIkNhbmNlbCIsIEdUS19S
RVNQT05TRV9DQU5DRUwsICJPcGVuIiwgR1RLX1JFU1BPTlNFX0FDQ0VQVCwgTlVMTCk7CisKKyAg
ICBHdGtGaWxlRmlsdGVyICpmaWx0ZXIgPSBndGtfZmlsZV9maWx0ZXJfbmV3KCk7CisgICAgZ3Rr
X2ZpbGVfZmlsdGVyX3NldF9uYW1lKGZpbHRlciwgIkltYWdlcyIpOworICAgIGd0a19maWxlX2Zp
bHRlcl9hZGRfcGl4YnVmX2Zvcm1hdHMoZmlsdGVyKTsKKyAgICBndGtfZmlsZV9jaG9vc2VyX3Nl
dF9maWx0ZXIoR1RLX0ZJTEVfQ0hPT1NFUihmaWxlQ2hvb3NlciksIGZpbHRlcik7CisKKyAgICBp
ZiAoZ3RrX2RpYWxvZ19ydW4oR1RLX0RJQUxPRyhmaWxlQ2hvb3NlcikpID09IEdUS19SRVNQT05T
RV9BQ0NFUFQpIHsKKyAgICAgICAgY2hhciAqdXJpID0gZ3RrX2ZpbGVfY2hvb3Nlcl9nZXRfdXJp
KEdUS19GSUxFX0NIT09TRVIoZmlsZUNob29zZXIpKTsKKyAgICAgICAgaWYgKHVyaSkgeworICAg
ICAgICAgICAgd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kX3dpdGhfYXJn
dW1lbnQod2luZG93LT53ZWJWaWV3LCBXRUJLSVRfRURJVElOR19DT01NQU5EX0lOU0VSVF9JTUFH
RSwgdXJpKTsKKyAgICAgICAgICAgIGdfZnJlZSh1cmkpOworICAgICAgICB9CisgICAgfQorCisg
ICAgZ3RrX3dpZGdldF9kZXN0cm95KGZpbGVDaG9vc2VyKTsKK30KKworc3RhdGljIHZvaWQgaW5z
ZXJ0TGlua0NvbW1hbmRDYWxsYmFjayhHdGtXaWRnZXQqd2lkZ2V0LCBCcm93c2VyV2luZG93ICp3
aW5kb3cpCit7CisgICAgR3RrV2lkZ2V0ICpkaWFsb2cgPSBndGtfZGlhbG9nX25ld193aXRoX2J1
dHRvbnMoIkluc2VydCBMaW5rIiwgR1RLX1dJTkRPVyh3aW5kb3cpLCBHVEtfRElBTE9HX01PREFM
LCAiSW5zZXJ0IiwgR1RLX1JFU1BPTlNFX0FDQ0VQVCwgTlVMTCk7CisgICAgZ3RrX2RpYWxvZ19z
ZXRfZGVmYXVsdF9yZXNwb25zZShHVEtfRElBTE9HKGRpYWxvZyksIEdUS19SRVNQT05TRV9BQ0NF
UFQpOworICAgIEd0a1dpZGdldCAqZW50cnkgPSBndGtfZW50cnlfbmV3KCk7CisgICAgZ3RrX2Vu
dHJ5X3NldF9wbGFjZWhvbGRlcl90ZXh0KEdUS19FTlRSWShlbnRyeSksICJVUkwiKTsKKyAgICBn
dGtfZW50cnlfc2V0X2FjdGl2YXRlc19kZWZhdWx0KEdUS19FTlRSWShlbnRyeSksIFRSVUUpOwor
ICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoZ3RrX2RpYWxvZ19nZXRfY29udGVu
dF9hcmVhKEdUS19ESUFMT0coZGlhbG9nKSkpLCBlbnRyeSk7CisgICAgZ3RrX3dpZGdldF9zaG93
KGVudHJ5KTsKKworICAgIGlmIChndGtfZGlhbG9nX3J1bihHVEtfRElBTE9HKGRpYWxvZykpID09
IEdUS19SRVNQT05TRV9BQ0NFUFQpIHsKKyAgICAgICAgY29uc3QgY2hhciAqdXJsID0gZ3RrX2Vu
dHJ5X2dldF90ZXh0KEdUS19FTlRSWShlbnRyeSkpOworICAgICAgICBpZiAodXJsICYmICp1cmwp
CisgICAgICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmRfd2l0
aF9hcmd1bWVudCh3aW5kb3ctPndlYlZpZXcsIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ1JFQVRF
X0xJTkssIHVybCk7CisgICAgfQorCisgICAgZ3RrX3dpZGdldF9kZXN0cm95KGRpYWxvZyk7Cit9
CisKIHN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dFZGl0aW5nQ29tbWFuZFRvZ2dsZUJ1dHRvblNl
dEFjdGl2ZShCcm93c2VyV2luZG93ICp3aW5kb3csIEd0a1dpZGdldCAqYnV0dG9uLCBnYm9vbGVh
biBhY3RpdmUpCiB7CiAgICAgZ19zaWduYWxfaGFuZGxlcnNfYmxvY2tfYnlfZnVuYyhidXR0b24s
IEdfQ0FMTEJBQ0soZWRpdGluZ0NvbW1hbmRDYWxsYmFjayksIHdpbmRvdyk7CkBAIC04NzksNiAr
OTE5LDIyIEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dTZXR1cEVkaXRvclRvb2xiYXIoQnJv
d3NlcldpbmRvdyAqd2luZG93KQogICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0
b29sYmFyKSwgaXRlbSwgLTEpOwogICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0ZW0p
KTsKIAorICAgIGl0ZW0gPSBndGtfc2VwYXJhdG9yX3Rvb2xfaXRlbV9uZXcoKTsKKyAgICBndGtf
dG9vbGJhcl9pbnNlcnQoR1RLX1RPT0xCQVIodG9vbGJhciksIGl0ZW0sIC0xKTsKKyAgICBndGtf
d2lkZ2V0X3Nob3coR1RLX1dJREdFVChpdGVtKSk7CisKKyAgICBpdGVtID0gZ3RrX3Rvb2xfYnV0
dG9uX25ldyhOVUxMLCBOVUxMKTsKKyAgICBndGtfdG9vbF9idXR0b25fc2V0X2ljb25fbmFtZShH
VEtfVE9PTF9CVVRUT04oaXRlbSksICJpbnNlcnQtaW1hZ2UiKTsKKyAgICBnX3NpZ25hbF9jb25u
ZWN0KEdfT0JKRUNUKGl0ZW0pLCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0soaW5zZXJ0SW1hZ2VDb21t
YW5kQ2FsbGJhY2spLCB3aW5kb3cpOworICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJB
Uih0b29sYmFyKSwgaXRlbSwgLTEpOworICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0
ZW0pKTsKKworICAgIGl0ZW0gPSBndGtfdG9vbF9idXR0b25fbmV3KE5VTEwsIE5VTEwpOworICAg
IGd0a190b29sX2J1dHRvbl9zZXRfaWNvbl9uYW1lKEdUS19UT09MX0JVVFRPTihpdGVtKSwgImlu
c2VydC1saW5rIik7CisgICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVChpdGVtKSwgImNsaWNr
ZWQiLCBHX0NBTExCQUNLKGluc2VydExpbmtDb21tYW5kQ2FsbGJhY2spLCB3aW5kb3cpOworICAg
IGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0b29sYmFyKSwgaXRlbSwgLTEpOworICAg
IGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0ZW0pKTsKKwogICAgIGd0a19ib3hfcGFja19z
dGFydChHVEtfQk9YKHdpbmRvdy0+bWFpbkJveCksIHRvb2xiYXIsIEZBTFNFLCBGQUxTRSwgMCk7
CiAgICAgZ3RrX3dpZGdldF9zaG93KHRvb2xiYXIpOwogfQpAQCAtMTA4Nyw3ICsxMTQzLDcgQEAg
c3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd0NvbnN0cnVjdGVkKEdPYmplY3QgKmdPYmplY3QpCiAg
ICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQod2luZG93LT53ZWJWaWV3KSk7CiAKICAgICBp
ZiAod2Via2l0X3dlYl92aWV3X2lzX2VkaXRhYmxlKHdpbmRvdy0+d2ViVmlldykpCi0gICAgICAg
IHdlYmtpdF93ZWJfdmlld19sb2FkX2h0bWwod2luZG93LT53ZWJWaWV3LCAiPGh0bWw+PC9odG1s
PiIsIE5VTEwpOworICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9odG1sKHdpbmRvdy0+d2Vi
VmlldywgIjxodG1sPjwvaHRtbD4iLCAiZmlsZTovLy8iKTsKIH0KIAogc3RhdGljIHZvaWQgYnJv
d3Nlcl93aW5kb3dfY2xhc3NfaW5pdChCcm93c2VyV2luZG93Q2xhc3MgKmtsYXNzKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3RWRp
dG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViVmll
d0VkaXRvci5jcHAKaW5kZXggMTA4NGRmMi4uZDIwYzc5NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYlZpZXdFZGl0b3IuY3Bw
CkBAIC00MDEsNiArNDAxLDU4IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9yRWRpdG9y
U3RhdGVUeXBpbmdBdHRyaWJ1dGVzKEVkaXRvclRlc3QqIHRlc3QsIGdjb25zCiAgICAgZ19hc3Nl
cnRfY21wdWludCh0eXBpbmdBdHRyaWJ1dGVzLCA9PSwgV0VCS0lUX0VESVRPUl9UWVBJTkdfQVRU
UklCVVRFX05PTkUpOwogfQogCitzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0VkaXRvckluc2VydElt
YWdlKEVkaXRvclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgdGVzdC0+bG9hZEh0
bWwoIjxodG1sPjxib2R5PjwvYm9keT48L2h0bWw+IiwgImZpbGU6Ly8vIik7CisgICAgdGVzdC0+
d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgdGVzdC0+c2V0RWRpdGFibGUodHJ1ZSk7CisK
KyAgICBHVW5pcXVlUHRyPGNoYXI+IGltYWdlUGF0aChnX2J1aWxkX2ZpbGVuYW1lKFRlc3Q6Omdl
dFJlc291cmNlc0RpcigpLmRhdGEoKSwgImJsYW5rLmljbyIsIG51bGxwdHIpKTsKKyAgICBHVW5p
cXVlUHRyPGNoYXI+IGltYWdlVVJJKGdfZmlsZW5hbWVfdG9fdXJpKGltYWdlUGF0aC5nZXQoKSwg
bnVsbHB0ciwgbnVsbHB0cikpOworICAgIHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2VkaXRpbmdf
Y29tbWFuZF93aXRoX2FyZ3VtZW50KHRlc3QtPm1fd2ViVmlldywgV0VCS0lUX0VESVRJTkdfQ09N
TUFORF9JTlNFUlRfSU1BR0UsIGltYWdlVVJJLmdldCgpKTsKKyAgICBHVW5pcXVlT3V0UHRyPEdF
cnJvcj4gZXJyb3I7CisgICAgV2ViS2l0SmF2YXNjcmlwdFJlc3VsdCogamF2YXNjcmlwdFJlc3Vs
dCA9IHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hlZCgiZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoJ0lNRycpWzBdLnNyYyIsICZlcnJvci5vdXRQdHIoKSk7CisgICAg
Z19hc3NlcnQoamF2YXNjcmlwdFJlc3VsdCk7CisgICAgZ19hc3NlcnQoIWVycm9yKTsKKyAgICBH
VW5pcXVlUHRyPGNoYXI+IHJlc3VsdFN0cmluZyhXZWJWaWV3VGVzdDo6amF2YXNjcmlwdFJlc3Vs
dFRvQ1N0cmluZyhqYXZhc2NyaXB0UmVzdWx0KSk7CisgICAgZ19hc3NlcnRfY21wc3RyKHJlc3Vs
dFN0cmluZy5nZXQoKSwgPT0sIGltYWdlVVJJLmdldCgpKTsKK30KKworc3RhdGljIHZvaWQgdGVz
dFdlYlZpZXdFZGl0b3JDcmVhdGVMaW5rKEVkaXRvclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIp
Cit7CisgICAgdGVzdC0+bG9hZEh0bWwoIjxodG1sPjxib2R5IG9ubG9hZD1cImRvY3VtZW50Lmdl
dFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGRvY3VtZW50LmJvZHkpO1wiPndlYmtpdGd0
ay5vcmc8L2JvZHk+PC9odG1sPiIsIG51bGxwdHIpOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRG
aW5pc2hlZCgpOworICAgIHRlc3QtPnNldEVkaXRhYmxlKHRydWUpOworCisgICAgc3RhdGljIGNv
bnN0IGNoYXIqIHdlYmtpdEdUS1VSTCA9ICJodHRwOi8vd3d3LndlYmtpdGd0ay5vcmcvIjsKKyAg
ICB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmRfd2l0aF9hcmd1bWVudCh0
ZXN0LT5tX3dlYlZpZXcsIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ1JFQVRFX0xJTkssIHdlYmtp
dEdUS1VSTCk7CisgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgIFdlYktpdEph
dmFzY3JpcHRSZXN1bHQqIGphdmFzY3JpcHRSZXN1bHQgPSB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5k
V2FpdFVudGlsRmluaXNoZWQoImRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdBJylbMF0u
aHJlZjsiLCAmZXJyb3Iub3V0UHRyKCkpOworICAgIGdfYXNzZXJ0KGphdmFzY3JpcHRSZXN1bHQp
OworICAgIGdfYXNzZXJ0KCFlcnJvcik7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXN1bHRTdHJp
bmcoV2ViVmlld1Rlc3Q6OmphdmFzY3JpcHRSZXN1bHRUb0NTdHJpbmcoamF2YXNjcmlwdFJlc3Vs
dCkpOworICAgIGdfYXNzZXJ0X2NtcHN0cihyZXN1bHRTdHJpbmcuZ2V0KCksID09LCB3ZWJraXRH
VEtVUkwpOworICAgIGphdmFzY3JpcHRSZXN1bHQgPSB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5kV2Fp
dFVudGlsRmluaXNoZWQoImRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdBJylbMF0uaW5u
ZXJUZXh0OyIsICZlcnJvci5vdXRQdHIoKSk7CisgICAgZ19hc3NlcnQoamF2YXNjcmlwdFJlc3Vs
dCk7CisgICAgZ19hc3NlcnQoIWVycm9yKTsKKyAgICByZXN1bHRTdHJpbmcucmVzZXQoV2ViVmll
d1Rlc3Q6OmphdmFzY3JpcHRSZXN1bHRUb0NTdHJpbmcoamF2YXNjcmlwdFJlc3VsdCkpOworICAg
IGdfYXNzZXJ0X2NtcHN0cihyZXN1bHRTdHJpbmcuZ2V0KCksID09LCAid2Via2l0Z3RrLm9yZyIp
OworCisgICAgLy8gV2hlbiB0aGVyZSBpc24ndCB0ZXh0IHNlbGVjdGVkLCB0aGUgVVJMIGlzIHVz
ZWQgYXMgbGluayB0ZXh0LgorICAgIHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2VkaXRpbmdfY29t
bWFuZCh0ZXN0LT5tX3dlYlZpZXcsICJNb3ZlVG9FbmRPZkxpbmUiKTsKKyAgICB3ZWJraXRfd2Vi
X3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmRfd2l0aF9hcmd1bWVudCh0ZXN0LT5tX3dlYlZp
ZXcsIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ1JFQVRFX0xJTkssIHdlYmtpdEdUS1VSTCk7Cisg
ICAgamF2YXNjcmlwdFJlc3VsdCA9IHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5p
c2hlZCgiZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ0EnKVsxXS5ocmVmOyIsICZlcnJv
ci5vdXRQdHIoKSk7CisgICAgZ19hc3NlcnQoamF2YXNjcmlwdFJlc3VsdCk7CisgICAgZ19hc3Nl
cnQoIWVycm9yKTsKKyAgICByZXN1bHRTdHJpbmcucmVzZXQoV2ViVmlld1Rlc3Q6OmphdmFzY3Jp
cHRSZXN1bHRUb0NTdHJpbmcoamF2YXNjcmlwdFJlc3VsdCkpOworICAgIGdfYXNzZXJ0X2NtcHN0
cihyZXN1bHRTdHJpbmcuZ2V0KCksID09LCB3ZWJraXRHVEtVUkwpOworICAgIGphdmFzY3JpcHRS
ZXN1bHQgPSB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5kV2FpdFVudGlsRmluaXNoZWQoImRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdBJylbMV0uaW5uZXJUZXh0OyIsICZlcnJvci5vdXRQdHIo
KSk7CisgICAgZ19hc3NlcnQoamF2YXNjcmlwdFJlc3VsdCk7CisgICAgZ19hc3NlcnQoIWVycm9y
KTsKKyAgICByZXN1bHRTdHJpbmcucmVzZXQoV2ViVmlld1Rlc3Q6OmphdmFzY3JpcHRSZXN1bHRU
b0NTdHJpbmcoamF2YXNjcmlwdFJlc3VsdCkpOworICAgIGdfYXNzZXJ0X2NtcHN0cihyZXN1bHRT
dHJpbmcuZ2V0KCksID09LCB3ZWJraXRHVEtVUkwpOworfQorCiB2b2lkIGJlZm9yZUFsbCgpCiB7
CiAgICAgRWRpdG9yVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImVkaXRhYmxlL2VkaXRhYmxl
IiwgdGVzdFdlYlZpZXdFZGl0b3JFZGl0YWJsZSk7CkBAIC00MDksNiArNDYxLDggQEAgdm9pZCBi
ZWZvcmVBbGwoKQogICAgIEVkaXRvclRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJzZWxlY3Qt
YWxsL25vbi1lZGl0YWJsZSIsIHRlc3RXZWJWaWV3RWRpdG9yU2VsZWN0QWxsTm9uRWRpdGFibGUp
OwogICAgIEVkaXRvclRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJzZWxlY3QtYWxsL2VkaXRh
YmxlIiwgdGVzdFdlYlZpZXdFZGl0b3JTZWxlY3RBbGxFZGl0YWJsZSk7CiAgICAgRWRpdG9yVGVz
dDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImVkaXRvci1zdGF0ZS90eXBpbmctYXR0cmlidXRlcyIs
IHRlc3RXZWJWaWV3RWRpdG9yRWRpdG9yU3RhdGVUeXBpbmdBdHRyaWJ1dGVzKTsKKyAgICBFZGl0
b3JUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAiaW5zZXJ0L2ltYWdlIiwgdGVzdFdlYlZpZXdF
ZGl0b3JJbnNlcnRJbWFnZSk7CisgICAgRWRpdG9yVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3Iiwg
Imluc2VydC9saW5rIiwgdGVzdFdlYlZpZXdFZGl0b3JDcmVhdGVMaW5rKTsKIH0KIAogdm9pZCBh
ZnRlckFsbCgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>