<?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>9928</bug_id>
          
          <creation_ts>2006-07-14 23:17:41 -0700</creation_ts>
          <short_desc>REGRESSION: Text Encoding menu inoperative (after gcc protocol build fix)</short_desc>
          <delta_ts>2006-07-15 08:03:51 -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>WebKit Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>darin</cc>
    
    <cc>mitz</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>49899</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-07-14 23:17:41 -0700</bug_when>
    <thetext>All options in the View-&gt;Text Encoding menu are always dimmed out.

This is present in r15440, and is a very recent regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49904</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-07-15 00:44:28 -0700</bug_when>
    <thetext>Worked in r15418.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49923</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-07-15 06:28:34 -0700</bug_when>
    <thetext>The dimmed-out menu items use the selector changeTextEncoding: and have no target (so they use the responder chain).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49924</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-07-15 06:40:37 -0700</bug_when>
    <thetext>This happened because of the protocol changes that Tim Hatcher made.

Since the WebDocumentText protocol is now appearing on a category of WebHTMLView rather than on WebHTMLView itself, the -[WebView supportsTextEncoding] method is returning NO.

    id documentView = [[[self mainFrame] frameView] documentView];
    return [documentView conformsToProtocol:@protocol(WebDocumentText)]
        &amp;&amp; [documentView supportsTextEncoding];

Apparently having a category that implements a protocol is not sufficient to make an object return YES to conformsToProtocol: -- a short term solution could be to add a special case for WebHTMLView.

It&apos;s really unfortunate that WebHTMLView.h is a public header!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49925</commentid>
    <comment_count>4</comment_count>
    <who name="John Sullivan">sullivan</who>
    <bug_when>2006-07-15 06:47:48 -0700</bug_when>
    <thetext>WebHTMLView.h is not a public header -- it&apos;s &quot;private&quot; == SPI. Or is that what you meant?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49926</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-07-15 06:53:32 -0700</bug_when>
    <thetext>It&apos;s possible that this would be fixed by implementing the category -- we&apos;re currently declaring but not implementing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49928</commentid>
    <comment_count>6</comment_count>
      <attachid>9465</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-07-15 07:04:20 -0700</bug_when>
    <thetext>Created attachment 9465
patch to actually implement the new categories</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49929</commentid>
    <comment_count>7</comment_count>
      <attachid>9465</attachid>
    <who name="John Sullivan">sullivan</who>
    <bug_when>2006-07-15 07:23:36 -0700</bug_when>
    <thetext>Comment on attachment 9465
patch to actually implement the new categories

Makes it tempting to fix that prepare-ChangeLog bug, eh?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49930</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-07-15 08:01:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/4632173&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49931</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-07-15 08:03:51 -0700</bug_when>
    <thetext>Committed revision 15452.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9465</attachid>
            <date>2006-07-15 07:04:20 -0700</date>
            <delta_ts>2006-07-15 07:23:36 -0700</delta_ts>
            <desc>patch to actually implement the new categories</desc>
            <filename>TextEncodingMenuPatch.txt</filename>
            <type>text/plain</type>
            <size>55456</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NoYW5nZUxvZwko
cmV2aXNpb24gMTU0NTEpCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMzggQEAKKzIwMDYtMDctMTUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gZml4IGh0
dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkyOAorICAgICAg
ICAgIFJFR1JFU1NJT046IFRleHQgRW5jb2RpbmcgbWVudSBpbm9wZXJhdGl2ZSAoYWZ0ZXIgZ2Nj
IHByb3RvY29sIGJ1aWxkIGZpeCkKKworICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubToK
KyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2RvY3VtZW50UmFuZ2VdKTogTW92ZWQgaW50byBXZWJI
VE1MVmlld0ZpbGVJbnRlcm5hbCBjYXRlZ29yeS4KKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgc2Vs
ZWN0aW9uUmVjdF0pOiBNb3ZlZCBpbnRvIFdlYkRvY3VtZW50UHJpdmF0ZVByb3RvY29scyBjYXRl
Z29yeS4KKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgc2VsZWN0aW9uVmlld10pOiBEaXR0by4KKyAg
ICAgICAgKC1bV2ViSFRNTFZpZXcgc2VsZWN0aW9uSW1hZ2VGb3JjaW5nV2hpdGVUZXh0Ol0pOiBE
aXR0by4KKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgc2VsZWN0aW9uSW1hZ2VSZWN0XSk6IERpdHRv
LgorICAgICAgICAoLVtXZWJIVE1MVmlldyBwYXN0ZWJvYXJkVHlwZXNGb3JTZWxlY3Rpb25dKTog
RGl0dG8uCisgICAgICAgICgtW1dlYkhUTUxWaWV3IHNlbGVjdEFsbF0pOiBEaXR0by4KKyAgICAg
ICAgKC1bV2ViSFRNTFZpZXcgZGVzZWxlY3RBbGxdKTogRGl0dG8uCisgICAgICAgICgtW1dlYkhU
TUxWaWV3IHN0cmluZ10pOiBEaXR0by4KKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2F0dHJpYnV0
ZVN0cmluZ0Zyb21ET01SYW5nZTpdKTogRGl0dG8uCisgICAgICAgICgtW1dlYkhUTUxWaWV3IGF0
dHJpYnV0ZWRTdHJpbmddKTogRGl0dG8uCisgICAgICAgICgtW1dlYkhUTUxWaWV3IHNlbGVjdGVk
U3RyaW5nXSk6IERpdHRvLgorICAgICAgICAoLVtXZWJIVE1MVmlldyBzZWxlY3RlZEF0dHJpYnV0
ZWRTdHJpbmddKTogRGl0dG8uCisgICAgICAgICgtW1dlYkhUTUxWaWV3IHN1cHBvcnRzVGV4dEVu
Y29kaW5nXSk6IERpdHRvLgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfY2FuUHJvY2Vzc0RyYWdX
aXRoRHJhZ2dpbmdJbmZvOl0pOiBNb3ZlZCBpbnRvIFdlYkRvY3VtZW50SW50ZXJuYWxQcm90b2Nv
bHMuCisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pc01vdmVEcmFnXSk6IERpdHRvLgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyBfaXNOU0NvbG9yRHJhZzpdKTogRGl0dG8uCisgICAgICAgICgtW1dl
YkhUTUxWaWV3IGRyYWdnaW5nVXBkYXRlZFdpdGhEcmFnZ2luZ0luZm86YWN0aW9uTWFzazpdKTog
RGl0dG8uCisgICAgICAgICgtW1dlYkhUTUxWaWV3IGRyYWdnaW5nQ2FuY2VsbGVkV2l0aERyYWdn
aW5nSW5mbzpdKTogRGl0dG8uCisgICAgICAgICgtW1dlYkhUTUxWaWV3IGNvbmNsdWRlRHJhZ0Zv
ckRyYWdnaW5nSW5mbzphY3Rpb25NYXNrOl0pOiBEaXR0by4KKyAgICAgICAgKC1bV2ViSFRNTFZp
ZXcgZWxlbWVudEF0UG9pbnQ6XSk6IERpdHRvLgorICAgICAgICAoLVtXZWJIVE1MVmlldyBlbGVt
ZW50QXRQb2ludDphbGxvd1NoYWRvd0NvbnRlbnQ6XSk6IERpdHRvLgorCisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IExldCBYY29kZSAyLjMgZG8gaXRzIHRoaW5n
LgorCisgICAgICAgICogV2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qOiBSZW1vdmUgc29tZSB1
bm5lZWRlZCBkaXJlY3RvcmllcyBmcm9tIHRoZSBwYXRoLgorCiA9PT0gU2FmYXJpLTUyMS4xNyA9
PT0KIAogMjAwNi0wNy0xNCAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CkBA
IC0xMiw3ICs0Nyw3IEBACiAgICAgICAgIEdNYWlsIEVkaXRvcjogT3BlcmF0aW9ucyB0aGF0IHVz
ZSBkcm9wIGRvd24gbWVudXMgYmxvdyBhd2F5IHRoZSBzZWxlY3Rpb24KIAogICAgICAgICAqIFdl
YlZpZXcvV2ViSFRNTFZpZXcubToKLSAgICAgICAgKC1bTlNBcnJheSBtYWludGFpbnNJbmFjdGl2
ZVNlbGVjdGlvbl0pOiBNYWludGFpbiBhbiBpbmFjdGl2ZSBzZWxlY3Rpb24KKyAgICAgICAgKC1b
V2ViSFRNTFZpZXcgbWFpbnRhaW5zSW5hY3RpdmVTZWxlY3Rpb25dKTogTWFpbnRhaW4gYW4gaW5h
Y3RpdmUgc2VsZWN0aW9uCiAgICAgICAgIHdoZW4gcmVzaWduaW5nIGFzIGZpcnN0IHJlc3BvbmRl
ciBpZiB0aGUgc2VsZWN0aW9uIGlzIGVkaXRhYmxlCiAgICAgICAgIG9yIGlmIHRoZSBXZWJWaWV3
IHRlbGxzIHVzIHRvLgogICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tOgpAQCAtNDMsNyArNzgs
NyBAQAogICAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NjA0NzAzPgogICAgICAgICAgIFJFR1JF
U1NJT046IEZvY3VzIG5vdCByZW1vdmVkIGZyb20gcGFzc3dvcmQgZmllbGQgYWZ0ZXIgY3RybC1j
bGljayBpbiB0ZXh0IGZpZWxkCiAKLSAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm06ICgt
W05TQXJyYXkgbWVudUZvckV2ZW50Ol0pOiBTZXQgaGFuZGxpbmdNb3VzZURvd25FdmVudCB0bwor
ICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubTogKC1bV2ViSFRNTFZpZXcgbWVudUZvckV2
ZW50Ol0pOiBTZXQgaGFuZGxpbmdNb3VzZURvd25FdmVudCB0bwogICAgICAgICBZRVMgd2hpbGUg
Y2FsbGluZyBzZW5kQ29udGV4dE1lbnVFdmVudDogb24gdGhlIGJyaWRnZS4KIAogMjAwNi0wNy0x
NCAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CkBAIC0yMDYsNyArMjQxLDcg
QEAKICAgICAgICAgR01haWwgRWRpdG9yOiBPcGVyYXRpb25zIHRoYXQgdXNlIGRyb3AgZG93biBt
ZW51cyBibG93IGF3YXkgdGhlIHNlbGVjdGlvbgogICAgICAgICAKICAgICAgICAgKiBXZWJWaWV3
L1dlYkhUTUxWaWV3Lm06Ci0gICAgICAgICgtW05TQXJyYXkgbWFpbnRhaW5zSW5hY3RpdmVTZWxl
Y3Rpb25dKTogTWFpbnRhaW4gYW4gaW5hY3RpdmUgc2VsZWN0aW9uCisgICAgICAgICgtW1dlYkhU
TUxWaWV3IG1haW50YWluc0luYWN0aXZlU2VsZWN0aW9uXSk6IE1haW50YWluIGFuIGluYWN0aXZl
IHNlbGVjdGlvbgogICAgICAgICB3aGVuIHJlc2lnbmluZyBhcyBmaXJzdCByZXNwb25kZXIgaWYg
dGhlIHNlbGVjdGlvbiBpcyBlZGl0YWJsZQogICAgICAgICBvciBpZiB0aGUgV2ViVmlldyB0ZWxs
cyB1cyB0by4KICAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubToKQEAgLTU2Myw4ICs1OTgsOCBA
QAogICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubTogIFBhc3MgZ3JhbnVsYXJpdHkgdG8g
V2ViQ29yZSB0byBoYW5kbGUgZXhwYW5zaW9uCiAgICAgICAgICgtW1dlYkhUTUxWaWV3IF9kZWxl
dGVSYW5nZTpraWxsUmluZzpwcmVwZW5kOnNtYXJ0RGVsZXRlT0s6ZGVsZXRpb25BY3Rpb246Z3Jh
bnVsYXJpdHk6XSk6CiAgICAgICAgICgtW1dlYkhUTUxWaWV3IF9kZWxldGVTZWxlY3Rpb25dKToK
LSAgICAgICAgKC1bTlNBcnJheSBfZGVsZXRlV2l0aERpcmVjdGlvbjpncmFudWxhcml0eTpraWxs
UmluZzppc1R5cGluZ0FjdGlvbjpdKToKLSAgICAgICAgKC1bTlNBcnJheSBkZWxldGVUb01hcms6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9kZWxldGVXaXRoRGlyZWN0aW9uOmdyYW51bGFy
aXR5OmtpbGxSaW5nOmlzVHlwaW5nQWN0aW9uOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBk
ZWxldGVUb01hcms6XSk6CiAKIDIwMDYtMDctMDcgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBw
bGUuY29tPgogCkBAIC01ODgsNyArNjIzLDcgQEAKICAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxW
aWV3Lm06IE1vdmVkIGNvZGUgdGhhdCBleHBhbmRlZCBhIHNlbGVjdGlvbiB3aGVuIHRoZSBkZWxl
dGUKICAgICAgICAga2V5IGlzIHByZXNzZWQgb3ZlciB0byBXZWJDb3JlIHNvIHdlIGNhbiBiZSBt
b3JlIGludGVsbGlnZW50IGFib3V0IGhvdyB0byBoYW5kbGUgaXQKICAgICAgICAgKC1bV2ViSFRN
TFZpZXcgX2RlbGV0ZVJhbmdlOmtpbGxSaW5nOnByZXBlbmQ6c21hcnREZWxldGVPSzpkZWxldGlv
bkFjdGlvbjpdKToKLSAgICAgICAgKC1bTlNBcnJheSBfZGVsZXRlV2l0aERpcmVjdGlvbjpncmFu
dWxhcml0eTpraWxsUmluZzppc1R5cGluZ0FjdGlvbjpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZp
ZXcgX2RlbGV0ZVdpdGhEaXJlY3Rpb246Z3JhbnVsYXJpdHk6a2lsbFJpbmc6aXNUeXBpbmdBY3Rp
b246XSk6CiAKIDIwMDYtMDctMDcgIEpvaG4gU3VsbGl2YW4gIDxzdWxsaXZhbkBhcHBsZS5jb20+
CiAKQEAgLTc4OSw4ICs4MjQsOCBAQAogICAgICAgICAoLVtXZWJGcmFtZVZpZXcgZmluYWxpemVd
KToKICAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm06CiAgICAgICAgICgtW1dlYkhUTUxW
aWV3IGNsb3NlXSk6Ci0gICAgICAgICgtW05TQXJyYXkgZGVhbGxvY10pOgotICAgICAgICAoLVtO
U0FycmF5IGZpbmFsaXplXSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGRlYWxsb2NdKToKKyAg
ICAgICAgKC1bV2ViSFRNTFZpZXcgZmluYWxpemVdKToKICAgICAgICAgKiBXZWJWaWV3L1dlYkhU
TUxWaWV3SW50ZXJuYWwuaDoKICAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3UHJpdmF0ZS5o
OgogICAgICAgICAqIFdlYlZpZXcvV2ViU2NyaXB0RGVidWdEZWxlZ2F0ZS5tOgpAQCAtODg0LDcg
KzkxOSw3IEBACiAgICAgICAgICogV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubToKICAg
ICAgICAgKC1bV2ViSFRNTFJlcHJlc2VudGF0aW9uIGZpbmlzaGVkTG9hZGluZ1dpdGhEYXRhU291
cmNlOl0pOgogICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubToKLSAgICAgICAgKC1bTlNB
cnJheSBfaW50ZXJjZXB0RWRpdGluZ0tleUV2ZW50Ol0pOgorICAgICAgICAoLVtXZWJIVE1MVmll
dyBfaW50ZXJjZXB0RWRpdGluZ0tleUV2ZW50Ol0pOgogICAgICAgICAqIFdlYlZpZXcvV2ViVmll
dy5tOgogICAgICAgICAoLVtXZWJWaWV3UHJpdmF0ZSBpbml0XSk6CiAgICAgICAgICgtW1dlYlZp
ZXcgX2F1dG9zY3JvbGxGb3JEcmFnZ2luZ0luZm86dGltZURlbHRhOl0pOgpAQCAtMTEwOCw3ICsx
MTQzLDcgQEAKICAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm06CiAgICAgICAgICgtW1dl
YkhUTUxWaWV3IF9mcmFtZU9yQm91bmRzQ2hhbmdlZF0pOgogICAgICAgICB1c2UgX1VJRGVsZWdh
dGVGb3J3YXJkZXIgbWVjaGFuaXNtIHRvIG5vdGlmeSBkZWxlZ2F0ZSB0aGF0IHNjcm9sbGluZyBv
Y2N1cnJlZAotICAgICAgICAoLVtOU0FycmF5IGRyYXdTaW5nbGVSZWN0Ol0pOgorICAgICAgICAo
LVtXZWJIVE1MVmlldyBkcmF3U2luZ2xlUmVjdDpdKToKICAgICAgICAgdXNlIF9VSURlbGVnYXRl
Rm9yd2FyZGVyIG1lY2hhbmlzbSBpbnN0ZWFkIG9mIGNoZWNraW5nIHJlc3BvbmRzVG9TZWxlY3Rv
ciBzdHVmZgogICAgICAgICBoZXJlICh0aGF0J3MgcGFja2FnZWQgdXAgbmljZWx5IGJ5IHRoZSBm
b3J3YXJkZXIgbWVjaGFuaXNtKQogICAgICAgICAKQEAgLTE3NzksMTEgKzE4MTQsMTEgQEAKIAog
ICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubToKICAgICAgICAgKC1bV2ViSFRNTFZpZXcg
X3VwZGF0ZUFjdGl2ZVN0YXRlXSk6Ci0gICAgICAgICgtW05TQXJyYXkgdmlld0RpZE1vdmVUb1dp
bmRvd10pOgotICAgICAgICAoLVtOU0FycmF5IHdpbmRvd0RpZEJlY29tZUtleTpdKToKLSAgICAg
ICAgKC1bTlNBcnJheSB3aW5kb3dEaWRSZXNpZ25LZXk6XSk6Ci0gICAgICAgICgtW05TQXJyYXkg
YmVjb21lRmlyc3RSZXNwb25kZXJdKToKLSAgICAgICAgKC1bTlNBcnJheSByZXNpZ25GaXJzdFJl
c3BvbmRlcl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHdpbmRvd0RpZEJlY29tZUtleTpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgd2luZG93RGlkUmVzaWduS2V5Ol0pOgorICAgICAgICAoLVtXZWJIVE1M
VmlldyBiZWNvbWVGaXJzdFJlc3BvbmRlcl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyByZXNp
Z25GaXJzdFJlc3BvbmRlcl0pOgogICAgICAgICAoLVtXZWJIVE1MVmlldyBfZm9ybUNvbnRyb2xJ
c0JlY29taW5nRmlyc3RSZXNwb25kZXI6XSk6CiAgICAgICAgICgtW1dlYkhUTUxWaWV3IF9mb3Jt
Q29udHJvbElzUmVzaWduaW5nRmlyc3RSZXNwb25kZXI6XSk6CiAgICAgICAgICogV2ViVmlldy9X
ZWJIVE1MVmlld1ByaXZhdGUuaDoKQEAgLTE4NjEsMjUgKzE4OTYsMjUgQEAKICAgICAgICAgQ2hh
bmdlIGRyYWdnaW5nIGNvZGUgdG8gbm90IGFzc3VtZSB0aGF0IHRoZSBkcmFnZ2VkIG5vZGUgaXMg
aW4gdGhlIGN1cnJlbnQgdmlldydzIGRvY3VtZW50LgogICAgICAgICBBZGRlZCBjaGVja3MgdGhh
dCB0aGUgbm9kZSBpcyBhbiBlbGVtZW50IGluIGEgY291cGxlIHBsYWNlcyBhbmQgY29vcmRpbmF0
ZSBjb252ZXJzaW9ucy4KICAgICAgICAgKC1bV2ViSFRNTFZpZXcgX21heVN0YXJ0RHJhZ0F0RXZl
bnRMb2NhdGlvbjpdKTogRm9yd2FyZCB0byB0aGUgdG9wIEhUTUwgdmlldy4KLSAgICAgICAgKC1b
TlNBcnJheSBhZGRNb3VzZU1vdmVkT2JzZXJ2ZXJdKTogQ2hhbmdlIHRvIGRvIG5vdGhpbmcgd2hl
biB0aGUgZGF0YVNvdXJjZSBmaWVsZCBpcyAwLAorICAgICAgICAoLVtXZWJIVE1MVmlldyBhZGRN
b3VzZU1vdmVkT2JzZXJ2ZXJdKTogQ2hhbmdlIHRvIGRvIG5vdGhpbmcgd2hlbiB0aGUgZGF0YVNv
dXJjZSBmaWVsZCBpcyAwLAogICAgICAgICBzaW5jZSB3ZSBub3cgdXNlIHRoZSBkYXRhU291cmNl
IGZpZWxkIHRvIGdldCB0byB0aGUgV2ViVmlldy4KLSAgICAgICAgKC1bTlNBcnJheSByZW1vdmVN
b3VzZU1vdmVkT2JzZXJ2ZXJdKTogQWRkZWQgYSBjb21tZW50LgotICAgICAgICAoLVtOU0FycmF5
IGRyYWdJbWFnZTphdDpvZmZzZXQ6ZXZlbnQ6cGFzdGVib2FyZDpzb3VyY2U6c2xpZGVCYWNrOl0p
OgorICAgICAgICAoLVtXZWJIVE1MVmlldyByZW1vdmVNb3VzZU1vdmVkT2JzZXJ2ZXJdKTogQWRk
ZWQgYSBjb21tZW50LgorICAgICAgICAoLVtXZWJIVE1MVmlldyBkcmFnSW1hZ2U6YXQ6b2Zmc2V0
OmV2ZW50OnBhc3RlYm9hcmQ6c291cmNlOnNsaWRlQmFjazpdKToKICAgICAgICAgRm9yd2FyZCB0
byB0aGUgdG9wIEhUTUwgdmlldy4KLSAgICAgICAgKC1bTlNBcnJheSBkcmFnZ2luZ1NvdXJjZU9w
ZXJhdGlvbk1hc2tGb3JMb2NhbDpdKTogQXNzZXJ0IHRoYXQgaXQncyB0aGUgdG9wIEhUTUwgdmll
dy4KLSAgICAgICAgKC1bTlNBcnJheSBkcmFnZ2VkSW1hZ2U6bW92ZWRUbzpdKTogRGl0dG8uCi0g
ICAgICAgICgtW05TQXJyYXkgZHJhZ2dlZEltYWdlOmVuZGVkQXQ6b3BlcmF0aW9uOl0pOiBEaXR0
by4KLSAgICAgICAgKC1bTlNBcnJheSBuYW1lc09mUHJvbWlzZWRGaWxlc0Ryb3BwZWRBdERlc3Rp
bmF0aW9uOl0pOiBEaXR0by4KLSAgICAgICAgKC1bTlNBcnJheSBfY2FuUHJvY2Vzc0RyYWdXaXRo
RHJhZ2dpbmdJbmZvOl0pOiBEaXR0by4KLSAgICAgICAgKC1bTlNBcnJheSBfaXNNb3ZlRHJhZ10p
OiBEaXR0by4KLSAgICAgICAgKC1bTlNBcnJheSBkcmFnZ2luZ1VwZGF0ZWRXaXRoRHJhZ2dpbmdJ
bmZvOmFjdGlvbk1hc2s6XSk6IERpdHRvLgotICAgICAgICAoLVtOU0FycmF5IGRyYWdnaW5nQ2Fu
Y2VsbGVkV2l0aERyYWdnaW5nSW5mbzpdKTogRGl0dG8uCi0gICAgICAgICgtW05TQXJyYXkgY29u
Y2x1ZGVEcmFnRm9yRHJhZ2dpbmdJbmZvOmFjdGlvbk1hc2s6XSk6IERpdHRvLiBBbHNvIGFkZGVk
IGNvZGUgdG8gd29yaworICAgICAgICAoLVtXZWJIVE1MVmlldyBkcmFnZ2luZ1NvdXJjZU9wZXJh
dGlvbk1hc2tGb3JMb2NhbDpdKTogQXNzZXJ0IHRoYXQgaXQncyB0aGUgdG9wIEhUTUwgdmlldy4K
KyAgICAgICAgKC1bV2ViSFRNTFZpZXcgZHJhZ2dlZEltYWdlOm1vdmVkVG86XSk6IERpdHRvLgor
ICAgICAgICAoLVtXZWJIVE1MVmlldyBkcmFnZ2VkSW1hZ2U6ZW5kZWRBdDpvcGVyYXRpb246XSk6
IERpdHRvLgorICAgICAgICAoLVtXZWJIVE1MVmlldyBuYW1lc09mUHJvbWlzZWRGaWxlc0Ryb3Bw
ZWRBdERlc3RpbmF0aW9uOl0pOiBEaXR0by4KKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2NhblBy
b2Nlc3NEcmFnV2l0aERyYWdnaW5nSW5mbzpdKTogRGl0dG8uCisgICAgICAgICgtW1dlYkhUTUxW
aWV3IF9pc01vdmVEcmFnXSk6IERpdHRvLgorICAgICAgICAoLVtXZWJIVE1MVmlldyBkcmFnZ2lu
Z1VwZGF0ZWRXaXRoRHJhZ2dpbmdJbmZvOmFjdGlvbk1hc2s6XSk6IERpdHRvLgorICAgICAgICAo
LVtXZWJIVE1MVmlldyBkcmFnZ2luZ0NhbmNlbGxlZFdpdGhEcmFnZ2luZ0luZm86XSk6IERpdHRv
LgorICAgICAgICAoLVtXZWJIVE1MVmlldyBjb25jbHVkZURyYWdGb3JEcmFnZ2luZ0luZm86YWN0
aW9uTWFzazpdKTogRGl0dG8uIEFsc28gYWRkZWQgY29kZSB0byB3b3JrCiAgICAgICAgIHdpdGgg
dGhlIGFwcHJvcHJpYXRlIGJyaWRnZSB3aGVuIHJlY2VpdmluZyBhIGRyYWcuIFRoaXMgZml4ZXMg
dGhlIHByb2JsZW0gd2hlcmUgdGhlCiAgICAgICAgIHRvcCBsZXZlbCBmcmFtZSBnb3QgYSBzZWxl
Y3Rpb24gaW50ZW5kZWQgZm9yIHRoZSBpbm5lciBmcmFtZTsgdGhlIHNvdXJjZSBvZiB0aGUgYnVn
LgotICAgICAgICAoLVtOU0FycmF5IGVsZW1lbnRBdFBvaW50OmFsbG93U2hhZG93Q29udGVudDpd
KTogQWRkZWQgY29kZSB0byBjb252ZXJ0IHRoZSBjb29yZGluYXRlcworICAgICAgICAoLVtXZWJI
VE1MVmlldyBlbGVtZW50QXRQb2ludDphbGxvd1NoYWRvd0NvbnRlbnQ6XSk6IEFkZGVkIGNvZGUg
dG8gY29udmVydCB0aGUgY29vcmRpbmF0ZXMKICAgICAgICAgc28gdGhpcyB3b3JrcyBwcm9wZXJs
eSB3aGVuIHJldHVybmluZyBhbiBlbGVtZW50IGZyb20gYW4gaW5uZXIgZnJhbWUuCi0gICAgICAg
ICgtW05TQXJyYXkgc2V0RGF0YVNvdXJjZTpdKTogQWRkZWQgYSBjYWxsIHRvIGFkZE1vdXNlTW92
ZWRPYnNlcnZlciwgbmVlZGVkIG5vdyB0aGF0CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHNldERh
dGFTb3VyY2U6XSk6IEFkZGVkIGEgY2FsbCB0byBhZGRNb3VzZU1vdmVkT2JzZXJ2ZXIsIG5lZWRl
ZCBub3cgdGhhdAogICAgICAgICBhZGRNb3VzZU1vdmVkT2JzZXJ2ZXIgd29uJ3QgZG8gYW55dGhp
bmcgaWYgY2FsbGVkIHdoZW4gZGF0YVNvdXJjZSBpcyBuaWwuCiAgICAgICAgICgtW1dlYkhUTUxW
aWV3IF9kZWxlZ2F0ZURyYWdTb3VyY2VBY3Rpb25NYXNrXSk6IEZvcndhcmQgdG8gdGhlIHRvcCBI
VE1MIHZpZXcuCiAKQEAgLTI0OTEsNyArMjUyNiw3IEBACiAgICAgICAgICogV2ViVmlldy9XZWJG
cmFtZS5tOgogICAgICAgICAoLVtXZWJGcmFtZSBfc2VuZFJlbWFpbmluZ0RlbGVnYXRlTWVzc2Fn
ZXNXaXRoSWRlbnRpZmllcjpyZXNwb25zZTpsZW5ndGg6ZXJyb3I6XSk6CiAgICAgICAgICogV2Vi
Vmlldy9XZWJIVE1MVmlldy5tOgotICAgICAgICAoLVtOU0FycmF5IGRyYXdSZWN0Ol0pOgorICAg
ICAgICAoLVtXZWJIVE1MVmlldyBkcmF3UmVjdDpdKToKICAgICAgICAgKC1bV2ViSFRNTFZpZXcg
Y2hhcmFjdGVySW5kZXhGb3JQb2ludDpdKToKICAgICAgICAgKC1bV2ViSFRNTFZpZXcgY29udmVy
c2F0aW9uSWRlbnRpZmllcl0pOgogICAgICAgICAqIFdlYlZpZXcvV2ViUmVzb3VyY2VMb2FkRGVs
ZWdhdGUuaDoKQEAgLTI3OTMsOCArMjgyOCw4IEBACiAgICAgICAgIFN3aXRjaCB0byB1c2UgbmV3
IHRleHQgZmllbGQgaW1wbGVtZW50YXRpb24gZm9yIDx0ZXh0YXJlYT4KIAogICAgICAgICAqIFdl
YlZpZXcvV2ViSFRNTFZpZXcubToKLSAgICAgICAgKC1bTlNBcnJheSBpbnNlcnROZXdsaW5lOl0p
OiBJZiB3ZSdyZSBpbiBwbGFpbiB0ZXh0IG1vZGUsIGluc2VydCBhIGxpbmUgYnJlYWsgaW5zdGVh
ZCBvZiBhIHBhcmFncmFwaCBzZXBhcmF0b3IuCi0gICAgICAgICgtW05TQXJyYXkgaW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yOl0pOiBkaXR0by4KKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaW5zZXJ0
TmV3bGluZTpdKTogSWYgd2UncmUgaW4gcGxhaW4gdGV4dCBtb2RlLCBpbnNlcnQgYSBsaW5lIGJy
ZWFrIGluc3RlYWQgb2YgYSBwYXJhZ3JhcGggc2VwYXJhdG9yLgorICAgICAgICAoLVtXZWJIVE1M
VmlldyBpbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3I6XSk6IGRpdHRvLgogICAgICAgICAqIFdlYlZp
ZXcvV2ViVmlldy5tOiAoLVtXZWJWaWV3IF9tZW51Rm9yRWxlbWVudDpkZWZhdWx0SXRlbXM6XSk6
CiAgICAgICAgIENoZWNrcyBmb3IgdGV4dGFyZWFzIGFzIHdlbGwgYXMgdGV4dGZpZWxkcyBiZWZv
cmUgYWxsb3dpbmcgdGhlIGRlbGVnYXRlIHRvIGNvbnRyb2wKICAgICAgICAgdGhlIGNvbnRleHQg
bWVudS4gIFRoaXMgd29uJ3QgYWZmZWN0IHRoZSBvbGQgdGV4dGFyZWFzIGJlY2F1c2UgQXBwS2l0
IGhhbmRsZXMgdGhvc2UgY29udGV4dCBtZW51cy4KQEAgLTMyMDEsNyArMzIzNiw3IEBACiAgICAg
ICAgIE1hbnVhbCB0ZXN0OiBtYW51YWwtdGVzdHMvZG9tLW1hbmlwdWxhdGlvbi1vbi1yZXNpemUu
aHRtbAogCiAgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tOgotICAgICAgICAoLVtOU0Fy
cmF5IGxheW91dFRvTWluaW11bVBhZ2VXaWR0aDptYXhpbXVtUGFnZVdpZHRoOmFkanVzdGluZ1Zp
ZXdTaXplOl0pOiBSZWxheW91dCBpZiBuZWNlc3NhcnkKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcg
bGF5b3V0VG9NaW5pbXVtUGFnZVdpZHRoOm1heGltdW1QYWdlV2lkdGg6YWRqdXN0aW5nVmlld1Np
emU6XSk6IFJlbGF5b3V0IGlmIG5lY2Vzc2FyeQogICAgICAgICBhZnRlciBzZW5kaW5nIHRoZSBy
ZXNpemUgZXZlbnQuCiAKIDIwMDYtMDUtMTIgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxl
LmNvbT4KQEAgLTM2NTEsNyArMzY4Niw3IEBACiAgICAgICAgICogV2ViVmlldy9XZWJGcmFtZVZp
ZXcubToKICAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGluaXRXaXRoRnJhbWU6XSk6CiAgICAgICAg
ICogV2ViVmlldy9XZWJIVE1MVmlldy5tOgotICAgICAgICAoLVtOU0FycmF5IF9hZGRUb1N0eWxl
OmZvbnRBOmZvbnRCOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfYWRkVG9TdHlsZTpmb250
QTpmb250QjpdKToKICAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRWaWV3Lm06CiAgICAgICAgICgt
W1dlYlRleHRWaWV3IHNldEZpeGVkV2lkdGhGb250XSk6CiAgICAgICAgICogV2ViVmlldy9XZWJW
aWV3Lm06CkBAIC0zOTU2LDEyICszOTkxLDEyIEBACiAgICAgICAgICgtW1dlYkhUTUxWaWV3IF93
ZWJWaWV3XSk6CiAgICAgICAgICgtW1dlYkhUTUxWaWV3IF9mcmFtZVZpZXddKToKICAgICAgICAg
KC1bV2ViSFRNTFZpZXcgX3dlYl9maXJzdFJlc3BvbmRlckNhdXNlc0ZvY3VzRGlzcGxheV0pOgot
ICAgICAgICAoLVtOU0FycmF5IGJlY29tZUZpcnN0UmVzcG9uZGVyXSk6Ci0gICAgICAgICgtW05T
QXJyYXkgc2V0RGF0YVNvdXJjZTpdKToKLSAgICAgICAgKC1bTlNBcnJheSBwYWdlVXA6XSk6Ci0g
ICAgICAgICgtW05TQXJyYXkgcGFnZURvd246XSk6Ci0gICAgICAgICgtW05TQXJyYXkgcGFnZVVw
QW5kTW9kaWZ5U2VsZWN0aW9uOl0pOgotICAgICAgICAoLVtOU0FycmF5IHBhZ2VEb3duQW5kTW9k
aWZ5U2VsZWN0aW9uOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBiZWNvbWVGaXJzdFJlc3Bv
bmRlcl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBzZXREYXRhU291cmNlOl0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyBwYWdlVXA6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHBhZ2VE
b3duOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBwYWdlVXBBbmRNb2RpZnlTZWxlY3Rpb246
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHBhZ2VEb3duQW5kTW9kaWZ5U2VsZWN0aW9uOl0p
OgogICAgICAgICAoLVtXZWJIVE1MVmlldyBfZnJhbWVdKToKICAgICAgICAgKiBXZWJWaWV3L1dl
YkhUTUxWaWV3SW50ZXJuYWwuaDoKICAgICAgICAgKiBXZWJWaWV3L1dlYkltYWdlVmlldy5oOgpA
QCAtNDE4MiwxNSArNDIxNywxNSBAQAogICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFJlcHJlc2Vu
dGF0aW9uLm06CiAgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tOgogICAgICAgICAoLVtX
ZWJIVE1MVmlldyBfbG9va1VwSW5EaWN0aW9uYXJ5RnJvbU1lbnU6XSk6Ci0gICAgICAgICgtW05T
QXJyYXkgZHJhd1NpbmdsZVJlY3Q6XSk6Ci0gICAgICAgICgtW05TQXJyYXkgbmFtZXNPZlByb21p
c2VkRmlsZXNEcm9wcGVkQXREZXN0aW5hdGlvbjpdKToKLSAgICAgICAgKC1bTlNBcnJheSBfc2Nh
bGVGYWN0b3JGb3JQcmludE9wZXJhdGlvbjpdKToKLSAgICAgICAgKC1bTlNBcnJheSBkZWxldGVC
YWNrd2FyZEJ5RGVjb21wb3NpbmdQcmV2aW91c0NoYXJhY3RlcjpdKToKLSAgICAgICAgKC1bTlNB
cnJheSBjaGVja1NwZWxsaW5nOl0pOgotICAgICAgICAoLVtOU0FycmF5IHNob3dHdWVzc1BhbmVs
Ol0pOgotICAgICAgICAoLVtOU0FycmF5IF9jaGFuZ2VTcGVsbGluZ1RvV29yZDpdKToKLSAgICAg
ICAgKC1bTlNBcnJheSBpZ25vcmVTcGVsbGluZzpdKToKLSAgICAgICAgKC1bTlNBcnJheSBwZXJm
b3JtRmluZFBhbmVsQWN0aW9uOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBkcmF3U2luZ2xl
UmVjdDpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgbmFtZXNPZlByb21pc2VkRmlsZXNEcm9w
cGVkQXREZXN0aW5hdGlvbjpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3NjYWxlRmFjdG9y
Rm9yUHJpbnRPcGVyYXRpb246XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGRlbGV0ZUJhY2t3
YXJkQnlEZWNvbXBvc2luZ1ByZXZpb3VzQ2hhcmFjdGVyOl0pOgorICAgICAgICAoLVtXZWJIVE1M
VmlldyBjaGVja1NwZWxsaW5nOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBzaG93R3Vlc3NQ
YW5lbDpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2NoYW5nZVNwZWxsaW5nVG9Xb3JkOl0p
OgorICAgICAgICAoLVtXZWJIVE1MVmlldyBpZ25vcmVTcGVsbGluZzpdKToKKyAgICAgICAgKC1b
V2ViSFRNTFZpZXcgcGVyZm9ybUZpbmRQYW5lbEFjdGlvbjpdKToKICAgICAgICAgKC1bV2ViVGV4
dENvbXBsZXRlQ29udHJvbGxlciBkb0NvbXBsZXRpb25dKToKICAgICAgICAgKiBXZWJWaWV3L1dl
YkltYWdlVmlldy5tOgogICAgICAgICAqIFdlYlZpZXcvV2ViTG9hZGVyLm06CkBAIC00MjM0LDcg
KzQyNjksNyBAQAogCiAgICAgICAgIFRlc3Q6IG1hbnVhbC10ZXN0cy90YWJiaW5nLWlucHV0LWdv
b2dsZS5odG1sCiAKLSAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm06ICgtW05TQXJyYXkg
cmVzaWduRmlyc3RSZXNwb25kZXJdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm06
ICgtW1dlYkhUTUxWaWV3IHJlc2lnbkZpcnN0UmVzcG9uZGVyXSk6CiAgICAgICAgIFdoZW4gcmVz
aWduaW5nIGZpcnN0IHJlc3BvbmRlciwgcmVzZXQgd2lsbEJlY29tZUZpcnN0UmVzcG9uZGVyRm9y
Tm9kZUZvY3VzLCBzbyB3aGVuIHRoZSBXZWJIVE1MVmlldyBnZXRzIGZvY3VzIGFnYWluCiAgICAg
ICAgIGl0IGtub3dzIGl0IGNhbiBzdGFydCBtb3ZpbmcgdGhyb3VnaCB0aGUgdGFiIGN5Y2xlLgog
CkBAIC00NDM1LDEyICs0NDcwLDEyIEBACiAgICAgICAgICogZmFzdC9kb20vaW5uZXItdGV4dC0w
MDEuaHRtbDogQWRkZWQuCiAKICAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm06Ci0gICAg
ICAgICgtW05TQXJyYXkgdmFsaWRhdGVVc2VySW50ZXJmYWNlSXRlbTpdKToKLSAgICAgICAgKC1b
TlNBcnJheSBtb3ZlVG9CZWdpbm5pbmdPZlNlbnRlbmNlOl0pOgotICAgICAgICAoLVtOU0FycmF5
IG1vdmVUb0JlZ2lubmluZ09mU2VudGVuY2VBbmRNb2RpZnlTZWxlY3Rpb246XSk6Ci0gICAgICAg
ICgtW05TQXJyYXkgbW92ZVRvRW5kT2ZTZW50ZW5jZTpdKToKLSAgICAgICAgKC1bTlNBcnJheSBt
b3ZlVG9FbmRPZlNlbnRlbmNlQW5kTW9kaWZ5U2VsZWN0aW9uOl0pOgotICAgICAgICAoLVtOU0Fy
cmF5IHNlbGVjdFNlbnRlbmNlOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyB2YWxpZGF0ZVVz
ZXJJbnRlcmZhY2VJdGVtOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBtb3ZlVG9CZWdpbm5p
bmdPZlNlbnRlbmNlOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBtb3ZlVG9CZWdpbm5pbmdP
ZlNlbnRlbmNlQW5kTW9kaWZ5U2VsZWN0aW9uOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBt
b3ZlVG9FbmRPZlNlbnRlbmNlOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBtb3ZlVG9FbmRP
ZlNlbnRlbmNlQW5kTW9kaWZ5U2VsZWN0aW9uOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBz
ZWxlY3RTZW50ZW5jZTpdKToKICAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubToKICAgICAgICAg
KiBXZWJWaWV3L1dlYlZpZXdQcml2YXRlLmg6CiAgICAgICAgIEFkZCBzZW50ZW5jZSBuYXZpZ2F0
aW9uIGFuZCBzZWxlY3Rpb24uCkBAIC00NTUxLDggKzQ1ODYsOCBAQAogICAgICAgICBSZXZpZXdl
ZCBieSBkYXJpbgogCiAgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tOgotICAgICAgICAo
LVtOU0FycmF5IGRyYXdTaW5nbGVSZWN0Ol0pOgotICAgICAgICAoLVtOU0FycmF5IGRyYXdSZWN0
Ol0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBkcmF3U2luZ2xlUmVjdDpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgZHJhd1JlY3Q6XSk6CiAKIDIwMDYtMDQtMDcgIE1hY2llaiBTdGFjaG93
aWFrICA8bWpzQGFwcGxlLmNvbT4KIApAQCAtNDcwMCw5ICs0NzM1LDkgQEAKICAgICAgICAgaGFz
IGFscmVhZHkgYmVlbiBzZXQsIHNvIGl0IHNob3VsZCBub3QgbW92ZSBmb2N1cyBmb3J3YXJkIG9y
CiAgICAgICAgIGJhY2t3YXJkIGluc2lkZSBpdC4KICAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxW
aWV3Lm06Ci0gICAgICAgICgtW05TQXJyYXkgbmVlZHNQYW5lbFRvQmVjb21lS2V5XSk6IE92ZXJy
aWRlIHRvIHJldHVybiBZRVMsIG9kZGx5IGVub3VnaCB0aGlzCisgICAgICAgICgtW1dlYkhUTUxW
aWV3IG5lZWRzUGFuZWxUb0JlY29tZUtleV0pOiBPdmVycmlkZSB0byByZXR1cm4gWUVTLCBvZGRs
eSBlbm91Z2ggdGhpcwogICAgICAgICBpcyB0aGUgcmlnaHQgd2F5IHRvIHRlbGwgQXBwS2l0IHRo
YXQgeW91IHNob3VsZCBiZSBpbiB0aGUgdGFiIGN5Y2xlIGxvb3AuCi0gICAgICAgICgtW05TQXJy
YXkgYmVjb21lRmlyc3RSZXNwb25kZXJdKTogRG9uJ3QgbW92ZSBmb3J3YXJkIG9yIGJhY2sgaW4g
dGFiIGN5Y2xlCisgICAgICAgICgtW1dlYkhUTUxWaWV3IGJlY29tZUZpcnN0UmVzcG9uZGVyXSk6
IERvbid0IG1vdmUgZm9yd2FyZCBvciBiYWNrIGluIHRhYiBjeWNsZQogICAgICAgICB3aGVuIHRo
aXMgYmVjb21lRmlyc3RSZXNwb25kZXIgaXMgZm9yIHRhYmJpbmcgZnJvbSBhIGNvbnRyb2wgaW4g
dGhlIHBhZ2UuCiAgICAgICAgICgtW1dlYkhUTUxWaWV3IF93aWxsTWFrZUZpcnN0UmVzcG9uZGVy
Rm9yTm9kZUZvY3VzXSk6IE5vdGUgdGhhdCB0aGUgbmV4dAogICAgICAgICB0aW1lIHRoaXMgdmll
dyBiZWNvbWVzIGZpcnN0IHJlc3BvbmRlciwgaXQgd2lsbCBiZSBmb3IgaW4tcGFnZSBmb2N1cyAK
QEAgLTQ3ODIsMTEgKzQ4MTcsMTEgQEAKICAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2NhbkRlY3Jl
YXNlU2VsZWN0aW9uTGlzdExldmVsXSk6IERpdHRvLgogICAgICAgICAoLVtXZWJIVE1MVmlldyBf
aW5jcmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWxdKToKICAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2Rl
Y3JlYXNlU2VsZWN0aW9uTGlzdExldmVsXSk6Ci0gICAgICAgICgtW05TQXJyYXkgdmFsaWRhdGVV
c2VySW50ZXJmYWNlSXRlbTpdKTogCisgICAgICAgICgtW1dlYkhUTUxWaWV3IHZhbGlkYXRlVXNl
ckludGVyZmFjZUl0ZW06XSk6IAogICAgICAgICBTcGxpdCByaWNoIHRleHQgZWRpdGluZyBhY3Rp
b25zIG9mZiBmcm9tIG9uZXMgdGhhdCBjYW4gYmUgYXBwbGllZCBhbnl3aGVyZS4KLSAgICAgICAg
KC1bTlNBcnJheSBfYXBwbHlTdHlsZVRvU2VsZWN0aW9uOndpdGhVbmRvQWN0aW9uOl0pOgotICAg
ICAgICAoLVtOU0FycmF5IF9hcHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb246d2l0aFVuZG9B
Y3Rpb246XSk6Ci0gICAgICAgICgtW05TQXJyYXkgX2FsaWduU2VsZWN0aW9uVXNpbmdDU1NWYWx1
ZTp3aXRoVW5kb0FjdGlvbjpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2FwcGx5U3R5bGVU
b1NlbGVjdGlvbjp3aXRoVW5kb0FjdGlvbjpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2Fw
cGx5UGFyYWdyYXBoU3R5bGVUb1NlbGVjdGlvbjp3aXRoVW5kb0FjdGlvbjpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgX2FsaWduU2VsZWN0aW9uVXNpbmdDU1NWYWx1ZTp3aXRoVW5kb0FjdGlv
bjpdKToKICAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3UHJpdmF0ZS5oOgogCiAyMDA2LTAz
LTI5ICBUaW0gT21lcm5pY2sgIDx0aW1vQGFwcGxlLmNvbT4KQEAgLTQ5NjAsNyArNDk5NSw3IEBA
CiAgICAgICAgIFJlbW92ZSBhc3NlcnRpb24gdGhhdCBfaW5OZXh0S2V5Vmlld091dHNpZGVXZWJG
cmFtZVZpZXdzIHNob3VsZCBhbHdheXMgYmUgZmFsc2UgaGVyZS4KICAgICAgICAgCiAgICAgICAg
ICogV2ViVmlldy9XZWJIVE1MVmlldy5tOgotICAgICAgICAoLVtOU0FycmF5IG5leHRWYWxpZEtl
eVZpZXddKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgbmV4dFZhbGlkS2V5Vmlld10pOgogICAg
ICAgICBSZW1vdmVkIGFzc2VydGlvbiB0aGF0IHRoZSBmcmFtZSBzaG91bGQgbmV2ZXIgYmUgdGhl
IG1haW4gZnJhbWUgaGVyZS4KIAogMjAwNi0wMy0yNyAgVGltIE9tZXJuaWNrICA8dGltb0BhcHBs
ZS5jb20+CkBAIC01MDkxLDEyICs1MTI2LDEyIEBACiAKICAgICAgICAgKiBXZWJWaWV3L1dlYkRv
Y3VtZW50SW50ZXJuYWwuaDogQWRkZWQgZWxlbWVudEF0UG9pbnQ6YWxsb3dTaGFkb3dDb250ZW50
OgogICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubToKLSAgICAgICAgKC1bTlNBcnJheSBl
bGVtZW50QXRQb2ludDpdKTogRG9lcyBub3QgYWxsb3cgc2hhZG93IGNvbnRlbnQuICBUaGlzIHdh
eSwgYnkgZGVmYXVsdCwgY2FsbGVycyB3b3VsZCBnZXQgdGhlIGlucHV0IGVsZW1lbnQgaW5zdGVh
ZCBvZiB0aGUgaW5uZXIgZGl2LgotICAgICAgICAoLVtOU0FycmF5IGVsZW1lbnRBdFBvaW50OmFs
bG93U2hhZG93Q29udGVudDpdKTogQWxsb3dzIGNhbGxlcnMgdG8gc3BlY2lmeSB3aGV0aGVyIG9y
IG5vdCB0aGUgZWxlbWVudCBjYW4gYmUgYSBzaGFkb3cgbm9kZS4KKyAgICAgICAgKC1bV2ViSFRN
TFZpZXcgZWxlbWVudEF0UG9pbnQ6XSk6IERvZXMgbm90IGFsbG93IHNoYWRvdyBjb250ZW50LiAg
VGhpcyB3YXksIGJ5IGRlZmF1bHQsIGNhbGxlcnMgd291bGQgZ2V0IHRoZSBpbnB1dCBlbGVtZW50
IGluc3RlYWQgb2YgdGhlIGlubmVyIGRpdi4KKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgZWxlbWVu
dEF0UG9pbnQ6YWxsb3dTaGFkb3dDb250ZW50Ol0pOiBBbGxvd3MgY2FsbGVycyB0byBzcGVjaWZ5
IHdoZXRoZXIgb3Igbm90IHRoZSBlbGVtZW50IGNhbiBiZSBhIHNoYWRvdyBub2RlLgogICAgICAg
ICAoLVtXZWJIVE1MVmlldyBfc3RhcnREcmFnZ2luZ0ltYWdlOmF0Om9wZXJhdGlvbjpldmVudDpz
b3VyY2VJc0RIVE1MOkRIVE1MV3JvdGVEYXRhOl0pOiBBbGxvd3Mgc2hhZG93IGNvbnRlbnQgd2hl
biBnZXR0aW5nIGVsZW1lbnQuCiAgICAgICAgICgtW1dlYkhUTUxWaWV3IF9tYXlTdGFydERyYWdB
dEV2ZW50TG9jYXRpb246XSk6IGRpdHRvLgotICAgICAgICAoLVtOU0FycmF5IF9pc1NlbGVjdGlv
bkV2ZW50Ol0pOiBkaXR0by4KLSAgICAgICAgKC1bTlNBcnJheSBfY2FuUHJvY2Vzc0RyYWdXaXRo
RHJhZ2dpbmdJbmZvOl0pOiBkaXR0by4KKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2lzU2VsZWN0
aW9uRXZlbnQ6XSk6IGRpdHRvLgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfY2FuUHJvY2Vzc0Ry
YWdXaXRoRHJhZ2dpbmdJbmZvOl0pOiBkaXR0by4KICAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1l
Lm06ICgtW1dlYkZyYW1lIF9hY3Rpb25JbmZvcm1hdGlvbkZvck5hdmlnYXRpb25UeXBlOmV2ZW50
Om9yaWdpbmFsVVJMOl0pOiBEb2VzIG5vdCBhbGxvdyBzaGFkb3cgY29udGVudCB3aGVuIGdldHRp
bmcgZWxlbWVudC4KICAgICAgICAgKiBXZWJWaWV3L1dlYkltYWdlVmlldy5tOiAoLVtXZWJJbWFn
ZVZpZXcgZWxlbWVudEF0UG9pbnQ6YWxsb3dTaGFkb3dDb250ZW50Ol0pOiBBZGRlZCB0byBjb25m
b3JtIHRvIHRoZSBXZWJEb2N1bWVudEVsZW1lbnQgcHJvdG9jb2wuCiAgICAgICAgICogV2ViVmll
dy9XZWJQREZWaWV3Lm06ICgtW1dlYlBERlZpZXcgZWxlbWVudEF0UG9pbnQ6YWxsb3dTaGFkb3dD
b250ZW50Ol0pOiBkaXR0by4KQEAgLTU1NTMsNyArNTU4OCw3IEBACiAgICAgICAgICogV2ViVmll
dy9XZWJIVE1MVmlldy5tOgogICAgICAgICAoLVtXZWJIVE1MVmlldyBfdXBkYXRlTW91c2VvdmVy
V2l0aEV2ZW50Ol0pOgogICAgICAgICAoLVtXZWJIVE1MVmlldyBfc3RhcnREcmFnZ2luZ0ltYWdl
OmF0Om9wZXJhdGlvbjpldmVudDpzb3VyY2VJc0RIVE1MOkRIVE1MV3JvdGVEYXRhOl0pOgotICAg
ICAgICAoLVtOU0FycmF5IGVsZW1lbnRBdFBvaW50Ol0pOgorICAgICAgICAoLVtXZWJIVE1MVmll
dyBlbGVtZW50QXRQb2ludDpdKToKICAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubToKICAgICAg
ICAgKiBXZWJWaWV3L1dlYlZpZXdQcml2YXRlLmg6CiAKQEAgLTU3MDgsMTIgKzU3NDMsMTIgQEAK
IAogICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubToKICAgICAgICAgKC1bV2ViSFRNTFZp
ZXcgX3VwZGF0ZUZvY3VzU3RhdGVdKToKLSAgICAgICAgKC1bTlNBcnJheSB2aWV3RGlkTW92ZVRv
V2luZG93XSk6Ci0gICAgICAgICgtW05TQXJyYXkgd2luZG93RGlkQmVjb21lS2V5Ol0pOgotICAg
ICAgICAoLVtOU0FycmF5IHdpbmRvd0RpZFJlc2lnbktleTpdKToKLSAgICAgICAgKC1bTlNBcnJh
eSBkcmFnSW1hZ2U6YXQ6b2Zmc2V0OmV2ZW50OnBhc3RlYm9hcmQ6c291cmNlOnNsaWRlQmFjazpd
KToKLSAgICAgICAgKC1bTlNBcnJheSBiZWNvbWVGaXJzdFJlc3BvbmRlcl0pOgotICAgICAgICAo
LVtOU0FycmF5IHJlc2lnbkZpcnN0UmVzcG9uZGVyXSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3
IHZpZXdEaWRNb3ZlVG9XaW5kb3ddKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgd2luZG93RGlk
QmVjb21lS2V5Ol0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyB3aW5kb3dEaWRSZXNpZ25LZXk6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGRyYWdJbWFnZTphdDpvZmZzZXQ6ZXZlbnQ6cGFz
dGVib2FyZDpzb3VyY2U6c2xpZGVCYWNrOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBiZWNv
bWVGaXJzdFJlc3BvbmRlcl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyByZXNpZ25GaXJzdFJl
c3BvbmRlcl0pOgogICAgICAgICAoLVtXZWJIVE1MVmlldyBfZm9ybUNvbnRyb2xJc1Jlc2lnbmlu
Z0ZpcnN0UmVzcG9uZGVyOl0pOgogICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5h
bC5oOgogICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXdQcml2YXRlLmg6CkluZGV4OiBXZWJL
aXQvV2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJL
aXQudmNwcm9qL1dlYktpdC52Y3Byb2oJKHJldmlzaW9uIDE1NDQyKQorKysgV2ViS2l0L1dlYktp
dC52Y3Byb2ovV2ViS2l0LnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQAog
CQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCiAJCQkJT3B0aW1pemF0aW9u
PSIwIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2plY3RE
aXIpXC4uXENPTSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmUmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXGxvYWRlciZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXC4uXFdlYkNvcmVca2h0bWxcZG9tJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cLi5cV2ViQ29yZVxraHRtbFxlY21hJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
Li5cV2ViQ29yZVxodG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxr
aHRtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVcY3NzJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxraHRtbFxtaXNjJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxwbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXC4uXFdlYkNvcmVcYnJpZGdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XC4uXFdlYkNvcmVccGFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVc
YnJpZGdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxwbGF0Zm9ybVxj
YWlyb1xjYWlyb1xzcmMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXHBs
YXRmb3JtXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVccmVuZGVy
aW5nJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxlZGl0aW5nJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxkb20mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlwuLlxXZWJDb3JlXHhtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4u
XFdlYkNvcmVca3dxJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5caWNvbnYmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxsaWJ4bWwyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cLi5caWN1XGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxKYXZh
U2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXEphdmFTY3JpcHRDb3Jl
XG9zLXdpbjMyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cSmF2YVNjcmlwdENvcmVc
d3RmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxGb3J3YXJkaW5nSGVh
ZGVycyZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcJChDb25maWd1cmF0aW9uTmFtZSlc
V2ViS2l0V2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikmcXVvdDsiDQorCQkJCUFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi5cQ09NJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXC4uXFdlYkNvcmVcbG9hZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2Vi
Q29yZVxodG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxjc3MmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXHBsYXRmb3JtJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxicmlkZ2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cLi5cV2ViQ29yZVxwYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
Li5cV2ViQ29yZVxicmlkZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3Jl
XHBsYXRmb3JtXGNhaXJvXGNhaXJvXHNyYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4u
XFdlYkNvcmVccGxhdGZvcm1cd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2Vi
Q29yZVxyZW5kZXJpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXGVk
aXRpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXGRvbSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVceG1sJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cLi5cV2ViQ29yZVxrd3EmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxp
Y29udiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXGxpYnhtbDImcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlwuLlxpY3VcaW5jbHVkZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXC4uXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cSmF2
YVNjcmlwdENvcmVcb3Mtd2luMzImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxKYXZh
U2NyaXB0Q29yZVx3dGYmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXEZv
cndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVwkKENvbmZpZ3Vy
YXRpb25OYW1lKVxXZWJLaXRXaW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKSZxdW90OyINCiAJ
CQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJTjMyO19ERUJVRztfV0lORE9XUztfVVNSRExM
O1dFQktJVF9FWFBPUlRTO19XSU4zMl9XSU5OVD0weDUwMCINCiAJCQkJTWluaW1hbFJlYnVpbGQ9
InRydWUiDQogCQkJCUV4Y2VwdGlvbkhhbmRsaW5nPSIwIg0KQEAgLTEyNiw3ICsxMjYsNyBAQAog
CQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIpXC4uXENPTSZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlwuLlxXZWJDb3JlXGxvYWRlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4u
XFdlYkNvcmVca2h0bWxcZG9tJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29y
ZVxraHRtbFxlY21hJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxodG1s
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxraHRtbCZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVcY3NzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cLi5cV2ViQ29yZVxraHRtbFxtaXNjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
Li5cV2ViQ29yZVxwbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNv
cmVcYnJpZGdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVccGFn
ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVcYnJpZGdlJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxwbGF0Zm9ybVxjYWlyb1xjYWlyb1xzcmMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXHBsYXRmb3JtXHdpbiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVccmVuZGVyaW5nJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxlZGl0aW5nJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cLi5cV2ViQ29yZVxkb20mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxX
ZWJDb3JlXHhtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVca3dxJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5caWNvbnYmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlwuLlxsaWJ4bWwyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5caWN1XGlu
Y2x1ZGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxKYXZhU2NyaXB0Q29yZSZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXEphdmFTY3JpcHRDb3JlXG9zLXdpbjMyJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cSmF2YVNjcmlwdENvcmVcd3RmJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVv
dDskKFdlYktpdE91dHB1dERpcilcJChDb25maWd1cmF0aW9uTmFtZSlcV2ViS2l0V2luJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikmcXVvdDsiDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi5cQ09NJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cLi5cV2ViQ29yZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVc
bG9hZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxodG1sJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxjc3MmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlwuLlxXZWJDb3JlXHBsYXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cLi5cV2ViQ29yZVxicmlkZ2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5c
V2ViQ29yZVxwYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxicmlk
Z2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXHBsYXRmb3JtXGNhaXJv
XGNhaXJvXHNyYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVccGxhdGZv
cm1cd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxyZW5kZXJpbmcm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXGVkaXRpbmcmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXGRvbSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXC4uXFdlYkNvcmVceG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2Vi
Q29yZVxrd3EmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxpY29udiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXC4uXGxpYnhtbDImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlwuLlxpY3VcaW5jbHVkZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXEphdmFTY3Jp
cHRDb3JlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cSmF2YVNjcmlwdENvcmVcb3Mt
d2luMzImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxKYXZhU2NyaXB0Q29yZVx3dGYm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJz
JnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVwkKENvbmZpZ3VyYXRpb25OYW1lKVxXZWJL
aXRXaW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKSZxdW90OyINCiAJCQkJUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnM9IldJTjMyO05ERUJVRztfV0lORE9XUztfVVNSRExMO1dFQktJVF9FWFBPUlRT
O19XSU4zMl9XSU5OVD0weDUwMCINCiAJCQkJRXhjZXB0aW9uSGFuZGxpbmc9IjAiDQogCQkJCVJ1
bnRpbWVMaWJyYXJ5PSIyIg0KSW5kZXg6IFdlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDE1NDQyKQorKysgV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQyLDcgKzEyNDIsNiBAQAogCQkwODY3RDY5
MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi8gPSB7CiAJCQlpc2EgPSBQQlhQ
cm9qZWN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDE0OUMyODMyMDg5MDJCMEYwMDhB
OUVGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldlYktpdCIg
Ki87Ci0JCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjMiOwogCQkJaGFzU2Nhbm5l
ZEZvckVuY29kaW5ncyA9IDE7CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJRW5nbGlzaCwKQEAg
LTEyNTYsNyArMTI1NSw2IEBACiAJCQltYWluR3JvdXAgPSAwODY3RDY5MUZFODQwMjhGQzAyQUFD
MDcgLyogV2ViS2l0ICovOwogCQkJcHJvZHVjdFJlZkdyb3VwID0gMDM0NzY4REZGRjM4QTUwNDEx
REI5QzhCIC8qIFByb2R1Y3RzICovOwogCQkJcHJvamVjdERpclBhdGggPSAiIjsKLQkJCXNob3Vs
ZENoZWNrQ29tcGF0aWJpbGl0eSA9IDE7CiAJCQl0YXJnZXRzID0gKAogCQkJCTkzOTgxMDBBMDgy
NEJGMDEwMDhERjAzOCAvKiBXZWJLaXQgKi8sCiAJCQkpOwpJbmRleDogV2ViS2l0L1dlYlZpZXcv
V2ViSFRNTFZpZXcubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvV2ViVmlldy9XZWJIVE1MVmlldy5t
CShyZXZpc2lvbiAxNTQ0MikKKysrIFdlYktpdC9XZWJWaWV3L1dlYkhUTUxWaWV3Lm0JKHdvcmtp
bmcgY29weSkKQEAgLTE5Nyw2ICsxOTcsOCBAQCB2b2lkICpfTlNTb2Z0TGlua2luZ0dldEZyYW1l
d29ya0Z1bmNQdHIoCiAtIChCT09MKV9jYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZDooTlNQ
YXN0ZWJvYXJkICopcGFzdGVib2FyZDsKIC0gKE5TVmlldyAqKV9oaXRWaWV3Rm9yRXZlbnQ6KE5T
RXZlbnQgKilldmVudDsKIC0gKHZvaWQpX3dyaXRlU2VsZWN0aW9uV2l0aFBhc3RlYm9hcmRUeXBl
czooTlNBcnJheSAqKXR5cGVzIHRvUGFzdGVib2FyZDooTlNQYXN0ZWJvYXJkICopcGFzdGVib2Fy
ZCBjYWNoZWRBdHRyaWJ1dGVkU3RyaW5nOihOU0F0dHJpYnV0ZWRTdHJpbmcgKilhdHRyaWJ1dGVk
U3RyaW5nOworLSAoRE9NUmFuZ2UgKilfZG9jdW1lbnRSYW5nZTsKKy0gKFdlYkZyYW1lQnJpZGdl
ICopX2JyaWRnZTsKIEBlbmQKIAogQGludGVyZmFjZSBXZWJIVE1MVmlldyAoV2ViRm9yd2FyZERl
Y2xhcmF0aW9uKSAvLyBGSVhNRTogUHV0IHRoaXMgaW4gYSBub3JtYWwgY2F0ZWdvcnkgYW5kIHN0
b3AgZG9pbmcgdGhlIGZvcndhcmQgZGVjbGFyYXRpb24gdHJpY2suCkBAIC0yNjUsNiArMjY3LDEx
IEBAIHZvaWQgKl9OU1NvZnRMaW5raW5nR2V0RnJhbWV3b3JrRnVuY1B0cigKIAogQGltcGxlbWVu
dGF0aW9uIFdlYkhUTUxWaWV3IChXZWJIVE1MVmlld0ZpbGVJbnRlcm5hbCkKIAorLSAoRE9NUmFu
Z2UgKilfZG9jdW1lbnRSYW5nZQoreworICAgIHJldHVybiBbW1tzZWxmIF9icmlkZ2VdIERPTURv
Y3VtZW50XSBfZG9jdW1lbnRSYW5nZV07Cit9CisKIC0gKEJPT0wpX2ltYWdlRXhpc3RzQXRQYXRo
czooTlNBcnJheSAqKXBhdGhzCiB7CiAgICAgTlNBcnJheSAqaW1hZ2VNSU1FVHlwZXMgPSBbV2Vi
RnJhbWVCcmlkZ2Ugc3VwcG9ydGVkSW1hZ2VSZXNvdXJjZU1JTUVUeXBlc107CkBAIC0xOTg2LDIy
ICsxOTkzLDYgQEAgc3RhdGljIFdlYkhUTUxWaWV3ICpsYXN0SGl0VmlldyA9IG5pbDsKICAgICBb
TlNQYXN0ZWJvYXJkIF93ZWJfc2V0RmluZFBhc3RlYm9hcmRTdHJpbmc6W3NlbGYgc2VsZWN0ZWRT
dHJpbmddIHdpdGhPd25lcjpzZWxmXTsKIH0KIAotLSAoTlNBcnJheSAqKXBhc3RlYm9hcmRUeXBl
c0ZvclNlbGVjdGlvbgotewotICAgIGlmIChbc2VsZiBfY2FuU21hcnRDb3B5T3JEZWxldGVdKSB7
Ci0gICAgICAgIE5TTXV0YWJsZUFycmF5ICp0eXBlcyA9IFtbW1tzZWxmIGNsYXNzXSBfc2VsZWN0
aW9uUGFzdGVib2FyZFR5cGVzXSBtdXRhYmxlQ29weV0gYXV0b3JlbGVhc2VdOwotICAgICAgICBb
dHlwZXMgYWRkT2JqZWN0OldlYlNtYXJ0UGFzdGVQYm9hcmRUeXBlXTsKLSAgICAgICAgcmV0dXJu
IHR5cGVzOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBbW3NlbGYgY2xhc3NdIF9zZWxl
Y3Rpb25QYXN0ZWJvYXJkVHlwZXNdOwotICAgIH0KLX0KLQotLSAodm9pZCl3cml0ZVNlbGVjdGlv
bldpdGhQYXN0ZWJvYXJkVHlwZXM6KE5TQXJyYXkgKil0eXBlcyB0b1Bhc3RlYm9hcmQ6KE5TUGFz
dGVib2FyZCAqKXBhc3RlYm9hcmQKLXsKLSAgICBbc2VsZiBfd3JpdGVTZWxlY3Rpb25XaXRoUGFz
dGVib2FyZFR5cGVzOnR5cGVzIHRvUGFzdGVib2FyZDpwYXN0ZWJvYXJkIGNhY2hlZEF0dHJpYnV0
ZWRTdHJpbmc6bmlsXTsKLX0KLQogLSAoQk9PTCl3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZDoo
TlNQYXN0ZWJvYXJkICopcGFzdGVib2FyZCB0eXBlczooTlNBcnJheSAqKXR5cGVzCiB7CiAgICAg
W3Bhc3RlYm9hcmQgZGVjbGFyZVR5cGVzOnR5cGVzIG93bmVyOm5pbF07CkBAIC0yMDQzLDMxICsy
MDM0LDYgQEAgc3RhdGljIFdlYkhUTUxWaWV3ICpsYXN0SGl0VmlldyA9IG5pbDsKICAgICBbc2Vs
ZiBjZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhOnNlbmRlcl07CiB9CiAKLS0gKE5TUmVjdClz
ZWxlY3Rpb25SZWN0Ci17Ci0gICAgcmV0dXJuIFtbc2VsZiBfYnJpZGdlXSBzZWxlY3Rpb25SZWN0
XTsKLX0KLQotLSAoTlNWaWV3ICopc2VsZWN0aW9uVmlldwotewotICAgIHJldHVybiBzZWxmOwot
fQotCi0tIChOU0ltYWdlICopc2VsZWN0aW9uSW1hZ2VGb3JjaW5nV2hpdGVUZXh0OihCT09MKWZv
cmNlV2hpdGVUZXh0Ci17Ci0gICAgaWYgKFtzZWxmIF9oYXNTZWxlY3Rpb25dKQotICAgICAgICBy
ZXR1cm4gW1tzZWxmIF9icmlkZ2VdIHNlbGVjdGlvbkltYWdlRm9yY2luZ1doaXRlVGV4dDpmb3Jj
ZVdoaXRlVGV4dF07Ci0KLSAgICByZXR1cm4gbmlsOwotfQotCi0tIChOU1JlY3Qpc2VsZWN0aW9u
SW1hZ2VSZWN0Ci17Ci0gICAgaWYgKFtzZWxmIF9oYXNTZWxlY3Rpb25dKQotICAgICAgICByZXR1
cm4gW1tzZWxmIF9icmlkZ2VdIHZpc2libGVTZWxlY3Rpb25SZWN0XTsKLSAgICByZXR1cm4gTlNa
ZXJvUmVjdDsKLX0KLQogLSAoQk9PTCl2YWxpZGF0ZVVzZXJJbnRlcmZhY2VJdGVtOihpZCA8TlNW
YWxpZGF0ZWRVc2VySW50ZXJmYWNlSXRlbT4paXRlbSAKIHsKICAgICBTRUwgYWN0aW9uID0gW2l0
ZW0gYWN0aW9uXTsKQEAgLTI1NTksNjcgKzI1MjUsNiBAQCBzdGF0aWMgV2ViSFRNTFZpZXcgKmxh
c3RIaXRWaWV3ID0gbmlsOwogICAgIHJldHVybiBbW3NlbGYgX2JyaWRnZV0gc2VhcmNoRm9yOnN0
cmluZyBkaXJlY3Rpb246Zm9yd2FyZCBjYXNlU2Vuc2l0aXZlOmNhc2VGbGFnIHdyYXA6d3JhcEZs
YWddOwogfQogCi0tIChET01SYW5nZSAqKV9kb2N1bWVudFJhbmdlCi17Ci0gICAgcmV0dXJuIFtb
W3NlbGYgX2JyaWRnZV0gRE9NRG9jdW1lbnRdIF9kb2N1bWVudFJhbmdlXTsKLX0KLQotLSAoTlNT
dHJpbmcgKilzdHJpbmcKLXsKLSAgICByZXR1cm4gW1tzZWxmIF9icmlkZ2VdIHN0cmluZ0ZvclJh
bmdlOltzZWxmIF9kb2N1bWVudFJhbmdlXV07Ci19Ci0KLS0gKE5TQXR0cmlidXRlZFN0cmluZyAq
KV9hdHRyaWJ1dGVTdHJpbmdGcm9tRE9NUmFuZ2U6KERPTVJhbmdlICopcmFuZ2UKLXsKLSAgICBO
U0F0dHJpYnV0ZWRTdHJpbmcgKmF0dHJpYnV0ZWRTdHJpbmc7Ci0jaWYgIUxPR19ESVNBQkxFRCAg
ICAgICAgCi0gICAgZG91YmxlIHN0YXJ0ID0gQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCk7Ci0j
ZW5kaWYgICAgCi0gICAgYXR0cmlidXRlZFN0cmluZyA9IFtbW05TQXR0cmlidXRlZFN0cmluZyBh
bGxvY10gX2luaXRXaXRoRE9NUmFuZ2U6cmFuZ2VdIGF1dG9yZWxlYXNlXTsKLSNpZiAhTE9HX0RJ
U0FCTEVECi0gICAgZG91YmxlIGR1cmF0aW9uID0gQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkg
LSBzdGFydDsKLSAgICBMT0coVGltaW5nLCAiY3JlYXRpbmcgYXR0cmlidXRlZCBzdHJpbmcgZnJv
bSBzZWxlY3Rpb24gdG9vayAlZiBzZWNvbmRzLiIsIGR1cmF0aW9uKTsKLSNlbmRpZgotICAgIHJl
dHVybiBhdHRyaWJ1dGVkU3RyaW5nOwotfQotCi0tIChOU0F0dHJpYnV0ZWRTdHJpbmcgKilhdHRy
aWJ1dGVkU3RyaW5nCi17Ci0gICAgV2ViRnJhbWVCcmlkZ2UgKmJyaWRnZSA9IFtzZWxmIF9icmlk
Z2VdOwotICAgIERPTURvY3VtZW50ICpkb2N1bWVudCA9IFticmlkZ2UgRE9NRG9jdW1lbnRdOwot
ICAgIE5TQXR0cmlidXRlZFN0cmluZyAqYXR0cmlidXRlZFN0cmluZyA9IFtzZWxmIF9hdHRyaWJ1
dGVTdHJpbmdGcm9tRE9NUmFuZ2U6W2RvY3VtZW50IF9kb2N1bWVudFJhbmdlXV07Ci0gICAgaWYg
KGF0dHJpYnV0ZWRTdHJpbmcgPT0gbmlsKSB7Ci0gICAgICAgIGF0dHJpYnV0ZWRTdHJpbmcgPSBb
YnJpZGdlIGF0dHJpYnV0ZWRTdHJpbmdGcm9tOmRvY3VtZW50IHN0YXJ0T2Zmc2V0OjAgdG86bmls
IGVuZE9mZnNldDowXTsKLSAgICB9Ci0gICAgcmV0dXJuIGF0dHJpYnV0ZWRTdHJpbmc7Ci19Ci0K
LS0gKE5TU3RyaW5nICopc2VsZWN0ZWRTdHJpbmcKLXsKLSAgICByZXR1cm4gW1tzZWxmIF9icmlk
Z2VdIHNlbGVjdGVkU3RyaW5nXTsKLX0KLQotLSAoTlNBdHRyaWJ1dGVkU3RyaW5nICopc2VsZWN0
ZWRBdHRyaWJ1dGVkU3RyaW5nCi17Ci0gICAgV2ViRnJhbWVCcmlkZ2UgKmJyaWRnZSA9IFtzZWxm
IF9icmlkZ2VdOwotICAgIE5TQXR0cmlidXRlZFN0cmluZyAqYXR0cmlidXRlZFN0cmluZyA9IFtz
ZWxmIF9hdHRyaWJ1dGVTdHJpbmdGcm9tRE9NUmFuZ2U6W3NlbGYgX3NlbGVjdGVkUmFuZ2VdXTsK
LSAgICBpZiAoYXR0cmlidXRlZFN0cmluZyA9PSBuaWwpIHsKLSAgICAgICAgYXR0cmlidXRlZFN0
cmluZyA9IFticmlkZ2Ugc2VsZWN0ZWRBdHRyaWJ1dGVkU3RyaW5nXTsKLSAgICB9Ci0gICAgcmV0
dXJuIGF0dHJpYnV0ZWRTdHJpbmc7Ci19Ci0KLS0gKHZvaWQpc2VsZWN0QWxsCi17Ci0gICAgW1tz
ZWxmIF9icmlkZ2VdIHNlbGVjdEFsbF07Ci19Ci0KLS8vIFJlbW92ZSB0aGUgc2VsZWN0aW9uLgot
LSAodm9pZClkZXNlbGVjdEFsbAotewotICAgIFtbc2VsZiBfYnJpZGdlXSBkZXNlbGVjdEFsbF07
Ci19Ci0KIC0gKHZvaWQpZGVzZWxlY3RUZXh0CiB7CiAgICAgW1tzZWxmIF9icmlkZ2VdIGRlc2Vs
ZWN0VGV4dF07CkBAIC0yOTk3LDI1MSArMjkwMiw5MSBAQCBkb25lOgogICAgIHJldHVybiBbTlNB
cnJheSBhcnJheVdpdGhPYmplY3Q6W3BhdGggbGFzdFBhdGhDb21wb25lbnRdXTsKIH0KIAotLSAo
Qk9PTClfY2FuUHJvY2Vzc0RyYWdXaXRoRHJhZ2dpbmdJbmZvOihpZCA8TlNEcmFnZ2luZ0luZm8+
KWRyYWdnaW5nSW5mbworLSAodm9pZCltb3VzZVVwOihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBB
U1NFUlQoW3NlbGYgX2lzVG9wSFRNTFZpZXddKTsKKyAgICBOU0lucHV0TWFuYWdlciAqY3VycmVu
dElucHV0TWFuYWdlciA9IFtOU0lucHV0TWFuYWdlciBjdXJyZW50SW5wdXRNYW5hZ2VyXTsKKyAg
ICBpZiAoW2N1cnJlbnRJbnB1dE1hbmFnZXIgd2FudHNUb0hhbmRsZU1vdXNlRXZlbnRzXSAmJiBb
Y3VycmVudElucHV0TWFuYWdlciBoYW5kbGVNb3VzZUV2ZW50OmV2ZW50XSkKKyAgICAgICAgcmV0
dXJuOwogCi0gICAgTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkID0gW2RyYWdnaW5nSW5mbyBkcmFn
Z2luZ1Bhc3RlYm9hcmRdOwotICAgIE5TTXV0YWJsZVNldCAqdHlwZXMgPSBbTlNNdXRhYmxlU2V0
IHNldFdpdGhBcnJheTpbcGFzdGVib2FyZCB0eXBlc11dOwotICAgIFt0eXBlcyBpbnRlcnNlY3RT
ZXQ6W05TU2V0IHNldFdpdGhBcnJheTpbV2ViSFRNTFZpZXcgX2luc2VydGFibGVQYXN0ZWJvYXJk
VHlwZXNdXV07Ci0gICAgaWYgKFt0eXBlcyBjb3VudF0gPT0gMCkKLSAgICAgICAgcmV0dXJuIE5P
OwotICAgIGlmIChbdHlwZXMgY291bnRdID09IDEKLSAgICAgICAgICAgICYmIFt0eXBlcyBjb250
YWluc09iamVjdDpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdCi0gICAgICAgICAgICAmJiAhW3NlbGYg
X2ltYWdlRXhpc3RzQXRQYXRoczpbcGFzdGVib2FyZCBwcm9wZXJ0eUxpc3RGb3JUeXBlOk5TRmls
ZW5hbWVzUGJvYXJkVHlwZV1dKQotICAgICAgICByZXR1cm4gTk87CisgICAgW3NlbGYgcmV0YWlu
XTsKIAotICAgIE5TUG9pbnQgcG9pbnQgPSBbc2VsZiBjb252ZXJ0UG9pbnQ6W2RyYWdnaW5nSW5m
byBkcmFnZ2luZ0xvY2F0aW9uXSBmcm9tVmlldzpuaWxdOwotICAgIE5TRGljdGlvbmFyeSAqZWxl
bWVudCA9IFtzZWxmIGVsZW1lbnRBdFBvaW50OnBvaW50IGFsbG93U2hhZG93Q29udGVudDpZRVNd
OwotICAgIGlmIChbW3NlbGYgX3dlYlZpZXddIGlzRWRpdGFibGVdIHx8IFtbZWxlbWVudCBvYmpl
Y3RGb3JLZXk6V2ViRWxlbWVudERPTU5vZGVLZXldIGlzQ29udGVudEVkaXRhYmxlXSkgewotICAg
ICAgICAvLyBDYW4ndCBkcmFnIG9udG8gdGhlIHNlbGVjdGlvbiBiZWluZyBkcmFnZ2VkLgotICAg
ICAgICBpZiAoX3ByaXZhdGUtPmluaXRpYXRlZERyYWcgJiYgW1tlbGVtZW50IG9iamVjdEZvcktl
eTpXZWJFbGVtZW50SXNTZWxlY3RlZEtleV0gYm9vbFZhbHVlXSkKLSAgICAgICAgICAgIHJldHVy
biBOTzsKLSAgICAgICAgcmV0dXJuIFlFUzsKLSAgICB9CisgICAgW3NlbGYgX3N0b3BBdXRvc2Ny
b2xsVGltZXJdOworICAgIFtbc2VsZiBfYnJpZGdlXSBtb3VzZVVwOmV2ZW50XTsKKyAgICBbc2Vs
ZiBfdXBkYXRlTW91c2VvdmVyV2l0aEZha2VFdmVudF07CiAKLSAgICByZXR1cm4gTk87CisgICAg
W3NlbGYgcmVsZWFzZV07CiB9CiAKLS0gKEJPT0wpX2lzTW92ZURyYWcKKy0gKHZvaWQpbW91c2VN
b3ZlZE5vdGlmaWNhdGlvbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKLSAgICBB
U1NFUlQoW3NlbGYgX2lzVG9wSFRNTFZpZXddKTsKLSAgICByZXR1cm4gX3ByaXZhdGUtPmluaXRp
YXRlZERyYWcKLSAgICAgICAgJiYgW3NlbGYgX2lzRWRpdGFibGVdICYmIFtzZWxmIF9oYXNTZWxl
Y3Rpb25dCi0gICAgICAgICYmICEoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3Nd
ICYgTlNBbHRlcm5hdGVLZXlNYXNrKTsKKyAgICBbc2VsZiBfdXBkYXRlTW91c2VvdmVyV2l0aEV2
ZW50Oltbbm90aWZpY2F0aW9uIHVzZXJJbmZvXSBvYmplY3RGb3JLZXk6QCJOU0V2ZW50Il1dOwog
fQogCi0tIChCT09MKV9pc05TQ29sb3JEcmFnOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5n
SW5mbworLy8gcmV0dXJuaW5nIFlFUyBmcm9tIHRoaXMgbWV0aG9kIGlzIHRoZSB3YXkgd2UgdGVs
bCBBcHBLaXQgdGhhdCBpdCBpcyBvayBmb3IgdGhpcyB2aWV3CisvLyB0byBiZSBpbiB0aGUga2V5
IGxvb3AgZXZlbiB3aGVuICJ0YWIgdG8gYWxsIGNvbnRyb2xzIiBpcyBub3Qgb24uCistIChCT09M
KW5lZWRzUGFuZWxUb0JlY29tZUtleQogewotICAgIHJldHVybiBbW1tkcmFnZ2luZ0luZm8gZHJh
Z2dpbmdQYXN0ZWJvYXJkXSB0eXBlc10gY29udGFpbnNPYmplY3Q6TlNDb2xvclBib2FyZFR5cGVd
OworICAgIHJldHVybiBZRVM7CiB9CiAKLS0gKE5TRHJhZ09wZXJhdGlvbilkcmFnZ2luZ1VwZGF0
ZWRXaXRoRHJhZ2dpbmdJbmZvOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbyBhY3Rp
b25NYXNrOih1bnNpZ25lZCBpbnQpYWN0aW9uTWFzaworLSAoTlNWaWV3ICopbmV4dFZhbGlkS2V5
VmlldwogewotICAgIEFTU0VSVChbc2VsZiBfaXNUb3BIVE1MVmlld10pOwotCi0gICAgTlNEcmFn
T3BlcmF0aW9uIG9wZXJhdGlvbiA9IE5TRHJhZ09wZXJhdGlvbk5vbmU7Ci0gICAgaWYgKGFjdGlv
bk1hc2sgJiBXZWJEcmFnRGVzdGluYXRpb25BY3Rpb25ESFRNTCkKLSAgICAgICAgb3BlcmF0aW9u
ID0gW1tzZWxmIF9icmlkZ2VdIGRyYWdPcGVyYXRpb25Gb3JEcmFnZ2luZ0luZm86ZHJhZ2dpbmdJ
bmZvXTsKLSAgICBfcHJpdmF0ZS0+d2ViQ29yZUhhbmRsaW5nRHJhZyA9IChvcGVyYXRpb24gIT0g
TlNEcmFnT3BlcmF0aW9uTm9uZSk7Ci0KLSAgICBpZiAoKGFjdGlvbk1hc2sgJiBXZWJEcmFnRGVz
dGluYXRpb25BY3Rpb25FZGl0KSAmJiAhX3ByaXZhdGUtPndlYkNvcmVIYW5kbGluZ0RyYWcgJiYg
W3NlbGYgX2NhblByb2Nlc3NEcmFnV2l0aERyYWdnaW5nSW5mbzpkcmFnZ2luZ0luZm9dKSB7Ci0g
ICAgICAgIGlmIChbc2VsZiBfaXNOU0NvbG9yRHJhZzpkcmFnZ2luZ0luZm9dKQotICAgICAgICAg
ICAgb3BlcmF0aW9uID0gTlNEcmFnT3BlcmF0aW9uR2VuZXJpYzsKLSAgICAgICAgZWxzZSB7Ci0g
ICAgICAgICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW3NlbGYgX3dlYlZpZXddOwotICAgICAgICAg
ICAgW3dlYlZpZXcgbW92ZURyYWdDYXJldFRvUG9pbnQ6W3dlYlZpZXcgY29udmVydFBvaW50Oltk
cmFnZ2luZ0luZm8gZHJhZ2dpbmdMb2NhdGlvbl0gZnJvbVZpZXc6bmlsXV07Ci0gICAgICAgICAg
ICBvcGVyYXRpb24gPSBbc2VsZiBfaXNNb3ZlRHJhZ10gPyBOU0RyYWdPcGVyYXRpb25Nb3ZlIDog
TlNEcmFnT3BlcmF0aW9uQ29weTsKKyAgICBOU1ZpZXcgKnZpZXcgPSBuaWw7CisgICAgQk9PTCBs
b29rSW5zaWRlV2ViRnJhbWVWaWV3cyA9IFlFUzsKKyAgICBpZiAoW3NlbGYgaXNIaWRkZW5Pckhh
c0hpZGRlbkFuY2VzdG9yXSkgeworICAgICAgICBsb29rSW5zaWRlV2ViRnJhbWVWaWV3cyA9IE5P
OworICAgIH0gZWxzZSBpZiAoW3NlbGYgX2ZyYW1lXSA9PSBbW3NlbGYgX3dlYlZpZXddIG1haW5G
cmFtZV0pIHsKKyAgICAgICAgLy8gQ2hlY2sgZm9yIGNhc2Ugd2hlcmUgZmlyc3QgcmVzcG9uZGVy
IGlzIGxhc3QgZnJhbWUgaW4gYSBmcmFtZXNldCwgYW5kIHdlIGFyZQorICAgICAgICAvLyB0aGUg
dG9wLWxldmVsIGRvY3VtZW50Vmlldy4KKyAgICAgICAgTlNSZXNwb25kZXIgKmZpcnN0UmVzcG9u
ZGVyID0gW1tzZWxmIHdpbmRvd10gZmlyc3RSZXNwb25kZXJdOworICAgICAgICBpZiAoKGZpcnN0
UmVzcG9uZGVyICE9IHNlbGYpICYmIFtmaXJzdFJlc3BvbmRlciBpc0tpbmRPZkNsYXNzOltXZWJI
VE1MVmlldyBjbGFzc11dICYmIChbKE5TVmlldyAqKWZpcnN0UmVzcG9uZGVyIG5leHRLZXlWaWV3
XSA9PSBuaWwpKSB7CisgICAgICAgICAgICBsb29rSW5zaWRlV2ViRnJhbWVWaWV3cyA9IE5POwog
ICAgICAgICB9Ci0gICAgfSBlbHNlCi0gICAgICAgIFtbc2VsZiBfd2ViVmlld10gcmVtb3ZlRHJh
Z0NhcmV0XTsKLQotICAgIHJldHVybiBvcGVyYXRpb247CisgICAgfQorICAgIAorICAgIGlmIChs
b29rSW5zaWRlV2ViRnJhbWVWaWV3cykgeworICAgICAgICB2aWV3ID0gW1tzZWxmIF9icmlkZ2Vd
IG5leHRLZXlWaWV3SW5zaWRlV2ViRnJhbWVWaWV3c107CisgICAgfQorICAgIAorICAgIGlmICh2
aWV3ID09IG5pbCkgeworICAgICAgICB2aWV3ID0gW3N1cGVyIG5leHRWYWxpZEtleVZpZXddOwor
ICAgICAgICAvLyBJZiB0aGVyZSdzIG5vIG5leHQgdmlldyB3aXJlZCB1cCwgd2UgbXVzdCBiZSBp
biB0aGUgbGFzdCBzdWJmcmFtZSwgb3Igd2UgYXJlCisgICAgICAgIC8vIGJlaW5nIGNhbGxlZCBh
dCBhbiB1bnVzdWFsIHRpbWUgd2hlbiB0aGUgdmlld3MgaGF2ZSBub3QgeWV0IGJlZW4gd2lyZWQg
dG9nZXRoZXIuCisgICAgICAgIC8vIFRoZXJlJ3Mgbm8gZGlyZWN0IGxpbmsgdG8gdGhlIG5leHQg
dmFsaWQga2V5IHZpZXc7IGdldCBpdCBmcm9tIHRoZSBicmlkZ2UuCisgICAgICAgIC8vIE5vdGUg
dGhhdCB2aWV3ID09IHNlbGYgaGVyZSB3aGVuIG5leHRLZXlWaWV3IHJldHVybnMgbmlsLCBkdWUg
dG8gQXBwS2l0IG9kZG5lc3MuCisgICAgICAgIC8vIFdlJ2xsIGNoZWNrIGZvciBib3RoIG5pbCBh
bmQgc2VsZiBpbiBjYXNlIHRoZSBBcHBLaXQgb2RkbmVzcyBnb2VzIGF3YXkuCisgICAgICAgIC8v
IFdlYkZyYW1lVmlldyBoYXMgdGhpcyBzYW1lIGtpbmQgb2YgbG9naWMgZm9yIHRoZSBwcmV2aW91
c1ZhbGlkS2V5VmlldyBjYXNlLgorICAgICAgICBpZiAodmlldyA9PSBuaWwgfHwgdmlldyA9PSBz
ZWxmKSB7CisgICAgICAgICAgICB2aWV3ID0gW1tzZWxmIF9icmlkZ2VdIG5leHRWYWxpZEtleVZp
ZXdPdXRzaWRlV2ViRnJhbWVWaWV3c107CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAg
IHJldHVybiB2aWV3OwogfQogCi0tICh2b2lkKWRyYWdnaW5nQ2FuY2VsbGVkV2l0aERyYWdnaW5n
SW5mbzooaWQgPE5TRHJhZ2dpbmdJbmZvPilkcmFnZ2luZ0luZm8KKy0gKE5TVmlldyAqKXByZXZp
b3VzVmFsaWRLZXlWaWV3CiB7Ci0gICAgQVNTRVJUKFtzZWxmIF9pc1RvcEhUTUxWaWV3XSk7Ci0K
LSAgICBbW3NlbGYgX2JyaWRnZV0gZHJhZ0V4aXRlZFdpdGhEcmFnZ2luZ0luZm86ZHJhZ2dpbmdJ
bmZvXTsKLSAgICBbW3NlbGYgX3dlYlZpZXddIHJlbW92ZURyYWdDYXJldF07CisgICAgTlNWaWV3
ICp2aWV3ID0gbmlsOworICAgIGlmICghW3NlbGYgaXNIaWRkZW5Pckhhc0hpZGRlbkFuY2VzdG9y
XSkKKyAgICAgICAgdmlldyA9IFtbc2VsZiBfYnJpZGdlXSBwcmV2aW91c0tleVZpZXdJbnNpZGVX
ZWJGcmFtZVZpZXdzXTsKKyAgICBpZiAodmlldyA9PSBuaWwpCisgICAgICAgIHZpZXcgPSBbc3Vw
ZXIgcHJldmlvdXNWYWxpZEtleVZpZXddOworICAgIHJldHVybiB2aWV3OwogfQogCi0tIChCT09M
KWNvbmNsdWRlRHJhZ0ZvckRyYWdnaW5nSW5mbzooaWQgPE5TRHJhZ2dpbmdJbmZvPilkcmFnZ2lu
Z0luZm8gYWN0aW9uTWFzazoodW5zaWduZWQgaW50KWFjdGlvbk1hc2sKKy0gKEJPT0wpYmVjb21l
Rmlyc3RSZXNwb25kZXIKIHsKLSAgICBBU1NFUlQoW3NlbGYgX2lzVG9wSFRNTFZpZXddKTsKLQot
ICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbc2VsZiBfd2ViVmlld107Ci0gICAgV2ViRnJhbWVCcmlk
Z2UgKmJyaWRnZSA9IFtzZWxmIF9icmlkZ2VdOwotICAgIGlmIChfcHJpdmF0ZS0+d2ViQ29yZUhh
bmRsaW5nRHJhZykgewotICAgICAgICBBU1NFUlQoYWN0aW9uTWFzayAmIFdlYkRyYWdEZXN0aW5h
dGlvbkFjdGlvbkRIVE1MKTsKLSAgICAgICAgW1t3ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVy
XSB3ZWJWaWV3OndlYlZpZXcgd2lsbFBlcmZvcm1EcmFnRGVzdGluYXRpb25BY3Rpb246V2ViRHJh
Z0Rlc3RpbmF0aW9uQWN0aW9uREhUTUwgZm9yRHJhZ2dpbmdJbmZvOmRyYWdnaW5nSW5mb107Ci0g
ICAgICAgIFticmlkZ2UgY29uY2x1ZGVEcmFnRm9yRHJhZ2dpbmdJbmZvOmRyYWdnaW5nSW5mb107
Ci0gICAgICAgIHJldHVybiBZRVM7Ci0gICAgfQotCi0gICAgaWYgKCEoYWN0aW9uTWFzayAmIFdl
YkRyYWdEZXN0aW5hdGlvbkFjdGlvbkVkaXQpKQotICAgICAgICByZXR1cm4gTk87Ci0KLSAgICBO
U1BvaW50IHBvaW50ID0gW3NlbGYgY29udmVydFBvaW50OltkcmFnZ2luZ0luZm8gZHJhZ2dpbmdM
b2NhdGlvbl0gZnJvbVZpZXc6bmlsXTsKLSAgICBOU0RpY3Rpb25hcnkgKmVsZW1lbnQgPSBbc2Vs
ZiBlbGVtZW50QXRQb2ludDpwb2ludCBhbGxvd1NoYWRvd0NvbnRlbnQ6WUVTXTsKLSAgICBBU1NF
UlQoZWxlbWVudCk7Ci0gICAgV2ViRnJhbWUgKmlubmVyRnJhbWUgPSAoV2ViRnJhbWUgKilbZWxl
bWVudCBvYmplY3RGb3JLZXk6V2ViRWxlbWVudEZyYW1lS2V5XTsKLSAgICBBU1NFUlQoaW5uZXJG
cmFtZSk7Ci0gICAgQVNTRVJUKFtpbm5lckZyYW1lIGlzS2luZE9mQ2xhc3M6W1dlYkZyYW1lIGNs
YXNzXV0pOwotICAgIFdlYkZyYW1lQnJpZGdlICppbm5lckJyaWRnZSA9IFtpbm5lckZyYW1lIF9i
cmlkZ2VdOwotCi0gICAgaWYgKFtzZWxmIF9pc05TQ29sb3JEcmFnOmRyYWdnaW5nSW5mb10pIHsK
LSAgICAgICAgTlNDb2xvciAqY29sb3IgPSBbTlNDb2xvciBjb2xvckZyb21QYXN0ZWJvYXJkOltk
cmFnZ2luZ0luZm8gZHJhZ2dpbmdQYXN0ZWJvYXJkXV07Ci0gICAgICAgIGlmICghY29sb3IpCi0g
ICAgICAgICAgICByZXR1cm4gTk87Ci0gICAgICAgIERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKnN0
eWxlID0gW3NlbGYgX2VtcHR5U3R5bGVdOwotICAgICAgICBbc3R5bGUgc2V0UHJvcGVydHk6QCJj
b2xvciIgOltzZWxmIF9jb2xvckFzU3RyaW5nOmNvbG9yXSA6QCIiXTsKLSAgICAgICAgaWYgKFtb
d2ViVmlldyBfZWRpdGluZ0RlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZpZXcgc2hvdWxk
QXBwbHlTdHlsZTpzdHlsZSB0b0VsZW1lbnRzSW5ET01SYW5nZTpbaW5uZXJCcmlkZ2Ugc2VsZWN0
ZWRET01SYW5nZV1dKSB7Ci0gICAgICAgICAgICBbW3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3YXJk
ZXJdIHdlYlZpZXc6d2ViVmlldyB3aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbjpXZWJE
cmFnRGVzdGluYXRpb25BY3Rpb25FZGl0IGZvckRyYWdnaW5nSW5mbzpkcmFnZ2luZ0luZm9dOwot
ICAgICAgICAgICAgW2lubmVyQnJpZGdlIGFwcGx5U3R5bGU6c3R5bGUgd2l0aFVuZG9BY3Rpb246
V2ViVW5kb0FjdGlvblNldENvbG9yXTsKLSAgICAgICAgICAgIHJldHVybiBZRVM7Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIE5POwotICAgIH0KLQotICAgIEJPT0wgZGlkSW5zZXJ0ID0gTk87
Ci0gICAgaWYgKFtzZWxmIF9jYW5Qcm9jZXNzRHJhZ1dpdGhEcmFnZ2luZ0luZm86ZHJhZ2dpbmdJ
bmZvXSkgewotICAgICAgICBOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQgPSBbZHJhZ2dpbmdJbmZv
IGRyYWdnaW5nUGFzdGVib2FyZF07Ci0gICAgICAgIGlmIChbc2VsZiBfaXNNb3ZlRHJhZ10gfHwg
W2lubmVyQnJpZGdlIGlzRHJhZ0NhcmV0UmljaGx5RWRpdGFibGVdKSB7IAotICAgICAgICAgICAg
Qk9PTCBjaG9zZVBsYWluVGV4dDsKLSAgICAgICAgICAgIERPTURvY3VtZW50RnJhZ21lbnQgKmZy
YWdtZW50ID0gW3NlbGYgX2RvY3VtZW50RnJhZ21lbnRGcm9tUGFzdGVib2FyZDpwYXN0ZWJvYXJk
IGFsbG93UGxhaW5UZXh0OllFUyBjaG9zZVBsYWluVGV4dDomY2hvc2VQbGFpblRleHRdOwotICAg
ICAgICAgICAgaWYgKGZyYWdtZW50ICYmIFtzZWxmIF9zaG91bGRJbnNlcnRGcmFnbWVudDpmcmFn
bWVudCByZXBsYWNpbmdET01SYW5nZTpbaW5uZXJCcmlkZ2UgZHJhZ0NhcmV0RE9NUmFuZ2VdIGdp
dmVuQWN0aW9uOldlYlZpZXdJbnNlcnRBY3Rpb25Ecm9wcGVkXSkgewotICAgICAgICAgICAgICAg
IFtbd2ViVmlldyBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3IHdpbGxQZXJm
b3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uOldlYkRyYWdEZXN0aW5hdGlvbkFjdGlvbkVkaXQgZm9y
RHJhZ2dpbmdJbmZvOmRyYWdnaW5nSW5mb107Ci0gICAgICAgICAgICAgICAgaWYgKFtzZWxmIF9p
c01vdmVEcmFnXSkgewotICAgICAgICAgICAgICAgICAgICBCT09MIHNtYXJ0TW92ZSA9IFtpbm5l
ckJyaWRnZSBzZWxlY3Rpb25HcmFudWxhcml0eV0gPT0gV2ViQnJpZGdlU2VsZWN0QnlXb3JkICYm
IFtzZWxmIF9jYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZDpwYXN0ZWJvYXJkXTsKLSAgICAg
ICAgICAgICAgICAgICAgW2lubmVyQnJpZGdlIG1vdmVTZWxlY3Rpb25Ub0RyYWdDYXJldDpmcmFn
bWVudCBzbWFydE1vdmU6c21hcnRNb3ZlXTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgICAgICBbaW5uZXJCcmlkZ2Ugc2V0U2VsZWN0aW9uVG9EcmFnQ2FyZXRdOwot
ICAgICAgICAgICAgICAgICAgICBbaW5uZXJCcmlkZ2UgcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFn
bWVudDpmcmFnbWVudCBzZWxlY3RSZXBsYWNlbWVudDpZRVMgc21hcnRSZXBsYWNlOltzZWxmIF9j
YW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZDpwYXN0ZWJvYXJkXSBtYXRjaFN0eWxlOmNob3Nl
UGxhaW5UZXh0XTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZGlkSW5zZXJ0
ID0gWUVTOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgTlNT
dHJpbmcgKnRleHQgPSBbc2VsZiBfcGxhaW5UZXh0RnJvbVBhc3RlYm9hcmQ6cGFzdGVib2FyZF07
Ci0gICAgICAgICAgICBpZiAodGV4dCAmJiBbc2VsZiBfc2hvdWxkSW5zZXJ0VGV4dDp0ZXh0IHJl
cGxhY2luZ0RPTVJhbmdlOltpbm5lckJyaWRnZSBkcmFnQ2FyZXRET01SYW5nZV0gZ2l2ZW5BY3Rp
b246V2ViVmlld0luc2VydEFjdGlvbkRyb3BwZWRdKSB7Ci0gICAgICAgICAgICAgICAgW1t3ZWJW
aWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZpZXcgd2lsbFBlcmZvcm1EcmFn
RGVzdGluYXRpb25BY3Rpb246V2ViRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRWRpdCBmb3JEcmFnZ2lu
Z0luZm86ZHJhZ2dpbmdJbmZvXTsKLSAgICAgICAgICAgICAgICBbaW5uZXJCcmlkZ2Ugc2V0U2Vs
ZWN0aW9uVG9EcmFnQ2FyZXRdOwotICAgICAgICAgICAgICAgIFtpbm5lckJyaWRnZSByZXBsYWNl
U2VsZWN0aW9uV2l0aFRleHQ6dGV4dCBzZWxlY3RSZXBsYWNlbWVudDpZRVMgc21hcnRSZXBsYWNl
OltzZWxmIF9jYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZDpwYXN0ZWJvYXJkXV07Ci0gICAg
ICAgICAgICAgICAgZGlkSW5zZXJ0ID0gWUVTOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgfQotICAgIFt3ZWJWaWV3IHJlbW92ZURyYWdDYXJldF07Ci0gICAgcmV0dXJuIGRpZEluc2Vy
dDsKLX0KLQotLSAoTlNEaWN0aW9uYXJ5ICopZWxlbWVudEF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQK
LXsKLSAgICByZXR1cm4gW3NlbGYgZWxlbWVudEF0UG9pbnQ6cG9pbnQgYWxsb3dTaGFkb3dDb250
ZW50Ok5PXTsKLX0KLQotLSAoTlNEaWN0aW9uYXJ5ICopZWxlbWVudEF0UG9pbnQ6KE5TUG9pbnQp
cG9pbnQgYWxsb3dTaGFkb3dDb250ZW50OihCT09MKWFsbG93OwotewotICAgIERPTU5vZGUgKmlu
bmVyTm9kZSA9IG5pbDsKLSAgICBET01Ob2RlICppbm5lck5vblNoYXJlZE5vZGUgPSBuaWw7Ci0g
ICAgRE9NRWxlbWVudCAqVVJMRWxlbWVudCA9IG5pbDsKLSAgICBbW3NlbGYgX2JyaWRnZV0gZ2V0
SW5uZXJOb25TaGFyZWROb2RlOiZpbm5lck5vblNoYXJlZE5vZGUgaW5uZXJOb2RlOiZpbm5lck5v
ZGUgVVJMRWxlbWVudDomVVJMRWxlbWVudCBhdFBvaW50OnBvaW50IGFsbG93U2hhZG93Q29udGVu
dDphbGxvd107Ci0gICAgTlNWaWV3ICppbm5lclZpZXcgPSBbW1tbaW5uZXJOb25TaGFyZWROb2Rl
IG93bmVyRG9jdW1lbnRdIHdlYkZyYW1lXSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld107Ci0gICAg
TlNQb2ludCBpbm5lclBvaW50ID0gaW5uZXJWaWV3ID8gW3NlbGYgY29udmVydFBvaW50OnBvaW50
IHRvVmlldzppbm5lclZpZXddIDogcG9pbnQ7Ci0gICAgcmV0dXJuIFtbW1dlYkVsZW1lbnREaWN0
aW9uYXJ5IGFsbG9jXSBpbml0V2l0aElubmVyTm9uU2hhcmVkTm9kZTppbm5lck5vblNoYXJlZE5v
ZGUgaW5uZXJOb2RlOmlubmVyTm9kZSBVUkxFbGVtZW50OlVSTEVsZW1lbnQgYW5kUG9pbnQ6aW5u
ZXJQb2ludF0gYXV0b3JlbGVhc2VdOwotfQotCi0tICh2b2lkKW1vdXNlVXA6KE5TRXZlbnQgKill
dmVudAotewotICAgIE5TSW5wdXRNYW5hZ2VyICpjdXJyZW50SW5wdXRNYW5hZ2VyID0gW05TSW5w
dXRNYW5hZ2VyIGN1cnJlbnRJbnB1dE1hbmFnZXJdOwotICAgIGlmIChbY3VycmVudElucHV0TWFu
YWdlciB3YW50c1RvSGFuZGxlTW91c2VFdmVudHNdICYmIFtjdXJyZW50SW5wdXRNYW5hZ2VyIGhh
bmRsZU1vdXNlRXZlbnQ6ZXZlbnRdKQotICAgICAgICByZXR1cm47Ci0KLSAgICBbc2VsZiByZXRh
aW5dOwotCi0gICAgW3NlbGYgX3N0b3BBdXRvc2Nyb2xsVGltZXJdOwotICAgIFtbc2VsZiBfYnJp
ZGdlXSBtb3VzZVVwOmV2ZW50XTsKLSAgICBbc2VsZiBfdXBkYXRlTW91c2VvdmVyV2l0aEZha2VF
dmVudF07Ci0KLSAgICBbc2VsZiByZWxlYXNlXTsKLX0KLQotLSAodm9pZCltb3VzZU1vdmVkTm90
aWZpY2F0aW9uOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIFtzZWxmIF91
cGRhdGVNb3VzZW92ZXJXaXRoRXZlbnQ6W1tub3RpZmljYXRpb24gdXNlckluZm9dIG9iamVjdEZv
cktleTpAIk5TRXZlbnQiXV07Ci19Ci0KLS0gKEJPT0wpc3VwcG9ydHNUZXh0RW5jb2RpbmcKLXsK
LSAgICByZXR1cm4gWUVTOwotfQotCi0vLyByZXR1cm5pbmcgWUVTIGZyb20gdGhpcyBtZXRob2Qg
aXMgdGhlIHdheSB3ZSB0ZWxsIEFwcEtpdCB0aGF0IGl0IGlzIG9rIGZvciB0aGlzIHZpZXcKLS8v
IHRvIGJlIGluIHRoZSBrZXkgbG9vcCBldmVuIHdoZW4gInRhYiB0byBhbGwgY29udHJvbHMiIGlz
IG5vdCBvbi4KLS0gKEJPT0wpbmVlZHNQYW5lbFRvQmVjb21lS2V5Ci17Ci0gICAgcmV0dXJuIFlF
UzsKLX0KLQotLSAoTlNWaWV3ICopbmV4dFZhbGlkS2V5VmlldwotewotICAgIE5TVmlldyAqdmll
dyA9IG5pbDsKLSAgICBCT09MIGxvb2tJbnNpZGVXZWJGcmFtZVZpZXdzID0gWUVTOwotICAgIGlm
IChbc2VsZiBpc0hpZGRlbk9ySGFzSGlkZGVuQW5jZXN0b3JdKSB7Ci0gICAgICAgIGxvb2tJbnNp
ZGVXZWJGcmFtZVZpZXdzID0gTk87Ci0gICAgfSBlbHNlIGlmIChbc2VsZiBfZnJhbWVdID09IFtb
c2VsZiBfd2ViVmlld10gbWFpbkZyYW1lXSkgewotICAgICAgICAvLyBDaGVjayBmb3IgY2FzZSB3
aGVyZSBmaXJzdCByZXNwb25kZXIgaXMgbGFzdCBmcmFtZSBpbiBhIGZyYW1lc2V0LCBhbmQgd2Ug
YXJlCi0gICAgICAgIC8vIHRoZSB0b3AtbGV2ZWwgZG9jdW1lbnRWaWV3LgotICAgICAgICBOU1Jl
c3BvbmRlciAqZmlyc3RSZXNwb25kZXIgPSBbW3NlbGYgd2luZG93XSBmaXJzdFJlc3BvbmRlcl07
Ci0gICAgICAgIGlmICgoZmlyc3RSZXNwb25kZXIgIT0gc2VsZikgJiYgW2ZpcnN0UmVzcG9uZGVy
IGlzS2luZE9mQ2xhc3M6W1dlYkhUTUxWaWV3IGNsYXNzXV0gJiYgKFsoTlNWaWV3ICopZmlyc3RS
ZXNwb25kZXIgbmV4dEtleVZpZXddID09IG5pbCkpIHsKLSAgICAgICAgICAgIGxvb2tJbnNpZGVX
ZWJGcmFtZVZpZXdzID0gTk87Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgaWYgKGxvb2tJ
bnNpZGVXZWJGcmFtZVZpZXdzKSB7Ci0gICAgICAgIHZpZXcgPSBbW3NlbGYgX2JyaWRnZV0gbmV4
dEtleVZpZXdJbnNpZGVXZWJGcmFtZVZpZXdzXTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKHZpZXcg
PT0gbmlsKSB7Ci0gICAgICAgIHZpZXcgPSBbc3VwZXIgbmV4dFZhbGlkS2V5Vmlld107Ci0gICAg
ICAgIC8vIElmIHRoZXJlJ3Mgbm8gbmV4dCB2aWV3IHdpcmVkIHVwLCB3ZSBtdXN0IGJlIGluIHRo
ZSBsYXN0IHN1YmZyYW1lLCBvciB3ZSBhcmUKLSAgICAgICAgLy8gYmVpbmcgY2FsbGVkIGF0IGFu
IHVudXN1YWwgdGltZSB3aGVuIHRoZSB2aWV3cyBoYXZlIG5vdCB5ZXQgYmVlbiB3aXJlZCB0b2dl
dGhlci4KLSAgICAgICAgLy8gVGhlcmUncyBubyBkaXJlY3QgbGluayB0byB0aGUgbmV4dCB2YWxp
ZCBrZXkgdmlldzsgZ2V0IGl0IGZyb20gdGhlIGJyaWRnZS4KLSAgICAgICAgLy8gTm90ZSB0aGF0
IHZpZXcgPT0gc2VsZiBoZXJlIHdoZW4gbmV4dEtleVZpZXcgcmV0dXJucyBuaWwsIGR1ZSB0byBB
cHBLaXQgb2RkbmVzcy4KLSAgICAgICAgLy8gV2UnbGwgY2hlY2sgZm9yIGJvdGggbmlsIGFuZCBz
ZWxmIGluIGNhc2UgdGhlIEFwcEtpdCBvZGRuZXNzIGdvZXMgYXdheS4KLSAgICAgICAgLy8gV2Vi
RnJhbWVWaWV3IGhhcyB0aGlzIHNhbWUga2luZCBvZiBsb2dpYyBmb3IgdGhlIHByZXZpb3VzVmFs
aWRLZXlWaWV3IGNhc2UuCi0gICAgICAgIGlmICh2aWV3ID09IG5pbCB8fCB2aWV3ID09IHNlbGYp
IHsKLSAgICAgICAgICAgIHZpZXcgPSBbW3NlbGYgX2JyaWRnZV0gbmV4dFZhbGlkS2V5Vmlld091
dHNpZGVXZWJGcmFtZVZpZXdzXTsKLSAgICAgICAgfQotICAgIH0KLSAgICAgICAgCi0gICAgcmV0
dXJuIHZpZXc7Ci19Ci0KLS0gKE5TVmlldyAqKXByZXZpb3VzVmFsaWRLZXlWaWV3Ci17Ci0gICAg
TlNWaWV3ICp2aWV3ID0gbmlsOwotICAgIGlmICghW3NlbGYgaXNIaWRkZW5Pckhhc0hpZGRlbkFu
Y2VzdG9yXSkKLSAgICAgICAgdmlldyA9IFtbc2VsZiBfYnJpZGdlXSBwcmV2aW91c0tleVZpZXdJ
bnNpZGVXZWJGcmFtZVZpZXdzXTsKLSAgICBpZiAodmlldyA9PSBuaWwpCi0gICAgICAgIHZpZXcg
PSBbc3VwZXIgcHJldmlvdXNWYWxpZEtleVZpZXddOwotICAgIHJldHVybiB2aWV3OwotfQotCi0t
IChCT09MKWJlY29tZUZpcnN0UmVzcG9uZGVyCi17Ci0gICAgTlNWaWV3ICp2aWV3ID0gbmlsOwot
ICAgIGlmICghW1tzZWxmIF93ZWJWaWV3XSBfaXNQZXJmb3JtaW5nUHJvZ3JhbW1hdGljRm9jdXNd
ICYmICFfcHJpdmF0ZS0+d2lsbEJlY29tZUZpcnN0UmVzcG9uZGVyRm9yTm9kZUZvY3VzKSB7Ci0g
ICAgICAgIHN3aXRjaCAoW1tzZWxmIHdpbmRvd10ga2V5Vmlld1NlbGVjdGlvbkRpcmVjdGlvbl0p
IHsKLSAgICAgICAgICAgIGNhc2UgTlNEaXJlY3RTZWxlY3Rpb246Ci0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICBjYXNlIE5TU2VsZWN0aW5nTmV4dDoKLSAgICAgICAgICAgICAg
ICB2aWV3ID0gW1tzZWxmIF9icmlkZ2VdIG5leHRLZXlWaWV3SW5zaWRlV2ViRnJhbWVWaWV3c107
Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIE5TU2VsZWN0aW5nUHJl
dmlvdXM6Ci0gICAgICAgICAgICAgICAgdmlldyA9IFtbc2VsZiBfYnJpZGdlXSBwcmV2aW91c0tl
eVZpZXdJbnNpZGVXZWJGcmFtZVZpZXdzXTsKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICBO
U1ZpZXcgKnZpZXcgPSBuaWw7CisgICAgaWYgKCFbW3NlbGYgX3dlYlZpZXddIF9pc1BlcmZvcm1p
bmdQcm9ncmFtbWF0aWNGb2N1c10gJiYgIV9wcml2YXRlLT53aWxsQmVjb21lRmlyc3RSZXNwb25k
ZXJGb3JOb2RlRm9jdXMpIHsKKyAgICAgICAgc3dpdGNoIChbW3NlbGYgd2luZG93XSBrZXlWaWV3
U2VsZWN0aW9uRGlyZWN0aW9uXSkgeworICAgICAgICAgICAgY2FzZSBOU0RpcmVjdFNlbGVjdGlv
bjoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgTlNTZWxlY3RpbmdO
ZXh0OgorICAgICAgICAgICAgICAgIHZpZXcgPSBbW3NlbGYgX2JyaWRnZV0gbmV4dEtleVZpZXdJ
bnNpZGVXZWJGcmFtZVZpZXdzXTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgTlNTZWxlY3RpbmdQcmV2aW91czoKKyAgICAgICAgICAgICAgICB2aWV3ID0gW1tzZWxm
IF9icmlkZ2VdIHByZXZpb3VzS2V5Vmlld0luc2lkZVdlYkZyYW1lVmlld3NdOworICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQogICAgIF9wcml2YXRlLT53aWxsQmVjb21l
Rmlyc3RSZXNwb25kZXJGb3JOb2RlRm9jdXMgPSBOTzsKQEAgLTU3NzAsMyArNTUxNSwyNjcgQEAg
c3RhdGljIERPTVJhbmdlICp1bmlvbkRPTVJhbmdlcyhET01SYW5nZQogfQogCiBAZW5kCisKK0Bp
bXBsZW1lbnRhdGlvbiBXZWJIVE1MVmlldyAoV2ViRG9jdW1lbnRQcml2YXRlUHJvdG9jb2xzKQor
CistIChOU1JlY3Qpc2VsZWN0aW9uUmVjdAoreworICAgIHJldHVybiBbW3NlbGYgX2JyaWRnZV0g
c2VsZWN0aW9uUmVjdF07Cit9CisKKy0gKE5TVmlldyAqKXNlbGVjdGlvblZpZXcKK3sKKyAgICBy
ZXR1cm4gc2VsZjsKK30KKworLSAoTlNJbWFnZSAqKXNlbGVjdGlvbkltYWdlRm9yY2luZ1doaXRl
VGV4dDooQk9PTClmb3JjZVdoaXRlVGV4dAoreworICAgIGlmIChbc2VsZiBfaGFzU2VsZWN0aW9u
XSkKKyAgICAgICAgcmV0dXJuIFtbc2VsZiBfYnJpZGdlXSBzZWxlY3Rpb25JbWFnZUZvcmNpbmdX
aGl0ZVRleHQ6Zm9yY2VXaGl0ZVRleHRdOworCisgICAgcmV0dXJuIG5pbDsKK30KKworLSAoTlNS
ZWN0KXNlbGVjdGlvbkltYWdlUmVjdAoreworICAgIGlmIChbc2VsZiBfaGFzU2VsZWN0aW9uXSkK
KyAgICAgICAgcmV0dXJuIFtbc2VsZiBfYnJpZGdlXSB2aXNpYmxlU2VsZWN0aW9uUmVjdF07Cisg
ICAgcmV0dXJuIE5TWmVyb1JlY3Q7Cit9CisKKy0gKE5TQXJyYXkgKilwYXN0ZWJvYXJkVHlwZXNG
b3JTZWxlY3Rpb24KK3sKKyAgICBpZiAoW3NlbGYgX2NhblNtYXJ0Q29weU9yRGVsZXRlXSkgewor
ICAgICAgICBOU011dGFibGVBcnJheSAqdHlwZXMgPSBbW1tbc2VsZiBjbGFzc10gX3NlbGVjdGlv
blBhc3RlYm9hcmRUeXBlc10gbXV0YWJsZUNvcHldIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgW3R5
cGVzIGFkZE9iamVjdDpXZWJTbWFydFBhc3RlUGJvYXJkVHlwZV07CisgICAgICAgIHJldHVybiB0
eXBlczsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gW1tzZWxmIGNsYXNzXSBfc2VsZWN0
aW9uUGFzdGVib2FyZFR5cGVzXTsKKyAgICB9Cit9CisKKy0gKHZvaWQpd3JpdGVTZWxlY3Rpb25X
aXRoUGFzdGVib2FyZFR5cGVzOihOU0FycmF5ICopdHlwZXMgdG9QYXN0ZWJvYXJkOihOU1Bhc3Rl
Ym9hcmQgKilwYXN0ZWJvYXJkCit7CisgICAgW3NlbGYgX3dyaXRlU2VsZWN0aW9uV2l0aFBhc3Rl
Ym9hcmRUeXBlczp0eXBlcyB0b1Bhc3RlYm9hcmQ6cGFzdGVib2FyZCBjYWNoZWRBdHRyaWJ1dGVk
U3RyaW5nOm5pbF07Cit9CisKKy0gKHZvaWQpc2VsZWN0QWxsCit7CisgICAgW1tzZWxmIF9icmlk
Z2VdIHNlbGVjdEFsbF07Cit9CisKKy0gKHZvaWQpZGVzZWxlY3RBbGwKK3sKKyAgICBbW3NlbGYg
X2JyaWRnZV0gZGVzZWxlY3RBbGxdOworfQorCistIChOU1N0cmluZyAqKXN0cmluZworeworICAg
IHJldHVybiBbW3NlbGYgX2JyaWRnZV0gc3RyaW5nRm9yUmFuZ2U6W3NlbGYgX2RvY3VtZW50UmFu
Z2VdXTsKK30KKworLSAoTlNBdHRyaWJ1dGVkU3RyaW5nICopX2F0dHJpYnV0ZVN0cmluZ0Zyb21E
T01SYW5nZTooRE9NUmFuZ2UgKilyYW5nZQoreworICAgIE5TQXR0cmlidXRlZFN0cmluZyAqYXR0
cmlidXRlZFN0cmluZzsKKyNpZiAhTE9HX0RJU0FCTEVEICAgICAgICAKKyAgICBkb3VibGUgc3Rh
cnQgPSBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKTsKKyNlbmRpZiAgICAKKyAgICBhdHRyaWJ1
dGVkU3RyaW5nID0gW1tbTlNBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBfaW5pdFdpdGhET01SYW5n
ZTpyYW5nZV0gYXV0b3JlbGVhc2VdOworI2lmICFMT0dfRElTQUJMRUQKKyAgICBkb3VibGUgZHVy
YXRpb24gPSBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSAtIHN0YXJ0OworICAgIExPRyhUaW1p
bmcsICJjcmVhdGluZyBhdHRyaWJ1dGVkIHN0cmluZyBmcm9tIHNlbGVjdGlvbiB0b29rICVmIHNl
Y29uZHMuIiwgZHVyYXRpb24pOworI2VuZGlmCisgICAgcmV0dXJuIGF0dHJpYnV0ZWRTdHJpbmc7
Cit9CisKKy0gKE5TQXR0cmlidXRlZFN0cmluZyAqKWF0dHJpYnV0ZWRTdHJpbmcKK3sKKyAgICBX
ZWJGcmFtZUJyaWRnZSAqYnJpZGdlID0gW3NlbGYgX2JyaWRnZV07CisgICAgRE9NRG9jdW1lbnQg
KmRvY3VtZW50ID0gW2JyaWRnZSBET01Eb2N1bWVudF07CisgICAgTlNBdHRyaWJ1dGVkU3RyaW5n
ICphdHRyaWJ1dGVkU3RyaW5nID0gW3NlbGYgX2F0dHJpYnV0ZVN0cmluZ0Zyb21ET01SYW5nZTpb
ZG9jdW1lbnQgX2RvY3VtZW50UmFuZ2VdXTsKKyAgICBpZiAoYXR0cmlidXRlZFN0cmluZyA9PSBu
aWwpIHsKKyAgICAgICAgYXR0cmlidXRlZFN0cmluZyA9IFticmlkZ2UgYXR0cmlidXRlZFN0cmlu
Z0Zyb206ZG9jdW1lbnQgc3RhcnRPZmZzZXQ6MCB0bzpuaWwgZW5kT2Zmc2V0OjBdOworICAgIH0K
KyAgICByZXR1cm4gYXR0cmlidXRlZFN0cmluZzsKK30KKworLSAoTlNTdHJpbmcgKilzZWxlY3Rl
ZFN0cmluZworeworICAgIHJldHVybiBbW3NlbGYgX2JyaWRnZV0gc2VsZWN0ZWRTdHJpbmddOwor
fQorCistIChOU0F0dHJpYnV0ZWRTdHJpbmcgKilzZWxlY3RlZEF0dHJpYnV0ZWRTdHJpbmcKK3sK
KyAgICBXZWJGcmFtZUJyaWRnZSAqYnJpZGdlID0gW3NlbGYgX2JyaWRnZV07CisgICAgTlNBdHRy
aWJ1dGVkU3RyaW5nICphdHRyaWJ1dGVkU3RyaW5nID0gW3NlbGYgX2F0dHJpYnV0ZVN0cmluZ0Zy
b21ET01SYW5nZTpbc2VsZiBfc2VsZWN0ZWRSYW5nZV1dOworICAgIGlmIChhdHRyaWJ1dGVkU3Ry
aW5nID09IG5pbCkgeworICAgICAgICBhdHRyaWJ1dGVkU3RyaW5nID0gW2JyaWRnZSBzZWxlY3Rl
ZEF0dHJpYnV0ZWRTdHJpbmddOworICAgIH0KKyAgICByZXR1cm4gYXR0cmlidXRlZFN0cmluZzsK
K30KKworLSAoQk9PTClzdXBwb3J0c1RleHRFbmNvZGluZworeworICAgIHJldHVybiBZRVM7Cit9
CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYkhUTUxWaWV3IChXZWJEb2N1bWVudEludGVy
bmFsUHJvdG9jb2xzKQorCistIChCT09MKV9jYW5Qcm9jZXNzRHJhZ1dpdGhEcmFnZ2luZ0luZm86
KGlkIDxOU0RyYWdnaW5nSW5mbz4pZHJhZ2dpbmdJbmZvCit7CisgICAgQVNTRVJUKFtzZWxmIF9p
c1RvcEhUTUxWaWV3XSk7CisKKyAgICBOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQgPSBbZHJhZ2dp
bmdJbmZvIGRyYWdnaW5nUGFzdGVib2FyZF07CisgICAgTlNNdXRhYmxlU2V0ICp0eXBlcyA9IFtO
U011dGFibGVTZXQgc2V0V2l0aEFycmF5OltwYXN0ZWJvYXJkIHR5cGVzXV07CisgICAgW3R5cGVz
IGludGVyc2VjdFNldDpbTlNTZXQgc2V0V2l0aEFycmF5OltXZWJIVE1MVmlldyBfaW5zZXJ0YWJs
ZVBhc3RlYm9hcmRUeXBlc11dXTsKKyAgICBpZiAoW3R5cGVzIGNvdW50XSA9PSAwKQorICAgICAg
ICByZXR1cm4gTk87CisgICAgaWYgKFt0eXBlcyBjb3VudF0gPT0gMQorICAgICAgICAgICAgJiYg
W3R5cGVzIGNvbnRhaW5zT2JqZWN0Ok5TRmlsZW5hbWVzUGJvYXJkVHlwZV0KKyAgICAgICAgICAg
ICYmICFbc2VsZiBfaW1hZ2VFeGlzdHNBdFBhdGhzOltwYXN0ZWJvYXJkIHByb3BlcnR5TGlzdEZv
clR5cGU6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXV0pCisgICAgICAgIHJldHVybiBOTzsKKworICAg
IE5TUG9pbnQgcG9pbnQgPSBbc2VsZiBjb252ZXJ0UG9pbnQ6W2RyYWdnaW5nSW5mbyBkcmFnZ2lu
Z0xvY2F0aW9uXSBmcm9tVmlldzpuaWxdOworICAgIE5TRGljdGlvbmFyeSAqZWxlbWVudCA9IFtz
ZWxmIGVsZW1lbnRBdFBvaW50OnBvaW50IGFsbG93U2hhZG93Q29udGVudDpZRVNdOworICAgIGlm
IChbW3NlbGYgX3dlYlZpZXddIGlzRWRpdGFibGVdIHx8IFtbZWxlbWVudCBvYmplY3RGb3JLZXk6
V2ViRWxlbWVudERPTU5vZGVLZXldIGlzQ29udGVudEVkaXRhYmxlXSkgeworICAgICAgICAvLyBD
YW4ndCBkcmFnIG9udG8gdGhlIHNlbGVjdGlvbiBiZWluZyBkcmFnZ2VkLgorICAgICAgICBpZiAo
X3ByaXZhdGUtPmluaXRpYXRlZERyYWcgJiYgW1tlbGVtZW50IG9iamVjdEZvcktleTpXZWJFbGVt
ZW50SXNTZWxlY3RlZEtleV0gYm9vbFZhbHVlXSkKKyAgICAgICAgICAgIHJldHVybiBOTzsKKyAg
ICAgICAgcmV0dXJuIFlFUzsKKyAgICB9CisKKyAgICByZXR1cm4gTk87Cit9CisKKy0gKEJPT0wp
X2lzTW92ZURyYWcKK3sKKyAgICBBU1NFUlQoW3NlbGYgX2lzVG9wSFRNTFZpZXddKTsKKyAgICBy
ZXR1cm4gX3ByaXZhdGUtPmluaXRpYXRlZERyYWcKKyAgICAgICAgJiYgW3NlbGYgX2lzRWRpdGFi
bGVdICYmIFtzZWxmIF9oYXNTZWxlY3Rpb25dCisgICAgICAgICYmICEoW1tOU0FwcCBjdXJyZW50
RXZlbnRdIG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKTsKK30KKworLSAoQk9P
TClfaXNOU0NvbG9yRHJhZzooaWQgPE5TRHJhZ2dpbmdJbmZvPilkcmFnZ2luZ0luZm8KK3sKKyAg
ICByZXR1cm4gW1tbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nUGFzdGVib2FyZF0gdHlwZXNdIGNvbnRh
aW5zT2JqZWN0Ok5TQ29sb3JQYm9hcmRUeXBlXTsKK30KKworLSAoTlNEcmFnT3BlcmF0aW9uKWRy
YWdnaW5nVXBkYXRlZFdpdGhEcmFnZ2luZ0luZm86KGlkIDxOU0RyYWdnaW5nSW5mbz4pZHJhZ2dp
bmdJbmZvIGFjdGlvbk1hc2s6KHVuc2lnbmVkIGludClhY3Rpb25NYXNrCit7CisgICAgQVNTRVJU
KFtzZWxmIF9pc1RvcEhUTUxWaWV3XSk7CisKKyAgICBOU0RyYWdPcGVyYXRpb24gb3BlcmF0aW9u
ID0gTlNEcmFnT3BlcmF0aW9uTm9uZTsKKyAgICBpZiAoYWN0aW9uTWFzayAmIFdlYkRyYWdEZXN0
aW5hdGlvbkFjdGlvbkRIVE1MKQorICAgICAgICBvcGVyYXRpb24gPSBbW3NlbGYgX2JyaWRnZV0g
ZHJhZ09wZXJhdGlvbkZvckRyYWdnaW5nSW5mbzpkcmFnZ2luZ0luZm9dOworICAgIF9wcml2YXRl
LT53ZWJDb3JlSGFuZGxpbmdEcmFnID0gKG9wZXJhdGlvbiAhPSBOU0RyYWdPcGVyYXRpb25Ob25l
KTsKKworICAgIGlmICgoYWN0aW9uTWFzayAmIFdlYkRyYWdEZXN0aW5hdGlvbkFjdGlvbkVkaXQp
ICYmICFfcHJpdmF0ZS0+d2ViQ29yZUhhbmRsaW5nRHJhZyAmJiBbc2VsZiBfY2FuUHJvY2Vzc0Ry
YWdXaXRoRHJhZ2dpbmdJbmZvOmRyYWdnaW5nSW5mb10pIHsKKyAgICAgICAgaWYgKFtzZWxmIF9p
c05TQ29sb3JEcmFnOmRyYWdnaW5nSW5mb10pCisgICAgICAgICAgICBvcGVyYXRpb24gPSBOU0Ry
YWdPcGVyYXRpb25HZW5lcmljOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFdlYlZpZXcg
KndlYlZpZXcgPSBbc2VsZiBfd2ViVmlld107CisgICAgICAgICAgICBbd2ViVmlldyBtb3ZlRHJh
Z0NhcmV0VG9Qb2ludDpbd2ViVmlldyBjb252ZXJ0UG9pbnQ6W2RyYWdnaW5nSW5mbyBkcmFnZ2lu
Z0xvY2F0aW9uXSBmcm9tVmlldzpuaWxdXTsKKyAgICAgICAgICAgIG9wZXJhdGlvbiA9IFtzZWxm
IF9pc01vdmVEcmFnXSA/IE5TRHJhZ09wZXJhdGlvbk1vdmUgOiBOU0RyYWdPcGVyYXRpb25Db3B5
OworICAgICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIFtbc2VsZiBfd2ViVmlld10gcmVtb3Zl
RHJhZ0NhcmV0XTsKKworICAgIHJldHVybiBvcGVyYXRpb247Cit9CisKKy0gKHZvaWQpZHJhZ2dp
bmdDYW5jZWxsZWRXaXRoRHJhZ2dpbmdJbmZvOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5n
SW5mbworeworICAgIEFTU0VSVChbc2VsZiBfaXNUb3BIVE1MVmlld10pOworCisgICAgW1tzZWxm
IF9icmlkZ2VdIGRyYWdFeGl0ZWRXaXRoRHJhZ2dpbmdJbmZvOmRyYWdnaW5nSW5mb107CisgICAg
W1tzZWxmIF93ZWJWaWV3XSByZW1vdmVEcmFnQ2FyZXRdOworfQorCistIChCT09MKWNvbmNsdWRl
RHJhZ0ZvckRyYWdnaW5nSW5mbzooaWQgPE5TRHJhZ2dpbmdJbmZvPilkcmFnZ2luZ0luZm8gYWN0
aW9uTWFzazoodW5zaWduZWQgaW50KWFjdGlvbk1hc2sKK3sKKyAgICBBU1NFUlQoW3NlbGYgX2lz
VG9wSFRNTFZpZXddKTsKKworICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbc2VsZiBfd2ViVmlld107
CisgICAgV2ViRnJhbWVCcmlkZ2UgKmJyaWRnZSA9IFtzZWxmIF9icmlkZ2VdOworICAgIGlmIChf
cHJpdmF0ZS0+d2ViQ29yZUhhbmRsaW5nRHJhZykgeworICAgICAgICBBU1NFUlQoYWN0aW9uTWFz
ayAmIFdlYkRyYWdEZXN0aW5hdGlvbkFjdGlvbkRIVE1MKTsKKyAgICAgICAgW1t3ZWJWaWV3IF9V
SURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZpZXcgd2lsbFBlcmZvcm1EcmFnRGVzdGlu
YXRpb25BY3Rpb246V2ViRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uREhUTUwgZm9yRHJhZ2dpbmdJbmZv
OmRyYWdnaW5nSW5mb107CisgICAgICAgIFticmlkZ2UgY29uY2x1ZGVEcmFnRm9yRHJhZ2dpbmdJ
bmZvOmRyYWdnaW5nSW5mb107CisgICAgICAgIHJldHVybiBZRVM7CisgICAgfQorCisgICAgaWYg
KCEoYWN0aW9uTWFzayAmIFdlYkRyYWdEZXN0aW5hdGlvbkFjdGlvbkVkaXQpKQorICAgICAgICBy
ZXR1cm4gTk87CisKKyAgICBOU1BvaW50IHBvaW50ID0gW3NlbGYgY29udmVydFBvaW50OltkcmFn
Z2luZ0luZm8gZHJhZ2dpbmdMb2NhdGlvbl0gZnJvbVZpZXc6bmlsXTsKKyAgICBOU0RpY3Rpb25h
cnkgKmVsZW1lbnQgPSBbc2VsZiBlbGVtZW50QXRQb2ludDpwb2ludCBhbGxvd1NoYWRvd0NvbnRl
bnQ6WUVTXTsKKyAgICBBU1NFUlQoZWxlbWVudCk7CisgICAgV2ViRnJhbWUgKmlubmVyRnJhbWUg
PSAoV2ViRnJhbWUgKilbZWxlbWVudCBvYmplY3RGb3JLZXk6V2ViRWxlbWVudEZyYW1lS2V5XTsK
KyAgICBBU1NFUlQoaW5uZXJGcmFtZSk7CisgICAgQVNTRVJUKFtpbm5lckZyYW1lIGlzS2luZE9m
Q2xhc3M6W1dlYkZyYW1lIGNsYXNzXV0pOworICAgIFdlYkZyYW1lQnJpZGdlICppbm5lckJyaWRn
ZSA9IFtpbm5lckZyYW1lIF9icmlkZ2VdOworCisgICAgaWYgKFtzZWxmIF9pc05TQ29sb3JEcmFn
OmRyYWdnaW5nSW5mb10pIHsKKyAgICAgICAgTlNDb2xvciAqY29sb3IgPSBbTlNDb2xvciBjb2xv
ckZyb21QYXN0ZWJvYXJkOltkcmFnZ2luZ0luZm8gZHJhZ2dpbmdQYXN0ZWJvYXJkXV07CisgICAg
ICAgIGlmICghY29sb3IpCisgICAgICAgICAgICByZXR1cm4gTk87CisgICAgICAgIERPTUNTU1N0
eWxlRGVjbGFyYXRpb24gKnN0eWxlID0gW3NlbGYgX2VtcHR5U3R5bGVdOworICAgICAgICBbc3R5
bGUgc2V0UHJvcGVydHk6QCJjb2xvciIgOltzZWxmIF9jb2xvckFzU3RyaW5nOmNvbG9yXSA6QCIi
XTsKKyAgICAgICAgaWYgKFtbd2ViVmlldyBfZWRpdGluZ0RlbGVnYXRlRm9yd2FyZGVyXSB3ZWJW
aWV3OndlYlZpZXcgc2hvdWxkQXBwbHlTdHlsZTpzdHlsZSB0b0VsZW1lbnRzSW5ET01SYW5nZTpb
aW5uZXJCcmlkZ2Ugc2VsZWN0ZWRET01SYW5nZV1dKSB7CisgICAgICAgICAgICBbW3dlYlZpZXcg
X1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldyB3aWxsUGVyZm9ybURyYWdEZXN0
aW5hdGlvbkFjdGlvbjpXZWJEcmFnRGVzdGluYXRpb25BY3Rpb25FZGl0IGZvckRyYWdnaW5nSW5m
bzpkcmFnZ2luZ0luZm9dOworICAgICAgICAgICAgW2lubmVyQnJpZGdlIGFwcGx5U3R5bGU6c3R5
bGUgd2l0aFVuZG9BY3Rpb246V2ViVW5kb0FjdGlvblNldENvbG9yXTsKKyAgICAgICAgICAgIHJl
dHVybiBZRVM7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIE5POworICAgIH0KKworICAgIEJP
T0wgZGlkSW5zZXJ0ID0gTk87CisgICAgaWYgKFtzZWxmIF9jYW5Qcm9jZXNzRHJhZ1dpdGhEcmFn
Z2luZ0luZm86ZHJhZ2dpbmdJbmZvXSkgeworICAgICAgICBOU1Bhc3RlYm9hcmQgKnBhc3RlYm9h
cmQgPSBbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nUGFzdGVib2FyZF07CisgICAgICAgIGlmIChbc2Vs
ZiBfaXNNb3ZlRHJhZ10gfHwgW2lubmVyQnJpZGdlIGlzRHJhZ0NhcmV0UmljaGx5RWRpdGFibGVd
KSB7IAorICAgICAgICAgICAgQk9PTCBjaG9zZVBsYWluVGV4dDsKKyAgICAgICAgICAgIERPTURv
Y3VtZW50RnJhZ21lbnQgKmZyYWdtZW50ID0gW3NlbGYgX2RvY3VtZW50RnJhZ21lbnRGcm9tUGFz
dGVib2FyZDpwYXN0ZWJvYXJkIGFsbG93UGxhaW5UZXh0OllFUyBjaG9zZVBsYWluVGV4dDomY2hv
c2VQbGFpblRleHRdOworICAgICAgICAgICAgaWYgKGZyYWdtZW50ICYmIFtzZWxmIF9zaG91bGRJ
bnNlcnRGcmFnbWVudDpmcmFnbWVudCByZXBsYWNpbmdET01SYW5nZTpbaW5uZXJCcmlkZ2UgZHJh
Z0NhcmV0RE9NUmFuZ2VdIGdpdmVuQWN0aW9uOldlYlZpZXdJbnNlcnRBY3Rpb25Ecm9wcGVkXSkg
eworICAgICAgICAgICAgICAgIFtbd2ViVmlldyBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmll
dzp3ZWJWaWV3IHdpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uOldlYkRyYWdEZXN0aW5h
dGlvbkFjdGlvbkVkaXQgZm9yRHJhZ2dpbmdJbmZvOmRyYWdnaW5nSW5mb107CisgICAgICAgICAg
ICAgICAgaWYgKFtzZWxmIF9pc01vdmVEcmFnXSkgeworICAgICAgICAgICAgICAgICAgICBCT09M
IHNtYXJ0TW92ZSA9IFtpbm5lckJyaWRnZSBzZWxlY3Rpb25HcmFudWxhcml0eV0gPT0gV2ViQnJp
ZGdlU2VsZWN0QnlXb3JkICYmIFtzZWxmIF9jYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZDpw
YXN0ZWJvYXJkXTsKKyAgICAgICAgICAgICAgICAgICAgW2lubmVyQnJpZGdlIG1vdmVTZWxlY3Rp
b25Ub0RyYWdDYXJldDpmcmFnbWVudCBzbWFydE1vdmU6c21hcnRNb3ZlXTsKKyAgICAgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBbaW5uZXJCcmlkZ2Ugc2V0U2VsZWN0
aW9uVG9EcmFnQ2FyZXRdOworICAgICAgICAgICAgICAgICAgICBbaW5uZXJCcmlkZ2UgcmVwbGFj
ZVNlbGVjdGlvbldpdGhGcmFnbWVudDpmcmFnbWVudCBzZWxlY3RSZXBsYWNlbWVudDpZRVMgc21h
cnRSZXBsYWNlOltzZWxmIF9jYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZDpwYXN0ZWJvYXJk
XSBtYXRjaFN0eWxlOmNob3NlUGxhaW5UZXh0XTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgZGlkSW5zZXJ0ID0gWUVTOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgTlNTdHJpbmcgKnRleHQgPSBbc2VsZiBfcGxhaW5UZXh0RnJvbVBhc3Rl
Ym9hcmQ6cGFzdGVib2FyZF07CisgICAgICAgICAgICBpZiAodGV4dCAmJiBbc2VsZiBfc2hvdWxk
SW5zZXJ0VGV4dDp0ZXh0IHJlcGxhY2luZ0RPTVJhbmdlOltpbm5lckJyaWRnZSBkcmFnQ2FyZXRE
T01SYW5nZV0gZ2l2ZW5BY3Rpb246V2ViVmlld0luc2VydEFjdGlvbkRyb3BwZWRdKSB7CisgICAg
ICAgICAgICAgICAgW1t3ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZp
ZXcgd2lsbFBlcmZvcm1EcmFnRGVzdGluYXRpb25BY3Rpb246V2ViRHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uRWRpdCBmb3JEcmFnZ2luZ0luZm86ZHJhZ2dpbmdJbmZvXTsKKyAgICAgICAgICAgICAgICBb
aW5uZXJCcmlkZ2Ugc2V0U2VsZWN0aW9uVG9EcmFnQ2FyZXRdOworICAgICAgICAgICAgICAgIFtp
bm5lckJyaWRnZSByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQ6dGV4dCBzZWxlY3RSZXBsYWNlbWVu
dDpZRVMgc21hcnRSZXBsYWNlOltzZWxmIF9jYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZDpw
YXN0ZWJvYXJkXV07CisgICAgICAgICAgICAgICAgZGlkSW5zZXJ0ID0gWUVTOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfQorICAgIFt3ZWJWaWV3IHJlbW92ZURyYWdDYXJldF07Cisg
ICAgcmV0dXJuIGRpZEluc2VydDsKK30KKworLSAoTlNEaWN0aW9uYXJ5ICopZWxlbWVudEF0UG9p
bnQ6KE5TUG9pbnQpcG9pbnQKK3sKKyAgICByZXR1cm4gW3NlbGYgZWxlbWVudEF0UG9pbnQ6cG9p
bnQgYWxsb3dTaGFkb3dDb250ZW50Ok5PXTsKK30KKworLSAoTlNEaWN0aW9uYXJ5ICopZWxlbWVu
dEF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQgYWxsb3dTaGFkb3dDb250ZW50OihCT09MKWFsbG93Owor
eworICAgIERPTU5vZGUgKmlubmVyTm9kZSA9IG5pbDsKKyAgICBET01Ob2RlICppbm5lck5vblNo
YXJlZE5vZGUgPSBuaWw7CisgICAgRE9NRWxlbWVudCAqVVJMRWxlbWVudCA9IG5pbDsKKyAgICBb
W3NlbGYgX2JyaWRnZV0gZ2V0SW5uZXJOb25TaGFyZWROb2RlOiZpbm5lck5vblNoYXJlZE5vZGUg
aW5uZXJOb2RlOiZpbm5lck5vZGUgVVJMRWxlbWVudDomVVJMRWxlbWVudCBhdFBvaW50OnBvaW50
IGFsbG93U2hhZG93Q29udGVudDphbGxvd107CisgICAgTlNWaWV3ICppbm5lclZpZXcgPSBbW1tb
aW5uZXJOb25TaGFyZWROb2RlIG93bmVyRG9jdW1lbnRdIHdlYkZyYW1lXSBmcmFtZVZpZXddIGRv
Y3VtZW50Vmlld107CisgICAgTlNQb2ludCBpbm5lclBvaW50ID0gaW5uZXJWaWV3ID8gW3NlbGYg
Y29udmVydFBvaW50OnBvaW50IHRvVmlldzppbm5lclZpZXddIDogcG9pbnQ7CisgICAgcmV0dXJu
IFtbW1dlYkVsZW1lbnREaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aElubmVyTm9uU2hhcmVkTm9k
ZTppbm5lck5vblNoYXJlZE5vZGUgaW5uZXJOb2RlOmlubmVyTm9kZSBVUkxFbGVtZW50OlVSTEVs
ZW1lbnQgYW5kUG9pbnQ6aW5uZXJQb2ludF0gYXV0b3JlbGVhc2VdOworfQorCitAZW5kCg==
</data>
<flag name="review"
          id="2890"
          type_id="1"
          status="+"
          setter="sullivan"
    />
          </attachment>
      

    </bug>

</bugzilla>