<?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>191379</bug_id>
          
          <creation_ts>2018-11-07 09:50:52 -0800</creation_ts>
          <short_desc>WKWebView doesn’t respond to -copyFont: and -pasteFont:</short_desc>
          <delta_ts>2021-12-10 18:08:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>Other</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>233938</dependson>
    
    <dependson>233939</dependson>
    
    <dependson>233940</dependson>
    
    <dependson>234065</dependson>
          <blocked>234185</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>akeerthi</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>kangil.han</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mifenton</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1476026</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2018-11-07 09:50:52 -0800</bug_when>
    <thetext>WKWebView doesn’t respond to -copyFont: and -pasteFont:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476029</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2018-11-07 09:59:05 -0800</bug_when>
    <thetext>&lt;rdar://problem/45878659&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821243</commentid>
    <comment_count>2</comment_count>
      <attachid>446245</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-07 15:25:29 -0800</bug_when>
    <thetext>Created attachment 446245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821293</commentid>
    <comment_count>3</comment_count>
      <attachid>446257</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-07 17:01:05 -0800</bug_when>
    <thetext>Created attachment 446257
Patch

rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821983</commentid>
    <comment_count>4</comment_count>
      <attachid>446498</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-08 20:50:41 -0800</bug_when>
    <thetext>Created attachment 446498
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822928</commentid>
    <comment_count>5</comment_count>
      <attachid>446795</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-10 13:21:46 -0800</bug_when>
    <thetext>Created attachment 446795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822993</commentid>
    <comment_count>6</comment_count>
      <attachid>446795</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-10 14:46:48 -0800</bug_when>
    <thetext>Comment on attachment 446795
Patch

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

r=mews

&gt; Source/WebCore/editing/mac/EditorMac.mm:109
&gt; +void Editor::platformCopyFont()

We should file a followup to unify this code with the WebKitLegacy implementation in WebHTMLView.

&gt; Source/WebCore/editing/mac/EditorMac.mm:125
&gt; +void Editor::platformPasteFont()

Same, for this.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:4174
&gt; +        // FIXME: Does iOS have a different pasteboard for fonts?

iOS does not support a dedicated font pasteboard, no. Falling back to the general pasteboard is probably okay here (and we can remove the FIXME).

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:4186
&gt; +        // FIXME: Does iOS have a different pasteboard for fonts?

Ditto.

&gt; Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:1555
&gt; +        // FIXME: Does iOS have a different pasteboard for fonts?

Ditto.

&gt; Source/WebKit/UIProcess/mac/WebPageProxyMac.mm:663
&gt; +        grantAccessToCurrentPasteboardData(NSFontPboard);

Can you use `NSPasteboardNameFont` instead of suppressing deprecation warnings?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822994</commentid>
    <comment_count>7</comment_count>
      <attachid>446795</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-10 14:48:00 -0800</bug_when>
    <thetext>Comment on attachment 446795
Patch

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

&gt; LayoutTests/editing/execCommand/mac/copyFont-pasteFont-expected.html:4
&gt; +#copy {

Nit - indentation is a bit off in a few places in this file.

&gt; LayoutTests/editing/execCommand/mac/copyFont-pasteFont.html:3
&gt; +    &lt;script src=../../editing.js&gt;&lt;/script&gt;

Ditto, re: indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823065</commentid>
    <comment_count>8</comment_count>
      <attachid>446795</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-10 16:04:30 -0800</bug_when>
    <thetext>Comment on attachment 446795
Patch

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

&gt;&gt; LayoutTests/editing/execCommand/mac/copyFont-pasteFont-expected.html:4
&gt;&gt; +#copy {
&gt; 
&gt; Nit - indentation is a bit off in a few places in this file.

Oh lol that&apos;s just my personal preference.  I find that indenting inline CSS/JS to match the indentation of the surrounding DOM is odd because if you then did `style.textContent` there&apos;d be all this extra indentation for seemingly no reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823067</commentid>
    <comment_count>9</comment_count>
      <attachid>446837</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-10 16:07:37 -0800</bug_when>
    <thetext>Created attachment 446837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823081</commentid>
    <comment_count>10</comment_count>
      <attachid>446842</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-10 16:24:28 -0800</bug_when>
    <thetext>Created attachment 446842
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823135</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-10 18:08:09 -0800</bug_when>
    <thetext>Committed r286894 (245122@main): &lt;https://commits.webkit.org/245122@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446842.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446245</attachid>
            <date>2021-12-07 15:25:29 -0800</date>
            <delta_ts>2021-12-07 17:01:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191379-20211207162528.patch</filename>
            <type>text/plain</type>
            <size>35768</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhNjY2YjNmYjVmNmI2OGU3NGJjMmNkNjYwZTAyNjdlZjJkNDljNjBhLi5l
NDJhYWZlNDA4NzYwYmJkZDQ0OWQ3OTkxNGZiZDdmZTJkMDNlN2M3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTAgQEAKKzIwMjEtMTItMDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdLV2ViVmlldyBkb2VzbuKAmXQgcmVzcG9uZCB0byAtY29weUZvbnQ6IGFu
ZCAtcGFzdGVGb250OgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkxMzc5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTg3ODY1OT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL2V4
ZWNDb21tYW5kL21hYy9jb3B5Rm9udC1wYXN0ZUZvbnQuaHRtbAorCisgICAgICAgICogZG9tL0RP
TVBhc3RlQWNjZXNzLmg6CisgICAgICAgIEFkZCBgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9u
dHNgICh3aGljaCBjb3JyZXNwb25kcyB0byBgTlNGb250UGJvYXJkYCBvbiBtYWNPUykuCisKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmV2ZW50TmFtZUZvckNsaXBib2FyZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZURhdGFUcmFuc2ZlckZvckNsaXBib2FyZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6Y29weUZvbnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6cGFzdGVGb250KTogQWRkZWQuCisgICAgICAgIEFkZCBwbGF0Zm9ybS1hZ25vc3RpYyBo
YW5kbGluZyBmb3IgYCJDb3B5Rm9udCJgIGFuZCBgIlBhc3RlRm9udCJgIGVkaXRvciBjb21tYW5k
cy4KKworICAgICAgICAqIGVkaXRpbmcvbWFjL0VkaXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6cGxhdGZvcm1Db3B5Rm9udCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yOjpwbGF0Zm9ybVBhc3RlRm9udCk6IEFkZGVkLgorICAgICAgICBNaW1pYyB0aGUgbG9n
aWMgaW4gYC1bV2ViSFRNTFZpZXcgY29weUZvbnQ6XWAvYC1bV2ViSFRNTFZpZXcgcGFzdGVGb250
Ol1gIHRvIGJlIGNvbXBhdGlibGUKKyAgICAgICAgd2l0aCBXSzEgKGkuZS4gdG8gbWFrZSBpdCBl
YXNpZXIgZm9yIGNsaWVudHMgdG8gc3dpdGNoIHRvIFdLMikuCisKKyAgICAgICAgKiBlZGl0aW5n
L2d0ay9FZGl0b3JHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwbGF0Zm9ybUNv
cHlGb250KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBsYXRmb3JtUGFzdGVG
b250KTogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yOjpwbGF0Zm9ybUNvcHlGb250KTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OnBsYXRmb3JtUGFzdGVGb250KTogQWRkZWQuCisgICAgICAgICogZWRp
dGluZy9saWJ3cGUvRWRpdG9yTGliV1BFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6
cGxhdGZvcm1Db3B5Rm9udCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwbGF0
Zm9ybVBhc3RlRm9udCk6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvd2luL0VkaXRvcldpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBsYXRmb3JtQ29weUZvbnQpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGxhdGZvcm1QYXN0ZUZvbnQpOiBBZGRlZC4KKyAg
ICAgICAgQWRkIHN0dWJzIGZvciBvdGhlciBwbGF0Zm9ybXMuCisKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUNvcHlGb250KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlUGFzdGVGb250KTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVDb21tYW5kTWFwKToKKyAgICAgICAgSG9vayBgIkNvcHlGb250
ImAgYW5kIGAiUGFzdGVGb250ImAgZWRpdG9yIGNvbW1hbmRzIHVwIHRvIGBkb2N1bWVudC5leGVj
Q29tbWFuZGAuCisKIDIwMjEtMTItMDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhIGBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5YCB0byBjb250cm9sIHdo
aWNoIHBhc3RlYm9hcmQgdGhlIFdlYlByb2Nlc3MgaXMgZ3JhbnRlZCBhY2Nlc3MgdG8gd2hlbiBw
YXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDM0OTc0YmY2ZmIzMmI5MmU3N2MyNzkyNjQzMGQxM2Q2MjAzNTcx
NDMuLjliZjEwNzQzZTk2NWNmOGZmN2Y0NmZmNjc5ZmZjNDNhYjQwYmQ5NzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMjEtMTItMDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUu
Y29tPgorCisgICAgICAgIFdLV2ViVmlldyBkb2VzbuKAmXQgcmVzcG9uZCB0byAtY29weUZvbnQ6
IGFuZCAtcGFzdGVGb250OgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkxMzc5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTg3ODY1OT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdN
YWMubW06CisgICAgICAgIEFkZCBgLWNvcHlGb250OmAgYW5kIGAtcGFzdGVGb250OmAgbWV0aG9k
cyB2aWEgYFdFQkNPUkVfQ09NTUFORGAuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6cGFzdGVBY2Nlc3NDYXRlZ29yeUZvckNvbW1hbmQp
OgorICAgICAgICBUaGUgYFBhc3RlRm9udGAgY29tbWFuZCBzaG91bGQgYmUgY2F0ZWdvcml6ZWQg
YXMgYERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkZvbnRzYC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6cGFzdGVib2FyZE5hbWVG
b3JBY2Nlc3NDYXRlZ29yeSk6CisgICAgICAgIChXZWJLaXQ6OnBhc3RlYm9hcmRGb3JBY2Nlc3ND
YXRlZ29yeSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1QYXN0ZUNvbW1hbmQpOgor
ICAgICAgICBDb3JyZWxhdGUgYERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkZvbnRzYCB3aXRoIGBO
U0ZvbnRQYm9hcmRgLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW06CisgICAgICAgIChwYXN0ZWJvYXJkTmFtZUZvckFjY2Vzc0NhdGVnb3J5KToK
KyAgICAgICAgKHBhc3RlYm9hcmRGb3JBY2Nlc3NDYXRlZ29yeSk6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6d2lsbFBlcmZvcm1QYXN0ZUNvbW1hbmQpOgorICAgICAgICBDb3JyZWxhdGUgYERPTVBhc3Rl
QWNjZXNzQ2F0ZWdvcnk6OkZvbnRzYCB3aXRoIGBVSVBhc3RlYm9hcmROYW1lR2VuZXJhbGAuCisK
IDIwMjEtMTItMDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBhIGBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5YCB0byBjb250cm9sIHdoaWNoIHBhc3RlYm9h
cmQgdGhlIFdlYlByb2Nlc3MgaXMgZ3JhbnRlZCBhY2Nlc3MgdG8gd2hlbiBwYXN0aW5nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUGFzdGVBY2Nlc3MuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01QYXN0ZUFjY2Vzcy5oCmluZGV4IGRiNWE2NDRjYTYyNDdmZDliYTFlMDFiMmU4
YjczYTcyMDMxMjAyNWQuLmM3ZTNmOGI5ZGM4MzI1NzcwNWY3NWVmZDJkZTI5MzM1ZTc0Njg2ZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01QYXN0ZUFjY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01QYXN0ZUFjY2Vzcy5oCkBAIC0zMSw2ICszMSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IDogdWlu
dDhfdCB7CiAgICAgR2VuZXJhbCwKKyAgICBGb250cywKIH07CiAKIGVudW0gY2xhc3MgRE9NUGFz
dGVBY2Nlc3NQb2xpY3kgOiB1aW50OF90IHsKQEAgLTUyLDcgKzUzLDggQEAgbmFtZXNwYWNlIFdU
RiB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
Q2F0ZWdvcnk+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBXZWJD
b3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5LAotICAgICAgICBXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc0NhdGVnb3J5OjpHZW5lcmFsCisgICAgICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0
ZWdvcnk6OkdlbmVyYWwsCisgICAgICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6
OkZvbnRzCiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCAxNzI0
Y2YwZTUwYmFhNWI5YjI0MTMwNDgxZWU3MjRjYjc4MjA3YWE0Li4yODMxY2QzZmE5YzZhNGY5ZmY5
YTlhMGUyNWMzYjQyZTUyZDFiNjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0z
NzIsOCArMzcyLDEwIEBAIGJvb2wgRWRpdG9yOjpjYW5FZGl0UmljaGx5KCkgY29uc3QKIAogZW51
bSBjbGFzcyBDbGlwYm9hcmRFdmVudEtpbmQgewogICAgIENvcHksCisgICAgQ29weUZvbnQsCiAg
ICAgQ3V0LAogICAgIFBhc3RlLAorICAgIFBhc3RlRm9udCwKICAgICBQYXN0ZUFzUGxhaW5UZXh0
LAogICAgIFBhc3RlQXNRdW90YXRpb24sCiAgICAgQmVmb3JlQ29weSwKQEAgLTM4NSwxMiArMzg3
LDE0IEBAIHN0YXRpYyBBdG9tU3RyaW5nIGV2ZW50TmFtZUZvckNsaXBib2FyZEV2ZW50KENsaXBi
b2FyZEV2ZW50S2luZCBraW5kKQogewogICAgIHN3aXRjaCAoa2luZCkgewogICAgIGNhc2UgQ2xp
cGJvYXJkRXZlbnRLaW5kOjpDb3B5OgorICAgIGNhc2UgQ2xpcGJvYXJkRXZlbnRLaW5kOjpDb3B5
Rm9udDoKICAgICAgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5jb3B5RXZlbnQ7CiAgICAgY2FzZSBD
bGlwYm9hcmRFdmVudEtpbmQ6OkN1dDoKICAgICAgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5jdXRF
dmVudDsKICAgICBjYXNlIENsaXBib2FyZEV2ZW50S2luZDo6UGFzdGU6CiAgICAgY2FzZSBDbGlw
Ym9hcmRFdmVudEtpbmQ6OlBhc3RlQXNQbGFpblRleHQ6CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVu
dEtpbmQ6OlBhc3RlQXNRdW90YXRpb246CisgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OlBh
c3RlRm9udDoKICAgICAgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5wYXN0ZUV2ZW50OwogICAgIGNh
c2UgQ2xpcGJvYXJkRXZlbnRLaW5kOjpCZWZvcmVDb3B5OgogICAgICAgICByZXR1cm4gZXZlbnRO
YW1lcygpLmJlZm9yZWNvcHlFdmVudDsKQEAgLTQwNyw2ICs0MTEsNyBAQCBzdGF0aWMgUmVmPERh
dGFUcmFuc2Zlcj4gY3JlYXRlRGF0YVRyYW5zZmVyRm9yQ2xpcGJvYXJkRXZlbnQoRG9jdW1lbnQm
IGRvY3VtZW50LAogewogICAgIHN3aXRjaCAoa2luZCkgewogICAgIGNhc2UgQ2xpcGJvYXJkRXZl
bnRLaW5kOjpDb3B5OgorICAgIGNhc2UgQ2xpcGJvYXJkRXZlbnRLaW5kOjpDb3B5Rm9udDoKICAg
ICBjYXNlIENsaXBib2FyZEV2ZW50S2luZDo6Q3V0OgogICAgICAgICByZXR1cm4gRGF0YVRyYW5z
ZmVyOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoZG9jdW1lbnQsIERhdGFUcmFuc2Zlcjo6U3RvcmVN
b2RlOjpSZWFkV3JpdGUsIG1ha2VVbmlxdWU8U3RhdGljUGFzdGVib2FyZD4oKSk7CiAgICAgY2Fz
ZSBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3RlQXNQbGFpblRleHQ6CkBAIC00MjAsNiArNDI1LDcg
QEAgc3RhdGljIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURhdGFUcmFuc2ZlckZvckNsaXBib2Fy
ZEV2ZW50KERvY3VtZW50JiBkb2N1bWVudCwKICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgY2Fz
ZSBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3RlOgogICAgIGNhc2UgQ2xpcGJvYXJkRXZlbnRLaW5k
OjpQYXN0ZUFzUXVvdGF0aW9uOgorICAgIGNhc2UgQ2xpcGJvYXJkRXZlbnRLaW5kOjpQYXN0ZUZv
bnQ6CiAgICAgICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZShk
b2N1bWVudCwgRGF0YVRyYW5zZmVyOjpTdG9yZU1vZGU6OlJlYWRvbmx5LCBQYXN0ZWJvYXJkOjpj
cmVhdGVGb3JDb3B5QW5kUGFzdGUoUGFnZVBhc3RlYm9hcmRDb250ZXh0OjpjcmVhdGUoZG9jdW1l
bnQucGFnZUlEKCkpKSk7CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OkJlZm9yZUNvcHk6
CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OkJlZm9yZUN1dDoKQEAgLTE0MDQsNiArMTQx
MCwyMSBAQCB2b2lkIEVkaXRvcjo6Y29weShGcm9tTWVudU9yS2V5QmluZGluZyBmcm9tTWVudU9y
S2V5QmluZGluZykKICAgICBwZXJmb3JtQ3V0T3JDb3B5KENvcHlBY3Rpb24pOwogfQogCit2b2lk
IEVkaXRvcjo6Y29weUZvbnQoRnJvbU1lbnVPcktleUJpbmRpbmcgZnJvbU1lbnVPcktleUJpbmRp
bmcpCit7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY29weVNjb3BlIHsgbV9jb3B5aW5nRnJvbU1l
bnVPcktleUJpbmRpbmcsIGZyb21NZW51T3JLZXlCaW5kaW5nID09IEZyb21NZW51T3JLZXlCaW5k
aW5nOjpZZXMgfTsKKyAgICBpZiAodHJ5REhUTUxDb3B5KCkpCisgICAgICAgIHJldHVybjsgLy8g
REhUTUwgZGlkIHRoZSB3aG9sZSBvcGVyYXRpb24KKyAgICBpZiAoIWNhbkNvcHkoKSkgeworICAg
ICAgICBTeXN0ZW1Tb3VuZE1hbmFnZXI6OnNpbmdsZXRvbigpLnN5c3RlbUJlZXAoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIHdpbGxXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChz
ZWxlY3RlZFJhbmdlKCkpOworICAgIHBsYXRmb3JtQ29weUZvbnQoKTsKKyAgICBkaWRXcml0ZVNl
bGVjdGlvblRvUGFzdGVib2FyZCgpOworfQorCiB2b2lkIEVkaXRvcjo6cG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbkZvckN1dChjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIHNlbGVjdGlvbikKIHsKICAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCkBAIC0xNTEyLDYgKzE1MzMsMTkgQEAgdm9pZCBFZGl0b3I6OnBhc3Rl
QXNRdW90YXRpb24oRnJvbU1lbnVPcktleUJpbmRpbmcgZnJvbU1lbnVPcktleUJpbmRpbmcpCiAg
ICAgICAgIHBhc3RlQXNQbGFpblRleHRXaXRoUGFzdGVib2FyZCgqcGFzdGVib2FyZCk7CiB9CiAK
K3ZvaWQgRWRpdG9yOjpwYXN0ZUZvbnQoRnJvbU1lbnVPcktleUJpbmRpbmcgZnJvbU1lbnVPcktl
eUJpbmRpbmcpCit7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gcGFzdGVTY29wZSB7IG1fcGFzdGlu
Z0Zyb21NZW51T3JLZXlCaW5kaW5nLCBmcm9tTWVudU9yS2V5QmluZGluZyA9PSBGcm9tTWVudU9y
S2V5QmluZGluZzo6WWVzIH07CisKKyAgICBpZiAoIWRpc3BhdGNoQ2xpcGJvYXJkRXZlbnQoZmlu
ZEV2ZW50VGFyZ2V0RnJvbVNlbGVjdGlvbigpLCBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3RlRm9u
dCkpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIWNhblBhc3RlKCkpCisgICAgICAgIHJldHVy
bjsKKyAgICB1cGRhdGVNYXJrZXJzRm9yV29yZHNBZmZlY3RlZEJ5RWRpdGluZyhmYWxzZSk7Cisg
ICAgUmVzb3VyY2VDYWNoZVZhbGlkYXRpb25TdXBwcmVzc29yIHZhbGlkYXRpb25TdXBwcmVzc29y
KGRvY3VtZW50KCkuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKSk7CisgICAgcGxhdGZvcm1QYXN0ZUZv
bnQoKTsKK30KKwogdm9pZCBFZGl0b3I6OnF1b3RlRnJhZ21lbnRGb3JQYXN0aW5nKERvY3VtZW50
RnJhZ21lbnQmIGZyYWdtZW50KQogewogICAgIGF1dG8gYmxvY2tRdW90ZSA9IEhUTUxRdW90ZUVs
ZW1lbnQ6OmNyZWF0ZShibG9ja3F1b3RlVGFnLCBkb2N1bWVudCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCmluZGV4IDAxZmUwYjVlMDQ0ZWY2M2YyNmE3MWI0NzJlZjk4YjExYzIyOGI5MWMuLmIw
MzEzNmZmY2YxZjZiMzdlNmIwN2FiNjIzMmU2MWY2NmRlZTc1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuaApAQCAtMTk3LDExICsxOTcsMTMgQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgRnJv
bU1lbnVPcktleUJpbmRpbmcgOiBib29sIHsgTm8sIFllcyB9OwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgY3V0KEZyb21NZW51T3JLZXlCaW5kaW5nID0gRnJvbU1lbnVPcktleUJpbmRpbmc6Ok5v
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvcHkoRnJvbU1lbnVPcktleUJpbmRpbmcgPSBG
cm9tTWVudU9yS2V5QmluZGluZzo6Tm8pOworICAgIHZvaWQgY29weUZvbnQoRnJvbU1lbnVPcktl
eUJpbmRpbmcgPSBGcm9tTWVudU9yS2V5QmluZGluZzo6Tm8pOwogCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBwYXN0ZShGcm9tTWVudU9yS2V5QmluZGluZyA9IEZyb21NZW51T3JLZXlCaW5kaW5n
OjpObyk7CiAgICAgdm9pZCBwYXN0ZShQYXN0ZWJvYXJkJiwgRnJvbU1lbnVPcktleUJpbmRpbmcg
PSBGcm9tTWVudU9yS2V5QmluZGluZzo6Tm8pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcGFz
dGVBc1BsYWluVGV4dChGcm9tTWVudU9yS2V5QmluZGluZyA9IEZyb21NZW51T3JLZXlCaW5kaW5n
OjpObyk7CiAgICAgdm9pZCBwYXN0ZUFzUXVvdGF0aW9uKEZyb21NZW51T3JLZXlCaW5kaW5nID0g
RnJvbU1lbnVPcktleUJpbmRpbmc6Ok5vKTsKKyAgICB2b2lkIHBhc3RlRm9udChGcm9tTWVudU9y
S2V5QmluZGluZyA9IEZyb21NZW51T3JLZXlCaW5kaW5nOjpObyk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBwZXJmb3JtRGVsZXRlKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvcHlV
UkwoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CkBAIC01OTIsNiArNTk0LDkgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCosIE9wdGlv
blNldDxQYXN0ZU9wdGlvbj4pOwogICAgIFN0cmluZyBwbGFpblRleHRGcm9tUGFzdGVib2FyZChj
b25zdCBQYXN0ZWJvYXJkUGxhaW5UZXh0Jik7CiAKKyAgICB2b2lkIHBsYXRmb3JtQ29weUZvbnQo
KTsKKyAgICB2b2lkIHBsYXRmb3JtUGFzdGVGb250KCk7CisKICAgICB2b2lkIHF1b3RlRnJhZ21l
bnRGb3JQYXN0aW5nKERvY3VtZW50RnJhZ21lbnQmKTsKIAogICAgIHZvaWQgcmV2ZWFsU2VsZWN0
aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKGNvbnN0IFNjcm9sbEFsaWdubWVudCYgPSBTY3JvbGxB
bGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQsIFJldmVhbEV4dGVudE9wdGlvbiA9IERvTm90
UmV2ZWFsRXh0ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmlu
ZGV4IGYxODc1OWQwNjJkZjU5NmY5NDU3ZDkxOTBhNTcwYTcxNDkyZTM0ZmMuLjYxYTFlYTZiOTc1
N2M3YmI3NTVmOTQyZGVhYzg4MDExNWU3ZDRkYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3JDb21tYW5kLmNwcApAQCAtMjQyLDYgKzI0MiwxMiBAQCBzdGF0aWMgYm9vbCBleGVjdXRl
Q29weShGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIGNv
bnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBib29sIGV4ZWN1dGVDb3B5Rm9udChG
cmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIGNvbnN0IFN0
cmluZyYpCit7CisgICAgZnJhbWUuZWRpdG9yKCkuY29weUZvbnQoc291cmNlID09IENvbW1hbmRG
cm9tTWVudU9yS2V5QmluZGluZyA/IEVkaXRvcjo6RnJvbU1lbnVPcktleUJpbmRpbmc6OlllcyA6
IEVkaXRvcjo6RnJvbU1lbnVPcktleUJpbmRpbmc6Ok5vKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
Kwogc3RhdGljIGJvb2wgZXhlY3V0ZUNyZWF0ZUxpbmsoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVk
aXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgLy8gRklYTUU6
IElmIHVzZXJJbnRlcmZhY2UgaXMgdHJ1ZSwgd2Ugc2hvdWxkIGRpc3BsYXkgYSBkaWFsb2cgYm94
IHRvIGxldCB0aGUgdXNlciBlbnRlciBhIFVSTC4KQEAgLTkwNiw2ICs5MTIsMjEgQEAgc3RhdGlj
IGJvb2wgZXhlY3V0ZVBhc3RlKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291
cmNlIHNvdXJjZSwgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgZXhl
Y3V0ZVBhc3RlRm9udChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBz
b3VyY2UsIGNvbnN0IFN0cmluZyYpCit7CisgICAgaWYgKHNvdXJjZSA9PSBDb21tYW5kRnJvbU1l
bnVPcktleUJpbmRpbmcpIHsKKyAgICAgICAgVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IgdHlw
aW5nR2VzdHVyZUluZGljYXRvcihmcmFtZSk7CisgICAgICAgIGZyYW1lLmVkaXRvcigpLnBhc3Rl
Rm9udChFZGl0b3I6OkZyb21NZW51T3JLZXlCaW5kaW5nOjpZZXMpOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoIWZyYW1lLnJlcXVlc3RET01QYXN0ZUFjY2VzcyhET01Q
YXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250cykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGZyYW1lLmVkaXRvcigpLnBhc3RlRm9udCgpOworICAgIHJldHVybiB0cnVlOworfQorCiAjaWYg
UExBVEZPUk0oR1RLKQogCiBzdGF0aWMgYm9vbCBleGVjdXRlUGFzdGVHbG9iYWxTZWxlY3Rpb24o
RnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBjb25zdCBT
dHJpbmcmKQpAQCAtMTYxNCw2ICsxNjM1LDcgQEAgc3RhdGljIGNvbnN0IENvbW1hbmRNYXAmIGNy
ZWF0ZUNvbW1hbmRNYXAoKQogICAgICAgICB7ICJCb2xkIl9zLCB7IGV4ZWN1dGVUb2dnbGVCb2xk
LCBzdXBwb3J0ZWQsIGVuYWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVCb2xkLCB2YWx1
ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQg
fSB9LAogICAgICAgICB7ICJDbGVhclRleHQiX3MsIHsgZXhlY3V0ZUNsZWFyVGV4dCwgc3VwcG9y
dGVkLCBlbmFibGVkQ2xlYXJUZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2Vy
dGlvbiwgYWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJDb3B5Il9z
LCB7IGV4ZWN1dGVDb3B5LCBzdXBwb3J0ZWRDb3B5Q3V0LCBlbmFibGVkQ29weSwgc3RhdGVOb25l
LCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVk
Q29weUN1dCB9IH0sCisgICAgICAgIHsgIkNvcHlGb250Il9zLCB7IGV4ZWN1dGVDb3B5Rm9udCwg
c3VwcG9ydGVkQ29weUN1dCwgZW5hYmxlZENvcHksIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RU
ZXh0SW5zZXJ0aW9uLCBhbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZENvcHlDdXQgfSB9LAogICAg
ICAgICB7ICJDcmVhdGVMaW5rIl9zLCB7IGV4ZWN1dGVDcmVhdGVMaW5rLCBzdXBwb3J0ZWQsIGVu
YWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJ
bnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7
ICJDdXQiX3MsIHsgZXhlY3V0ZUN1dCwgc3VwcG9ydGVkQ29weUN1dCwgZW5hYmxlZEN1dCwgc3Rh
dGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGFsbG93RXhlY3V0aW9uV2hlbkRp
c2FibGVkQ29weUN1dCB9IH0sCiAgICAgICAgIHsgIkRlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3Ii
X3MsIHsgZXhlY3V0ZURlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3IsIHN1cHBvcnRlZCwgZW5hYmxl
ZCwgc3RhdGVOb25lLCB2YWx1ZURlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3IsIG5vdFRleHRJbnNl
cnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWR9IH0sCkBAIC0xNzEzLDYgKzE3
MzUsNyBAQCBzdGF0aWMgY29uc3QgQ29tbWFuZE1hcCYgY3JlYXRlQ29tbWFuZE1hcCgpCiAgICAg
ICAgIHsgIlBhc3RlQW5kTWF0Y2hTdHlsZSJfcywgeyBleGVjdXRlUGFzdGVBbmRNYXRjaFN0eWxl
LCBzdXBwb3J0ZWRQYXN0ZSwgZW5hYmxlZFBhc3RlLCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90
VGV4dEluc2VydGlvbiwgYWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWRQYXN0ZSB9IH0sCiAgICAg
ICAgIHsgIlBhc3RlQXNQbGFpblRleHQiX3MsIHsgZXhlY3V0ZVBhc3RlQXNQbGFpblRleHQsIHN1
cHBvcnRlZFBhc3RlLCBlbmFibGVkUGFzdGUsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0
SW5zZXJ0aW9uLCBhbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZFBhc3RlIH0gfSwKICAgICAgICAg
eyAiUGFzdGVBc1F1b3RhdGlvbiJfcywgeyBleGVjdXRlUGFzdGVBc1F1b3RhdGlvbiwgc3VwcG9y
dGVkUGFzdGUsIGVuYWJsZWRQYXN0ZSwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNl
cnRpb24sIGFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkUGFzdGUgfSB9LAorICAgICAgICB7ICJQ
YXN0ZUZvbnQiX3MsIHsgZXhlY3V0ZVBhc3RlRm9udCwgc3VwcG9ydGVkUGFzdGUsIGVuYWJsZWRQ
YXN0ZSwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGFsbG93RXhlY3V0
aW9uV2hlbkRpc2FibGVkUGFzdGUgfSB9LAogICAgICAgICB7ICJQcmludCJfcywgeyBleGVjdXRl
UHJpbnQsIHN1cHBvcnRlZCwgZW5hYmxlZCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJ
bnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7
ICJSZWRvIl9zLCB7IGV4ZWN1dGVSZWRvLCBzdXBwb3J0ZWQsIGVuYWJsZWRSZWRvLCBzdGF0ZU5v
bmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5E
aXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIlJlbW92ZUZvcm1hdCJfcywgeyBleGVjdXRlUmVtb3Zl
Rm9ybWF0LCBzdXBwb3J0ZWQsIGVuYWJsZWRSYW5nZUluRWRpdGFibGVUZXh0LCBzdGF0ZU5vbmUs
IHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNh
YmxlZCB9IH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0ay9FZGl0b3JH
dGsuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9ndGsvRWRpdG9yR3RrLmNwcAppbmRleCA2
MWM1ODFhMmU4ODIyOWJkYTE1YjkzZjFjZWQzZmY2YjZlODhiNjM4Li4zNmMwNGQ2MTBkODJjYzZj
MGE5YzBkNjljZTEzNWQ4M2NiMDZhNjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2d0ay9FZGl0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0Vk
aXRvckd0ay5jcHAKQEAgLTY1LDYgKzY1LDE0IEBAIHZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0
ZWJvYXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIE9wdGlvblNldDxQYXN0ZU9wdGlvbj4KICAg
ICAgICAgcGFzdGVBc0ZyYWdtZW50KGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGNhblNtYXJ0
UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hvc2VQbGFpblRleHQsIG9wdGlv
bnMuY29udGFpbnMoUGFzdGVPcHRpb246Oklnbm9yZU1haWxCbG9ja3F1b3RlKSA/IE1haWxCbG9j
a3F1b3RlSGFuZGxpbmc6Oklnbm9yZUJsb2NrcXVvdGUgOiBNYWlsQmxvY2txdW90ZUhhbmRsaW5n
OjpSZXNwZWN0QmxvY2txdW90ZSk7CiB9CiAKK3ZvaWQgRWRpdG9yOjpwbGF0Zm9ybUNvcHlGb250
KCkKK3sKK30KKwordm9pZCBFZGl0b3I6OnBsYXRmb3JtUGFzdGVGb250KCkKK3sKK30KKwogc3Rh
dGljIGNvbnN0IEF0b21TdHJpbmcmIGVsZW1lbnRVUkwoRWxlbWVudCYgZWxlbWVudCkKIHsKICAg
ICBpZiAoaXM8SFRNTEltYWdlRWxlbWVudD4oZWxlbWVudCkgfHwgaXM8SFRNTElucHV0RWxlbWVu
dD4oZWxlbWVudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0
b3JJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KaW5kZXgg
NzBmMGI3MTFhOWQzNWI5NjIwNThhZmIxMWJhNjhmZmFmYjU1ZmIxNy4uODUxZjI5NTBiOTFiYTQ0
MGQ5OTkzYTUyMmY5MTUwZjAxYTU4MWVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9pb3MvRWRpdG9ySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0Vk
aXRvcklPUy5tbQpAQCAtMjM4LDYgKzIzOCwxNCBAQCB2b2lkIEVkaXRvcjo6cGFzdGVXaXRoUGFz
dGVib2FyZChQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkLCBPcHRpb25TZXQ8UGFzdGVPcHRpb24+CiAg
ICAgICAgIHBhc3RlQXNGcmFnbWVudChmcmFnbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBjYW5TbWFy
dFJlcGxhY2VXaXRoUGFzdGVib2FyZCgqcGFzdGVib2FyZCksIGZhbHNlLCBvcHRpb25zLmNvbnRh
aW5zKFBhc3RlT3B0aW9uOjpJZ25vcmVNYWlsQmxvY2txdW90ZSkgPyBNYWlsQmxvY2txdW90ZUhh
bmRsaW5nOjpJZ25vcmVCbG9ja3F1b3RlIDogTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVzcGVj
dEJsb2NrcXVvdGUpOwogfQogCit2b2lkIEVkaXRvcjo6cGxhdGZvcm1Db3B5Rm9udCgpCit7Cit9
CisKK3ZvaWQgRWRpdG9yOjpwbGF0Zm9ybVBhc3RlRm9udCgpCit7Cit9CisKIHZvaWQgRWRpdG9y
OjppbnNlcnREaWN0YXRpb25QaHJhc2VzKFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4mJiBkaWN0YXRp
b25QaHJhc2VzLCBpZCBtZXRhZGF0YSkKIHsKICAgICBpZiAobV9kb2N1bWVudC5zZWxlY3Rpb24o
KS5pc05vbmUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbGlid3BlL0Vk
aXRvckxpYldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2xpYndwZS9FZGl0b3JMaWJX
UEUuY3BwCmluZGV4IDlkZDQxZDYzNjY1MTJmZDM4NTkzN2E3NjA4YmQzZmM5YjViOTBmNjAuLjg1
OTVlZDFkZGYzODk3MTE0MjJlNDUzOTg4ZGJiYzNkZTVkZTg3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvbGlid3BlL0VkaXRvckxpYldQRS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9saWJ3cGUvRWRpdG9yTGliV1BFLmNwcApAQCAtOTEsNiArOTEsMTQgQEAg
dm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwg
T3B0aW9uU2V0PFBhc3RlT3B0aW9uPgogICAgICAgICBwYXN0ZUFzRnJhZ21lbnQoKmZyYWdtZW50
LCBjYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZCgqcGFzdGVib2FyZCksIGNob3NlUGxhaW5U
ZXh0LCBvcHRpb25zLmNvbnRhaW5zKFBhc3RlT3B0aW9uOjpJZ25vcmVNYWlsQmxvY2txdW90ZSkg
PyBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpJZ25vcmVCbG9ja3F1b3RlIDogTWFpbEJsb2NrcXVv
dGVIYW5kbGluZzo6UmVzcGVjdEJsb2NrcXVvdGUpOwogfQogCit2b2lkIEVkaXRvcjo6cGxhdGZv
cm1Db3B5Rm9udCgpCit7Cit9CisKK3ZvaWQgRWRpdG9yOjpwbGF0Zm9ybVBhc3RlRm9udCgpCit7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShMSUJXUEUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KaW5kZXggMmQxOWI5YzdjMjJiM2Vi
YzI2N2M2NzYxMDZjODkyZjA5Yjc3NzUzZC4uMTg0MzAyNGIwZDc5ZGIyNTk3OTEyZmM4ZjRkMjcy
OTgzNWZkNjlhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9y
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQpAQCAt
MzEsMTAgKzMxLDE1IEBACiAjaW1wb3J0ICJCbG9iLmgiCiAjaW1wb3J0ICJDU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmgiCiAjaW1wb3J0ICJDU1NWYWx1ZVBvb2wuaCIKKyNpbXBvcnQgIkNvbG9y
LmgiCisjaW1wb3J0ICJDb2xvckNvY29hLmgiCisjaW1wb3J0ICJDb2xvclNlcmlhbGl6YXRpb24u
aCIKICNpbXBvcnQgIkRhdGFUcmFuc2Zlci5oIgogI2ltcG9ydCAiRG9jdW1lbnRGcmFnbWVudC5o
IgogI2ltcG9ydCAiRWRpdGluZy5oIgogI2ltcG9ydCAiRWRpdG9yQ2xpZW50LmgiCisjaW1wb3J0
ICJGb250QXR0cmlidXRlcy5oIgorI2ltcG9ydCAiRm9udFNoYWRvdy5oIgogI2ltcG9ydCAiRnJh
bWUuaCIKICNpbXBvcnQgIkZyYW1lVmlldy5oIgogI2ltcG9ydCAiSFRNTENvbnZlcnRlci5oIgpA
QCAtNTAsMTEgKzU1LDEzIEBACiAjaW1wb3J0ICJSZW5kZXJJbWFnZS5oIgogI2ltcG9ydCAiUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW1wb3J0ICJSdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgiCisjaW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIKICNpbXBvcnQgIlN0eWxlUHJvcGVydGllcy5o
IgogI2ltcG9ydCAiV2ViQ29udGVudFJlYWRlci5oIgogI2ltcG9ydCAiV2ViTlNBdHRyaWJ1dGVk
U3RyaW5nRXh0cmFzLmgiCiAjaW1wb3J0ICJtYXJrdXAuaCIKICNpbXBvcnQgPEFwcEtpdC9BcHBL
aXQuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9OU1VS
TEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05OSw2ICsxMDYsODcgQEAgdm9p
ZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwgT3B0
aW9uU2V0PFBhc3RlT3B0aW9uPgogICAgIGNsaWVudCgpLT5zZXRJbnNlcnRpb25QYXN0ZWJvYXJk
KFN0cmluZygpKTsKIH0KIAordm9pZCBFZGl0b3I6OnBsYXRmb3JtQ29weUZvbnQoKQoreworQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICBQYXN0ZWJvYXJkIHBhc3RlYm9h
cmQoUGFnZVBhc3RlYm9hcmRDb250ZXh0OjpjcmVhdGUobV9kb2N1bWVudC5wYWdlSUQoKSksIE5T
Rm9udFBib2FyZCk7CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKworICAgIGF1
dG8gZm9udFNhbXBsZVN0cmluZyA9IGFkb3B0TlMoW1tOU0F0dHJpYnV0ZWRTdHJpbmcgYWxsb2Nd
IGluaXRXaXRoU3RyaW5nOkAieCIgYXR0cmlidXRlczpmb250QXR0cmlidXRlc0F0U2VsZWN0aW9u
U3RhcnQoKS5jcmVhdGVEaWN0aW9uYXJ5KCkuZ2V0KCldKTsKKyAgICBhdXRvIGZvbnREYXRhID0g
UmV0YWluUHRyKFtmb250U2FtcGxlU3RyaW5nIFJURkZyb21SYW5nZTpOU01ha2VSYW5nZSgwLCBb
Zm9udFNhbXBsZVN0cmluZyBsZW5ndGhdKSBkb2N1bWVudEF0dHJpYnV0ZXM6QHsgfV0pOworCisg
ICAgUGFzdGVib2FyZFdlYkNvbnRlbnQgY29udGVudDsKKyAgICBjb250ZW50LmNvbnRlbnRPcmln
aW4gPSBtX2RvY3VtZW50Lm9yaWdpbklkZW50aWZpZXJGb3JQYXN0ZWJvYXJkKCk7CisgICAgY29u
dGVudC5jbGllbnRUeXBlcyA9IHsgbGVnYWN5Rm9udFBhc3RlYm9hcmRUeXBlKCkgfTsKKyAgICBj
b250ZW50LmNsaWVudERhdGEgPSB7IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGZvbnREYXRhLmdldCgp
KSB9OworICAgIHBhc3RlYm9hcmQud3JpdGUoY29udGVudCk7Cit9CisKK3ZvaWQgRWRpdG9yOjpw
bGF0Zm9ybVBhc3RlRm9udCgpCit7CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgorICAgIFBhc3RlYm9hcmQgcGFzdGVib2FyZChQYWdlUGFzdGVib2FyZENvbnRleHQ6OmNyZWF0
ZShtX2RvY3VtZW50LnBhZ2VJRCgpKSwgTlNGb250UGJvYXJkKTsKK0FMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAorCisgICAgY2xpZW50KCktPnNldEluc2VydGlvblBhc3RlYm9hcmQo
cGFzdGVib2FyZC5uYW1lKCkpOworCisgICAgUmV0YWluUHRyPE5TRGF0YT4gZm9udERhdGE7Cisg
ICAgaWYgKGF1dG8gYnVmZmVyID0gcGFzdGVib2FyZC5yZWFkQnVmZmVyKDAsIGxlZ2FjeUZvbnRQ
YXN0ZWJvYXJkVHlwZSgpKSkKKyAgICAgICAgZm9udERhdGEgPSBidWZmZXItPmNyZWF0ZU5TRGF0
YSgpOworICAgIGF1dG8gZm9udFNhbXBsZVN0cmluZyA9IGFkb3B0TlMoW1tOU0F0dHJpYnV0ZWRT
dHJpbmcgYWxsb2NdIGluaXRXaXRoUlRGOmZvbnREYXRhLmdldCgpIGRvY3VtZW50QXR0cmlidXRl
czpuaWxdKTsKKyAgICBhdXRvIGZvbnRBdHRyaWJ1dGVzID0gUmV0YWluUHRyKFtmb250U2FtcGxl
U3RyaW5nIGZvbnRBdHRyaWJ1dGVzSW5SYW5nZTpOU01ha2VSYW5nZSgwLCAxKV0pOworCisgICAg
YXV0byBzdHlsZSA9IE11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZSgpOworCisgICAgQ29s
b3IgYmFja2dyb3VuZENvbG9yOworICAgIGlmIChOU0NvbG9yICpuc0JhY2tncm91bmRDb2xvciA9
IGR5bmFtaWNfb2JqY19jYXN0PE5TQ29sb3I+KFtmb250QXR0cmlidXRlcyBvYmplY3RGb3JLZXk6
TlNCYWNrZ3JvdW5kQ29sb3JBdHRyaWJ1dGVOYW1lXSkpCisgICAgICAgIGJhY2tncm91bmRDb2xv
ciA9IGNvbG9yRnJvbUNvY29hQ29sb3IobnNCYWNrZ3JvdW5kQ29sb3IpOworICAgIGlmICghYmFj
a2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgYmFja2dyb3VuZENvbG9yID0gQ29sb3I6
OnRyYW5zcGFyZW50QmxhY2s7CisgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5QmFj
a2dyb3VuZENvbG9yLCBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGJhY2tncm91bmRDb2xvcikp
OworCisgICAgaWYgKE5TRm9udCAqZm9udCA9IGR5bmFtaWNfb2JqY19jYXN0PE5TRm9udD4oW2Zv
bnRBdHRyaWJ1dGVzIG9iamVjdEZvcktleTpOU0ZvbnRBdHRyaWJ1dGVOYW1lXSkpIHsKKyAgICAg
ICAgLy8gRklYTUU6IE5lZWQgbW9yZSBzb3BoaXN0aWNhdGVkIGVzY2FwaW5nIGNvZGUgaWYgd2Ug
d2FudCB0byBoYW5kbGUgZmFtaWx5IG5hbWVzCisgICAgICAgIC8vIHdpdGggY2hhcmFjdGVycyBs
aWtlIHNpbmdsZSBxdW90ZSBvciBiYWNrc2xhc2ggaW4gdGhlaXIgbmFtZXMuCisgICAgICAgIHN0
eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUZvbnRGYW1pbHksIFtOU1N0cmluZyBzdHJpbmdX
aXRoRm9ybWF0OkAiJyVAJyIsIFtmb250IGZhbWlseU5hbWVdXSk7CisgICAgICAgIHN0eWxlLT5z
ZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUZvbnRTaXplLCBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRl
KFtmb250IHBvaW50U2l6ZV0sIENTU1VuaXRUeXBlOjpDU1NfUFgpKTsKKyAgICAgICAgLy8gRklY
TUU6IE1hcCB0byB0aGUgZW50aXJlIHJhbmdlIG9mIENTUyB3ZWlnaHQgdmFsdWVzLgorICAgICAg
ICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGb250V2VpZ2h0LCAoW05TRm9udE1hbmFn
ZXIuc2hhcmVkRm9udE1hbmFnZXIgd2VpZ2h0T2ZGb250OmZvbnRdID49IDcpID8gQ1NTVmFsdWVC
b2xkIDogQ1NTVmFsdWVOb3JtYWwpOworICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJv
cGVydHlGb250U3R5bGUsIChbTlNGb250TWFuYWdlci5zaGFyZWRGb250TWFuYWdlciB0cmFpdHNP
ZkZvbnQ6Zm9udF0gJiBOU0l0YWxpY0ZvbnRNYXNrKSA/IENTU1ZhbHVlSXRhbGljIDogQ1NTVmFs
dWVOb3JtYWwpOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUZvbnRGYW1pbHksICJIZWx2ZXRpY2EiX3MpOworICAgICAgICBzdHlsZS0+c2V0UHJv
cGVydHkoQ1NTUHJvcGVydHlGb250U2l6ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSgxMiwg
Q1NTVW5pdFR5cGU6OkNTU19QWCkpOworICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJv
cGVydHlGb250V2VpZ2h0LCBDU1NWYWx1ZU5vcm1hbCk7CisgICAgICAgIHN0eWxlLT5zZXRQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgQ1NTVmFsdWVOb3JtYWwpOworICAgIH0KKworICAg
IENvbG9yIGZvcmVncm91bmRDb2xvcjsKKyAgICBpZiAoTlNDb2xvciAqbnNGb3JlZ3JvdW5kQ29s
b3IgPSBkeW5hbWljX29iamNfY2FzdDxOU0NvbG9yPihbZm9udEF0dHJpYnV0ZXMgb2JqZWN0Rm9y
S2V5Ok5TRm9yZWdyb3VuZENvbG9yQXR0cmlidXRlTmFtZV0pKSB7CisgICAgICAgIGZvcmVncm91
bmRDb2xvciA9IGNvbG9yRnJvbUNvY29hQ29sb3IobnNGb3JlZ3JvdW5kQ29sb3IpOworICAgICAg
ICBpZiAoIWZvcmVncm91bmRDb2xvci5pc1ZhbGlkKCkpCisgICAgICAgICAgICBmb3JlZ3JvdW5k
Q29sb3IgPSBDb2xvcjo6dHJhbnNwYXJlbnRCbGFjazsKKyAgICB9IGVsc2UKKyAgICAgICAgZm9y
ZWdyb3VuZENvbG9yID0gQ29sb3I6OmJsYWNrOworICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUNvbG9yLCBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGZvcmVncm91bmRDb2xvcikp
OworCisgICAgRm9udFNoYWRvdyBmb250U2hhZG93OworICAgIGlmIChOU1NoYWRvdyAqbnNGb250
U2hhZG93ID0gZHluYW1pY19vYmpjX2Nhc3Q8TlNTaGFkb3c+KFtmb250QXR0cmlidXRlcyBvYmpl
Y3RGb3JLZXk6TlNTaGFkb3dBdHRyaWJ1dGVOYW1lXSkpCisgICAgICAgIGZvbnRTaGFkb3cgPSBm
b250U2hhZG93RnJvbU5TU2hhZG93KG5zRm9udFNoYWRvdyk7CisgICAgc3R5bGUtPnNldFByb3Bl
cnR5KENTU1Byb3BlcnR5VGV4dFNoYWRvdywgc2VyaWFsaXphdGlvbkZvckNTUyhmb250U2hhZG93
KSk7CisKKyAgICBhdXRvIHN1cGVyc2NyaXB0U3R5bGUgPSBbW2ZvbnRBdHRyaWJ1dGVzIG9iamVj
dEZvcktleTpOU1N1cGVyc2NyaXB0QXR0cmlidXRlTmFtZV0gaW50VmFsdWVdOworICAgIHN0eWxl
LT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24sIChzdXBlcnNjcmlwdFN0eWxl
ID4gMCkgPyBDU1NWYWx1ZVN1cGVyIDogKChzdXBlcnNjcmlwdFN0eWxlIDwgMCkgPyBDU1NWYWx1
ZVN1YiA6IENTU1ZhbHVlQmFzZWxpbmUpKTsKKworICAgIC8vIEZJWE1FOiBVbmRlcmxpbmUgd2lu
cyBoZXJlIGlmIHdlIGhhdmUgYm90aCAoc2VlIGJ1ZyAzNzkwNDQzKS4KKyAgICBhdXRvIHVuZGVy
bGluZVN0eWxlID0gW1tmb250QXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNVbmRlcmxpbmVTdHls
ZUF0dHJpYnV0ZU5hbWVdIGludFZhbHVlXTsKKyAgICBhdXRvIHN0cmlrZXRocm91Z2hTdHlsZSA9
IFtbZm9udEF0dHJpYnV0ZXMgb2JqZWN0Rm9yS2V5Ok5TU3RyaWtldGhyb3VnaFN0eWxlQXR0cmli
dXRlTmFtZV0gaW50VmFsdWVdOworICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVdl
YmtpdFRleHREZWNvcmF0aW9uc0luRWZmZWN0LCAodW5kZXJsaW5lU3R5bGUgIT0gTlNVbmRlcmxp
bmVTdHlsZU5vbmUpID8gQ1NTVmFsdWVVbmRlcmxpbmUgOiAoKHN0cmlrZXRocm91Z2hTdHlsZSAh
PSBOU1VuZGVybGluZVN0eWxlTm9uZSkgPyBDU1NWYWx1ZUxpbmVUaHJvdWdoIDogQ1NTVmFsdWVO
b25lKSk7CisKKyAgICBhcHBseVN0eWxlVG9TZWxlY3Rpb24oc3R5bGUucHRyKCksIEVkaXRBY3Rp
b246OlBhc3RlRm9udCk7CisKKyAgICBjbGllbnQoKS0+c2V0SW5zZXJ0aW9uUGFzdGVib2FyZChT
dHJpbmcoKSk7Cit9CisKIHZvaWQgRWRpdG9yOjpyZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9hcmQo
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKIHsKICAgICBQYXN0ZWJvYXJkIHBhc3RlYm9h
cmQoUGFnZVBhc3RlYm9hcmRDb250ZXh0OjpjcmVhdGUobV9kb2N1bWVudC5wYWdlSUQoKSksIHBh
c3RlYm9hcmROYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd2luL0Vk
aXRvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwCmlu
ZGV4IDNiNDA1MmQ0OWU1NTQwMGFhMzBiYmU3ZWE3MTgzYzdhNDZiOGM3YzQuLjFiNTE5ZTI1ZjA2
M2ZjYzI4MWExNjgwNDgxZjAzN2M5YzZhNDUwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvd2luL0VkaXRvcldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy93
aW4vRWRpdG9yV2luLmNwcApAQCAtNTIsNiArNTIsMTQgQEAgdm9pZCBFZGl0b3I6OnBhc3RlV2l0
aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwgT3B0aW9uU2V0PFBhc3RlT3B0aW9u
PgogICAgICAgICBwYXN0ZUFzRnJhZ21lbnQoZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgY2Fu
U21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQoKnBhc3RlYm9hcmQpLCBjaG9zZVBsYWluVGV4dCwg
b3B0aW9ucy5jb250YWlucyhQYXN0ZU9wdGlvbjo6SWdub3JlTWFpbEJsb2NrcXVvdGUpID8gTWFp
bEJsb2NrcXVvdGVIYW5kbGluZzo6SWdub3JlQmxvY2txdW90ZSA6IE1haWxCbG9ja3F1b3RlSGFu
ZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKIH0KIAordm9pZCBFZGl0b3I6OnBsYXRmb3JtQ29w
eUZvbnQoKQoreworfQorCit2b2lkIEVkaXRvcjo6cGxhdGZvcm1QYXN0ZUZvbnQoKQoreworfQor
CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgUGxhdGZvcm1EcmFnRGF0YT4KIHN0YXRpYyBSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tUGxhdGZvcm1EYXRhKFBsYXRmb3JtRHJh
Z0RhdGEmIHBsYXRmb3JtRHJhZ0RhdGEsIEZyYW1lJiBmcmFtZSkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggMDk3MzQ0MzAzOTA2MWI4Zjk4YjBjMDcx
NzhlNGFmNmE1MDQ0MDAwYy4uMTcyMmY3MjM4ZGEyMmRhYTQzNTIwMDQ1MWEzMjU3NzI2YTA0MTZm
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTIwNSw2
ICsyMDUsNyBAQCBXRUJDT1JFX0NPTU1BTkQoYWxpZ25KdXN0aWZpZWQpCiBXRUJDT1JFX0NPTU1B
TkQoYWxpZ25MZWZ0KQogV0VCQ09SRV9DT01NQU5EKGFsaWduUmlnaHQpCiBXRUJDT1JFX0NPTU1B
TkQoY29weSkKK1dFQkNPUkVfQ09NTUFORChjb3B5Rm9udCkKIFdFQkNPUkVfQ09NTUFORChjdXQp
CiBXRUJDT1JFX0NPTU1BTkQoZGVsZXRlKQogV0VCQ09SRV9DT01NQU5EKGRlbGV0ZUJhY2t3YXJk
KQpAQCAtMjc4LDYgKzI3OSw3IEBAIFdFQkNPUkVfQ09NTUFORChwYWdlVXApCiBXRUJDT1JFX0NP
TU1BTkQocGFnZVVwQW5kTW9kaWZ5U2VsZWN0aW9uKQogV0VCQ09SRV9DT01NQU5EKHBhc3RlKQog
V0VCQ09SRV9DT01NQU5EKHBhc3RlQXNQbGFpblRleHQpCitXRUJDT1JFX0NPTU1BTkQocGFzdGVG
b250KQogV0VCQ09SRV9DT01NQU5EKHNjcm9sbFBhZ2VEb3duKQogV0VCQ09SRV9DT01NQU5EKHNj
cm9sbFBhZ2VVcCkKIFdFQkNPUkVfQ09NTUFORChzY3JvbGxMaW5lRG93bikKQEAgLTMzOSwxMSAr
MzQxLDkgQEAgaW5kaXZpZHVhbCBtZXRob2RzIGhlcmUgd2l0aCBNYWMtc3BlY2lmaWMgY29kZS4K
IEVkaXRpbmctcmVsYXRlZCBtZXRob2RzIHN0aWxsIHVuaW1wbGVtZW50ZWQgdGhhdCBhcmUgaW1w
bGVtZW50ZWQgaW4gV2ViS2l0MToKIAogLSAodm9pZCljb21wbGV0ZTooaWQpc2VuZGVyOwotLSAo
dm9pZCljb3B5Rm9udDooaWQpc2VuZGVyOwogLSAodm9pZCltYWtlQmFzZVdyaXRpbmdEaXJlY3Rp
b25MZWZ0VG9SaWdodDooaWQpc2VuZGVyOwogLSAodm9pZCltYWtlQmFzZVdyaXRpbmdEaXJlY3Rp
b25OYXR1cmFsOihpZClzZW5kZXI7CiAtICh2b2lkKW1ha2VCYXNlV3JpdGluZ0RpcmVjdGlvblJp
Z2h0VG9MZWZ0OihpZClzZW5kZXI7Ci0tICh2b2lkKXBhc3RlRm9udDooaWQpc2VuZGVyOwogLSAo
dm9pZClzY3JvbGxMaW5lRG93bjooaWQpc2VuZGVyOwogLSAodm9pZClzY3JvbGxMaW5lVXA6KGlk
KXNlbmRlcjsKIC0gKHZvaWQpc2hvd0d1ZXNzUGFuZWw6KGlkKXNlbmRlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KaW5kZXggMmQzMDY5Y2Nl
MjUyNDQ3NTk5ZDFkNmJhZTM3ZDA2YTllMmVjNjcwYi4uZDZmYWY0ODgyMWUwYTBmYWEwNzNjMTll
ODUxOGE3YjUyMjQxYTFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L21hYy9XS1dlYlZpZXdNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21h
Yy9XS1dlYlZpZXdNYWMubW0KQEAgLTE2Nyw2ICsxNjcsNyBAQCBXRUJDT1JFX0NPTU1BTkQoYWxp
Z25KdXN0aWZpZWQpCiBXRUJDT1JFX0NPTU1BTkQoYWxpZ25MZWZ0KQogV0VCQ09SRV9DT01NQU5E
KGFsaWduUmlnaHQpCiBXRUJDT1JFX0NPTU1BTkQoY29weSkKK1dFQkNPUkVfQ09NTUFORChjb3B5
Rm9udCkKIFdFQkNPUkVfQ09NTUFORChjdXQpCiBXRUJDT1JFX0NPTU1BTkQoZGVsZXRlKQogV0VC
Q09SRV9DT01NQU5EKGRlbGV0ZUJhY2t3YXJkKQpAQCAtMjQwLDYgKzI0MSw3IEBAIFdFQkNPUkVf
Q09NTUFORChwYWdlVXApCiBXRUJDT1JFX0NPTU1BTkQocGFnZVVwQW5kTW9kaWZ5U2VsZWN0aW9u
KQogV0VCQ09SRV9DT01NQU5EKHBhc3RlKQogV0VCQ09SRV9DT01NQU5EKHBhc3RlQXNQbGFpblRl
eHQpCitXRUJDT1JFX0NPTU1BTkQocGFzdGVGb250KQogV0VCQ09SRV9DT01NQU5EKHNjcm9sbExp
bmVEb3duKQogV0VCQ09SRV9DT01NQU5EKHNjcm9sbExpbmVVcCkKIFdFQkNPUkVfQ09NTUFORChz
Y3JvbGxUb0JlZ2lubmluZ09mRG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDg4YzVkZDg5YzE0Zjc5YjVmNTA4Y2UyYTU0NDViN2Y3
NTMwYjRiNWQuLjExNzU3MzFhMmQwOGM0MjI1NTlhYTZmYzRlNGZhZGZiMDZlZjBjOWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC00NTkwLDYg
KzQ1OTAsMTEgQEAgc3RhdGljIE5TUGFzdGVib2FyZE5hbWUgcGFzdGVib2FyZE5hbWVGb3JBY2Nl
c3NDYXRlZ29yeShXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0MKICAgICBzd2l0Y2ggKHBhc3RlQWNj
ZXNzQ2F0ZWdvcnkpIHsKICAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6
OkdlbmVyYWw6CiAgICAgICAgIHJldHVybiBOU1Bhc3RlYm9hcmROYW1lR2VuZXJhbDsKKworICAg
IGNhc2UgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9udHM6CitBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorICAgICAgICByZXR1cm4gTlNGb250UGJvYXJkOwor
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQogfQogCkBAIC00NTk4LDYg
KzQ2MDMsMTEgQEAgc3RhdGljIE5TUGFzdGVib2FyZCAqcGFzdGVib2FyZEZvckFjY2Vzc0NhdGVn
b3J5KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkKICAgICBzd2l0Y2ggKHBhc3RlQWNj
ZXNzQ2F0ZWdvcnkpIHsKICAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6
OkdlbmVyYWw6CiAgICAgICAgIHJldHVybiBOU1Bhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQ7
CisKKyAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkZvbnRzOgorQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICAgICAgcmV0dXJuIFtOU1Bhc3Rl
Ym9hcmQgcGFzdGVib2FyZFdpdGhOYW1lOk5TRm9udFBib2FyZF07CitBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IGEzNGIxYmIxNDYyNTVhNDgxNTVmMTYyMDAxZjUwNWY4OGU2Zjlj
MjAuLjMxNDY4OTQwNGRiNDcwOTgzYzkyMmMxZThmMzZjY2M3MDFlMDY0OGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjUxNyw2ICsyNTE3LDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeT4gcGFzdGVBY2Nlc3NDYXRl
Z29yeUZvckNvbW1hbmQoY29uc3QKICAgICAgICAgeyAiUGFzdGVBbmRNYXRjaFN0eWxlIiwgRE9N
UGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbCB9LAogICAgICAgICB7ICJQYXN0ZUFzUXVvdGF0
aW9uIiwgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbCB9LAogICAgICAgICB7ICJQYXN0
ZUFzUGxhaW5UZXh0IiwgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbCB9LAorICAgICAg
ICB7ICJQYXN0ZUZvbnQiLCBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250cyB9LAogICAgIH07
CiAKICAgICBhdXRvIGl0ID0gcGFzdGVDb21tYW5kTmFtZXMtPmZpbmQoY29tbWFuZE5hbWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KaW5kZXggYjkwYWNmZWM0ODEyOGY0NTNjOTEwMjM2ZDJiYmY4YWNiYTkxOTE5
Ny4uNDA3MTBjYjg0MmJjOTEwOGFmMzdiOWI1MmQ0N2FjYTQ1MDEyZTZiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tCkBAIC00MTQ4LDYgKzQxNDgsMTAgQEAgc3RhdGljIFVJUGFzdGVib2FyZE5hbWUgcGFzdGVi
b2FyZE5hbWVGb3JBY2Nlc3NDYXRlZ29yeShXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0MKICAgICBz
d2l0Y2ggKHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIHsKICAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3Rl
QWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWw6CiAgICAgICAgIHJldHVybiBVSVBhc3RlYm9hcmROYW1l
R2VuZXJhbDsKKworICAgIGNhc2UgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9u
dHM6CisgICAgICAgIC8vIEZJWE1FOiBEb2VzIGlPUyBoYXZlIGEgZGlmZmVyZW50IHBhc3RlYm9h
cmQgZm9yIGZvbnRzPworICAgICAgICByZXR1cm4gVUlQYXN0ZWJvYXJkTmFtZUdlbmVyYWw7CiAg
ICAgfQogfQogCkBAIC00MTU2LDYgKzQxNjAsMTAgQEAgc3RhdGljIFVJUGFzdGVib2FyZCAqcGFz
dGVib2FyZEZvckFjY2Vzc0NhdGVnb3J5KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkK
ICAgICBzd2l0Y2ggKHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIHsKICAgICBjYXNlIFdlYkNvcmU6OkRP
TVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWw6CiAgICAgICAgIHJldHVybiBVSVBhc3RlYm9h
cmQuZ2VuZXJhbFBhc3RlYm9hcmQ7CisKKyAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
Q2F0ZWdvcnk6OkZvbnRzOgorICAgICAgICAvLyBGSVhNRTogRG9lcyBpT1MgaGF2ZSBhIGRpZmZl
cmVudCBwYXN0ZWJvYXJkIGZvciBmb250cz8KKyAgICAgICAgcmV0dXJuIFVJUGFzdGVib2FyZC5n
ZW5lcmFsUGFzdGVib2FyZDsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDBkZGZjM2U2OTFmMjlkNzlhMmY5YjNhYTZi
MWMwNTlhZjM3YzAwMGEuLmQ3ODAxNjRhNDY2YWI0Nzk0NTY3NmRlNGY2ZmVlNmNiNDBlYjYyN2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpA
QCAtMTU1MCw2ICsxNTUwLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybVBhc3Rl
Q29tbWFuZChET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IHBhc3RlQWNjZXNzQ2F0CiAgICAgY2FzZSBE
T01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpHZW5lcmFsOgogICAgICAgICBncmFudEFjY2Vzc1RvQ3Vy
cmVudFBhc3RlYm9hcmREYXRhKFVJUGFzdGVib2FyZE5hbWVHZW5lcmFsKTsKICAgICAgICAgcmV0
dXJuOworCisgICAgY2FzZSBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250czoKKyAgICAgICAg
Ly8gRklYTUU6IERvZXMgaU9TIGhhdmUgYSBkaWZmZXJlbnQgcGFzdGVib2FyZCBmb3IgZm9udHM/
CisgICAgICAgIGdyYW50QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEoVUlQYXN0ZWJvYXJk
TmFtZUdlbmVyYWwpOworICAgICAgICByZXR1cm47CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCA1NTFhMmFmMjNmZWUw
YmZkMjQ4Nzg2MjBhOWNkNzlmMDczNjFjNGZjLi5mY2ViYTNlNjBiMTZlMzllZDdmMzY2ODQyMTli
NjkzM2NkNWM3NzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2Vi
UGFnZVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdl
UHJveHlNYWMubW0KQEAgLTY1Nyw2ICs2NTcsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OndpbGxQ
ZXJmb3JtUGFzdGVDb21tYW5kKERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgcGFzdGVBY2Nlc3NDYXQK
ICAgICBjYXNlIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWw6CiAgICAgICAgIGdyYW50
QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEoTlNQYXN0ZWJvYXJkTmFtZUdlbmVyYWwpOwog
ICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkZvbnRz
OgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICAgICAgZ3JhbnRBY2Nl
c3NUb0N1cnJlbnRQYXN0ZWJvYXJkRGF0YShOU0ZvbnRQYm9hcmQpOworQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECisgICAgICAgIHJldHVybjsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBm
Yjg4M2QxN2QzZmNmZGJjMmYwODNmMWUxZTE2NTAzODhlYjM4ZWM5Li40ZTYxZGNkN2QzMjAxZjk1
ZTY3YWIzNTQzNTkxMGRlNmEyZWRiOTEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMTIt
MDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdLV2ViVmll
dyBkb2VzbuKAmXQgcmVzcG9uZCB0byAtY29weUZvbnQ6IGFuZCAtcGFzdGVGb250OgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMzc5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NTg3ODY1OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcvZWRpdGluZy5qczoKKyAgICAgICAgKGV4ZWND
b3B5Rm9udENvbW1hbmQpOiBBZGRlZC4KKyAgICAgICAgKGNvcHlGb250Q29tbWFuZCk6IEFkZGVk
LgorICAgICAgICAoZXhlY1Bhc3RlRm9udENvbW1hbmQpOiBBZGRlZC4KKyAgICAgICAgKHBhc3Rl
Rm9udENvbW1hbmQpOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL21hYy9j
b3B5Rm9udC1wYXN0ZUZvbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29t
bWFuZC9tYWMvY29weUZvbnQtcGFzdGVGb250LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorCisgICAg
ICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAyMS0xMi0wNyAgUmF6dmFuIENhbGltYW4gIDxyY2FsaW1hbkBhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU3VwcG9ydCBmdXp6eSBtYXRjaGluZyBpbiBD
U1MgY29tcGxldGlvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGZkNDM0ZGY4MzU0ODVhM2QxYzY2
ODFiOThkMDA4M2E2YzFmZDk3YmMuLjJiNTdhNzJhZDk3YzgzZjhhZmJiMmNiMDNkMDllZDJkYmJh
MTM4NTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjAsNiArMjAsNyBAQCBlZGl0aW5nL21hYyBb
IFNraXAgXQogZWRpdGluZy9jYXJldC9pb3MgWyBTa2lwIF0KIGVkaXRpbmcvZWRpdGFibGUtcmVn
aW9uIFsgU2tpcCBdCiBlZGl0aW5nL2V4ZWNDb21tYW5kL2lvcyBbIFNraXAgXQorZWRpdGluZy9l
eGVjQ29tbWFuZC9tYWMgWyBTa2lwIF0KIGVkaXRpbmcvaW5wdXQvY29jb2EgWyBTa2lwIF0KIGVk
aXRpbmcvaW5wdXQvaW9zIFsgU2tpcCBdCiBlZGl0aW5nL2ZpbmQgWyBTa2lwIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGluZy5qcyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
ZWRpdGluZy5qcwppbmRleCA5OTgxNjRlYjBiNjExZGZiZWM4YWJlZDdhNjAxMzI4YTk1M2ZmMjcx
Li44MzZjYmM3N2M0NjU1ZmY4MzhhMTE1YzdhMzkxNGFiMmFiZmE1OWE2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRpbmcuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9l
ZGl0aW5nLmpzCkBAIC04MTEsNiArODExLDM0IEBAIGZ1bmN0aW9uIHBhc3RlQ29tbWFuZCgpIHsK
IAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK2Z1
bmN0aW9uIGV4ZWNDb3B5Rm9udENvbW1hbmQoKSB7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQo
IkNvcHlGb250Iik7CisgICAgZGVidWdGb3JEdW1wQXNUZXh0KCJleGVjQ29weUZvbnRDb21tYW5k
Iik7Cit9CitmdW5jdGlvbiBjb3B5Rm9udENvbW1hbmQoKSB7CisgICAgaWYgKGNvbW1hbmREZWxh
eSA+IDApIHsKKyAgICAgICAgcXVldWVDb21tYW5kKGV4ZWNDb3B5Rm9udENvbW1hbmQsIGNvbW1h
bmRDb3VudCAqIGNvbW1hbmREZWxheSk7CisgICAgICAgIGNvbW1hbmRDb3VudCsrOworICAgIH0g
ZWxzZQorICAgICAgICBleGVjQ29weUZvbnRDb21tYW5kKCk7Cit9CisKKy8vLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitmdW5jdGlvbiBleGVjUGFzdGVG
b250Q29tbWFuZCgpIHsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGVGb250Iik7Cisg
ICAgZGVidWdGb3JEdW1wQXNUZXh0KCJleGVjUGFzdGVGb250Q29tbWFuZCIpOworfQorZnVuY3Rp
b24gcGFzdGVGb250Q29tbWFuZCgpIHsKKyAgICBpZiAoY29tbWFuZERlbGF5ID4gMCkgeworICAg
ICAgICBxdWV1ZUNvbW1hbmQoZXhlY1Bhc3RlRm9udENvbW1hbmQsIGNvbW1hbmRDb3VudCAqIGNv
bW1hbmREZWxheSk7CisgICAgICAgIGNvbW1hbmRDb3VudCsrOworICAgIH0gZWxzZQorICAgICAg
ICBleGVjUGFzdGVGb250Q29tbWFuZCgpOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwogZnVuY3Rpb24gZXhlY0NyZWF0ZUxpbmtDb21tYW5k
KHVybCkgewogICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJDcmVhdGVMaW5rIiwgZmFsc2UsIHVy
bCk7CiAgICAgZGVidWdGb3JEdW1wQXNUZXh0KCJleGVjQ3JlYXRlTGlua0NvbW1hbmQiKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvbWFjL2NvcHlGb250LXBh
c3RlRm9udC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9t
YWMvY29weUZvbnQtcGFzdGVGb250LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFiMTg1MTM3
MTc2MjA5ZGNjZTA1NmM3NmY1NjM5NjdlOWJlYTQ4NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvbWFjL2NvcHlGb250LXBhc3RlRm9udC1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorI2Nv
cHkgeworICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgIGZvbnQtZmFtaWx5OiBBcmlh
bDsKKyAgICBmb250LXNpemU6IDIwcHg7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgZm9u
dC1zdHlsZTogaXRhbGljOworICAgIGNvbG9yOiB5ZWxsb3c7CisgICAgdGV4dC1zaGFkb3c6IGJs
YWNrIDFweCAxcHg7CisgICAgdmVydGljYWwtYWxpZ246IHN1YjsKK30KKyAgICA8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0iY29weSI+Y29weSB0aGlzPC9kaXY+CisgICAg
PGRpdiBpZD0icGFzdGUiIGNvbnRlbnRlZGl0YWJsZT0iIj48Zm9udCBjb2xvcj0iI2ZmZmYwMCIg
ZmFjZT0iQXJpYWwiPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMTI4LCAw
KTsgZm9udC1zaXplOiAyMHB4OyB0ZXh0LXNoYWRvdzogcmdiKDAsIDAsIDApIDFweCAxcHg7Ij48
Yj48aT48c3ViPnBhc3RlIGhlcmU8L3N1Yj48L2k+PC9iPjwvc3Bhbj48L2ZvbnQ+PC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21t
YW5kL21hYy9jb3B5Rm9udC1wYXN0ZUZvbnQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhl
Y0NvbW1hbmQvbWFjL2NvcHlGb250LXBhc3RlRm9udC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhMGRiZTEy
OGQ0ZTYwNjM5N2I1MmM1N2Y4YzA3NmZjY2UzOWI1NjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL21hYy9jb3B5Rm9udC1wYXN0ZUZvbnQuaHRtbApA
QCAtMCwwICsxLDQ2IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPS4uLy4uL2Vk
aXRpbmcuanM+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KK2Z1bmN0aW9uIGVkaXRpbmdUZXN0KCkg
eworICAgIGxldCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisKKyAgICBsZXQg
Y29weVJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKKyAgICBjb3B5UmFuZ2Uuc2VsZWN0
Tm9kZUNvbnRlbnRzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb3B5IikpOworICAgIHNlbGVj
dGlvbi5yZW1vdmVBbGxSYW5nZXMoKTsKKyAgICBzZWxlY3Rpb24uYWRkUmFuZ2UoY29weVJhbmdl
KTsKKyAgICBjb3B5Rm9udENvbW1hbmQoKTsKKworICAgIGxldCBwYXN0ZVJhbmdlID0gZG9jdW1l
bnQuY3JlYXRlUmFuZ2UoKTsKKyAgICBwYXN0ZVJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicGFzdGUiKSk7CisgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJh
bmdlcygpOworICAgIHNlbGVjdGlvbi5hZGRSYW5nZShwYXN0ZVJhbmdlKTsKKyAgICBwYXN0ZUZv
bnRDb21tYW5kKCk7CisKKyAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7Cit9CisgICAg
PC9zY3JpcHQ+CisgICAgPHN0eWxlPgorI2NvcHkgeworICAgIGJhY2tncm91bmQtY29sb3I6IGdy
ZWVuOworICAgIGZvbnQtZmFtaWx5OiBBcmlhbDsKKyAgICBmb250LXNpemU6IDIwcHg7CisgICAg
Zm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgZm9udC1zdHlsZTogaXRhbGljOworICAgIGNvbG9yOiB5
ZWxsb3c7CisgICAgdGV4dC1zaGFkb3c6IGJsYWNrIDFweCAxcHg7CisgICAgdmVydGljYWwtYWxp
Z246IHN1YjsKK30KKyNwYXN0ZSB7CisgICAgb3V0bGluZTogbm9uZTsKK30KKyAgICA8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0iY29weSI+Y29weSB0aGlzPC9kaXY+Cisg
ICAgPGRpdiBpZD0icGFzdGUiIGNvbnRlbnRlZGl0YWJsZT5wYXN0ZSBoZXJlPC9kaXY+CisgICAg
PHNjcmlwdD4KK3J1bkVkaXRpbmdUZXN0KCk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDBlM2U3
YmI3ZjU3MmNmMWJiNDczZjAzNTM1N2ZlMTc5MTViZDBjYjQuLmM2NzEyYTAwYjA4MmNjZjhmMDI4
OTMwN2JhMjM5ZTg2MzEyMDQ0NGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhw
ZWN0YXRpb25zCkBAIC05LDYgKzksNyBAQAogYWNjZXNzaWJpbGl0eS9tYWMgWyBQYXNzIF0KIGNv
bXBvc2l0aW5nL3Njcm9sbGluZy9hc3luYy1vdmVyZmxvdy1zY3JvbGxpbmcvbWFjIFsgUGFzcyBd
CiBkaXNwbGF5bGlzdHMgWyBQYXNzIF0KK2VkaXRpbmcvZXhlY0NvbW1hbmQvbWFjIFsgUGFzcyBd
CiBlZGl0aW5nL2lucHV0L2NvY29hIFsgUGFzcyBdCiBlZGl0aW5nL21hYyBbIFBhc3MgXQogZWRp
dGluZy9wYXN0ZWJvYXJkL21hYyBbIFBhc3MgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446257</attachid>
            <date>2021-12-07 17:01:05 -0800</date>
            <delta_ts>2021-12-08 20:50:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191379-20211207180104.patch</filename>
            <type>text/plain</type>
            <size>35756</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzZmMwMWNlZjFkNjg4MGIzZDg0NWZjNDE4NzA5MzRjMTBhNTEzOTVlLi42
NTUzYTY5MjRkMDkzMWQ3ODM5N2VhNzE1M2YwY2U1YjlmYThiNjk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTAgQEAKKzIwMjEtMTItMDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdLV2ViVmlldyBkb2VzbuKAmXQgcmVzcG9uZCB0byAtY29weUZvbnQ6IGFu
ZCAtcGFzdGVGb250OgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkxMzc5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTg3ODY1OT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL2V4
ZWNDb21tYW5kL21hYy9jb3B5Rm9udC1wYXN0ZUZvbnQuaHRtbAorCisgICAgICAgICogZG9tL0RP
TVBhc3RlQWNjZXNzLmg6CisgICAgICAgIEFkZCBgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9u
dHNgICh3aGljaCBjb3JyZXNwb25kcyB0byBgTlNGb250UGJvYXJkYCBvbiBtYWNPUykuCisKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmV2ZW50TmFtZUZvckNsaXBib2FyZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZURhdGFUcmFuc2ZlckZvckNsaXBib2FyZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6Y29weUZvbnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6cGFzdGVGb250KTogQWRkZWQuCisgICAgICAgIEFkZCBwbGF0Zm9ybS1hZ25vc3RpYyBo
YW5kbGluZyBmb3IgYCJDb3B5Rm9udCJgIGFuZCBgIlBhc3RlRm9udCJgIGVkaXRvciBjb21tYW5k
cy4KKworICAgICAgICAqIGVkaXRpbmcvbWFjL0VkaXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6cGxhdGZvcm1Db3B5Rm9udCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yOjpwbGF0Zm9ybVBhc3RlRm9udCk6IEFkZGVkLgorICAgICAgICBNaW1pYyB0aGUgbG9n
aWMgaW4gYC1bV2ViSFRNTFZpZXcgY29weUZvbnQ6XWAvYC1bV2ViSFRNTFZpZXcgcGFzdGVGb250
Ol1gIHRvIGJlIGNvbXBhdGlibGUKKyAgICAgICAgd2l0aCBXSzEgKGkuZS4gdG8gbWFrZSBpdCBl
YXNpZXIgZm9yIGNsaWVudHMgdG8gc3dpdGNoIHRvIFdLMikuCisKKyAgICAgICAgKiBlZGl0aW5n
L2d0ay9FZGl0b3JHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwbGF0Zm9ybUNv
cHlGb250KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBsYXRmb3JtUGFzdGVG
b250KTogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yOjpwbGF0Zm9ybUNvcHlGb250KTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OnBsYXRmb3JtUGFzdGVGb250KTogQWRkZWQuCisgICAgICAgICogZWRp
dGluZy9saWJ3cGUvRWRpdG9yTGliV1BFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6
cGxhdGZvcm1Db3B5Rm9udCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwbGF0
Zm9ybVBhc3RlRm9udCk6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvd2luL0VkaXRvcldpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBsYXRmb3JtQ29weUZvbnQpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGxhdGZvcm1QYXN0ZUZvbnQpOiBBZGRlZC4KKyAg
ICAgICAgQWRkIHN0dWJzIGZvciBvdGhlciBwbGF0Zm9ybXMuCisKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUNvcHlGb250KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlUGFzdGVGb250KTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVDb21tYW5kTWFwKToKKyAgICAgICAgSG9vayBgIkNvcHlGb250
ImAgYW5kIGAiUGFzdGVGb250ImAgZWRpdG9yIGNvbW1hbmRzIHVwIHRvIGBkb2N1bWVudC5leGVj
Q29tbWFuZGAuCisKIDIwMjEtMTItMDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhIGBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5YCB0byBjb250cm9sIHdo
aWNoIHBhc3RlYm9hcmQgdGhlIFdlYlByb2Nlc3MgaXMgZ3JhbnRlZCBhY2Nlc3MgdG8gd2hlbiBw
YXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGJmMTE3MWVhOWRlOWM0MTU4YjZhNWE1ZWE3Zjg4YmU1ZjRjNGMx
MDkuLjQ3YjBkMGU1NzM3NWJiMmMxNmUyNTdhMzk4MzQ5OGJlMzU2MzY1MWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMjEtMTItMDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUu
Y29tPgorCisgICAgICAgIFdLV2ViVmlldyBkb2VzbuKAmXQgcmVzcG9uZCB0byAtY29weUZvbnQ6
IGFuZCAtcGFzdGVGb250OgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkxMzc5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTg3ODY1OT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdN
YWMubW06CisgICAgICAgIEFkZCBgLWNvcHlGb250OmAgYW5kIGAtcGFzdGVGb250OmAgbWV0aG9k
cyB2aWEgYFdFQkNPUkVfQ09NTUFORGAuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6cGFzdGVBY2Nlc3NDYXRlZ29yeUZvckNvbW1hbmQp
OgorICAgICAgICBUaGUgYFBhc3RlRm9udGAgY29tbWFuZCBzaG91bGQgYmUgY2F0ZWdvcml6ZWQg
YXMgYERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkZvbnRzYC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6cGFzdGVib2FyZE5hbWVG
b3JBY2Nlc3NDYXRlZ29yeSk6CisgICAgICAgIChXZWJLaXQ6OnBhc3RlYm9hcmRGb3JBY2Nlc3ND
YXRlZ29yeSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1QYXN0ZUNvbW1hbmQpOgor
ICAgICAgICBDb3JyZWxhdGUgYERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkZvbnRzYCB3aXRoIGBO
U0ZvbnRQYm9hcmRgLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW06CisgICAgICAgIChwYXN0ZWJvYXJkTmFtZUZvckFjY2Vzc0NhdGVnb3J5KToK
KyAgICAgICAgKHBhc3RlYm9hcmRGb3JBY2Nlc3NDYXRlZ29yeSk6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6d2lsbFBlcmZvcm1QYXN0ZUNvbW1hbmQpOgorICAgICAgICBDb3JyZWxhdGUgYERPTVBhc3Rl
QWNjZXNzQ2F0ZWdvcnk6OkZvbnRzYCB3aXRoIGBVSVBhc3RlYm9hcmROYW1lR2VuZXJhbGAuCisK
IDIwMjEtMTItMDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBhIGBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5YCB0byBjb250cm9sIHdoaWNoIHBhc3RlYm9h
cmQgdGhlIFdlYlByb2Nlc3MgaXMgZ3JhbnRlZCBhY2Nlc3MgdG8gd2hlbiBwYXN0aW5nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUGFzdGVBY2Nlc3MuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01QYXN0ZUFjY2Vzcy5oCmluZGV4IGRiNWE2NDRjYTYyNDdmZDliYTFlMDFiMmU4
YjczYTcyMDMxMjAyNWQuLmM3ZTNmOGI5ZGM4MzI1NzcwNWY3NWVmZDJkZTI5MzM1ZTc0Njg2ZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01QYXN0ZUFjY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01QYXN0ZUFjY2Vzcy5oCkBAIC0zMSw2ICszMSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IDogdWlu
dDhfdCB7CiAgICAgR2VuZXJhbCwKKyAgICBGb250cywKIH07CiAKIGVudW0gY2xhc3MgRE9NUGFz
dGVBY2Nlc3NQb2xpY3kgOiB1aW50OF90IHsKQEAgLTUyLDcgKzUzLDggQEAgbmFtZXNwYWNlIFdU
RiB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
Q2F0ZWdvcnk+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBXZWJD
b3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5LAotICAgICAgICBXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc0NhdGVnb3J5OjpHZW5lcmFsCisgICAgICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0
ZWdvcnk6OkdlbmVyYWwsCisgICAgICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6
OkZvbnRzCiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCAxNzI0
Y2YwZTUwYmFhNWI5YjI0MTMwNDgxZWU3MjRjYjc4MjA3YWE0Li4yODMxY2QzZmE5YzZhNGY5ZmY5
YTlhMGUyNWMzYjQyZTUyZDFiNjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0z
NzIsOCArMzcyLDEwIEBAIGJvb2wgRWRpdG9yOjpjYW5FZGl0UmljaGx5KCkgY29uc3QKIAogZW51
bSBjbGFzcyBDbGlwYm9hcmRFdmVudEtpbmQgewogICAgIENvcHksCisgICAgQ29weUZvbnQsCiAg
ICAgQ3V0LAogICAgIFBhc3RlLAorICAgIFBhc3RlRm9udCwKICAgICBQYXN0ZUFzUGxhaW5UZXh0
LAogICAgIFBhc3RlQXNRdW90YXRpb24sCiAgICAgQmVmb3JlQ29weSwKQEAgLTM4NSwxMiArMzg3
LDE0IEBAIHN0YXRpYyBBdG9tU3RyaW5nIGV2ZW50TmFtZUZvckNsaXBib2FyZEV2ZW50KENsaXBi
b2FyZEV2ZW50S2luZCBraW5kKQogewogICAgIHN3aXRjaCAoa2luZCkgewogICAgIGNhc2UgQ2xp
cGJvYXJkRXZlbnRLaW5kOjpDb3B5OgorICAgIGNhc2UgQ2xpcGJvYXJkRXZlbnRLaW5kOjpDb3B5
Rm9udDoKICAgICAgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5jb3B5RXZlbnQ7CiAgICAgY2FzZSBD
bGlwYm9hcmRFdmVudEtpbmQ6OkN1dDoKICAgICAgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5jdXRF
dmVudDsKICAgICBjYXNlIENsaXBib2FyZEV2ZW50S2luZDo6UGFzdGU6CiAgICAgY2FzZSBDbGlw
Ym9hcmRFdmVudEtpbmQ6OlBhc3RlQXNQbGFpblRleHQ6CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVu
dEtpbmQ6OlBhc3RlQXNRdW90YXRpb246CisgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OlBh
c3RlRm9udDoKICAgICAgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5wYXN0ZUV2ZW50OwogICAgIGNh
c2UgQ2xpcGJvYXJkRXZlbnRLaW5kOjpCZWZvcmVDb3B5OgogICAgICAgICByZXR1cm4gZXZlbnRO
YW1lcygpLmJlZm9yZWNvcHlFdmVudDsKQEAgLTQwNyw2ICs0MTEsNyBAQCBzdGF0aWMgUmVmPERh
dGFUcmFuc2Zlcj4gY3JlYXRlRGF0YVRyYW5zZmVyRm9yQ2xpcGJvYXJkRXZlbnQoRG9jdW1lbnQm
IGRvY3VtZW50LAogewogICAgIHN3aXRjaCAoa2luZCkgewogICAgIGNhc2UgQ2xpcGJvYXJkRXZl
bnRLaW5kOjpDb3B5OgorICAgIGNhc2UgQ2xpcGJvYXJkRXZlbnRLaW5kOjpDb3B5Rm9udDoKICAg
ICBjYXNlIENsaXBib2FyZEV2ZW50S2luZDo6Q3V0OgogICAgICAgICByZXR1cm4gRGF0YVRyYW5z
ZmVyOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoZG9jdW1lbnQsIERhdGFUcmFuc2Zlcjo6U3RvcmVN
b2RlOjpSZWFkV3JpdGUsIG1ha2VVbmlxdWU8U3RhdGljUGFzdGVib2FyZD4oKSk7CiAgICAgY2Fz
ZSBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3RlQXNQbGFpblRleHQ6CkBAIC00MjAsNiArNDI1LDcg
QEAgc3RhdGljIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURhdGFUcmFuc2ZlckZvckNsaXBib2Fy
ZEV2ZW50KERvY3VtZW50JiBkb2N1bWVudCwKICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgY2Fz
ZSBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3RlOgogICAgIGNhc2UgQ2xpcGJvYXJkRXZlbnRLaW5k
OjpQYXN0ZUFzUXVvdGF0aW9uOgorICAgIGNhc2UgQ2xpcGJvYXJkRXZlbnRLaW5kOjpQYXN0ZUZv
bnQ6CiAgICAgICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZShk
b2N1bWVudCwgRGF0YVRyYW5zZmVyOjpTdG9yZU1vZGU6OlJlYWRvbmx5LCBQYXN0ZWJvYXJkOjpj
cmVhdGVGb3JDb3B5QW5kUGFzdGUoUGFnZVBhc3RlYm9hcmRDb250ZXh0OjpjcmVhdGUoZG9jdW1l
bnQucGFnZUlEKCkpKSk7CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OkJlZm9yZUNvcHk6
CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OkJlZm9yZUN1dDoKQEAgLTE0MDQsNiArMTQx
MCwyMSBAQCB2b2lkIEVkaXRvcjo6Y29weShGcm9tTWVudU9yS2V5QmluZGluZyBmcm9tTWVudU9y
S2V5QmluZGluZykKICAgICBwZXJmb3JtQ3V0T3JDb3B5KENvcHlBY3Rpb24pOwogfQogCit2b2lk
IEVkaXRvcjo6Y29weUZvbnQoRnJvbU1lbnVPcktleUJpbmRpbmcgZnJvbU1lbnVPcktleUJpbmRp
bmcpCit7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY29weVNjb3BlIHsgbV9jb3B5aW5nRnJvbU1l
bnVPcktleUJpbmRpbmcsIGZyb21NZW51T3JLZXlCaW5kaW5nID09IEZyb21NZW51T3JLZXlCaW5k
aW5nOjpZZXMgfTsKKyAgICBpZiAodHJ5REhUTUxDb3B5KCkpCisgICAgICAgIHJldHVybjsgLy8g
REhUTUwgZGlkIHRoZSB3aG9sZSBvcGVyYXRpb24KKyAgICBpZiAoIWNhbkNvcHkoKSkgeworICAg
ICAgICBTeXN0ZW1Tb3VuZE1hbmFnZXI6OnNpbmdsZXRvbigpLnN5c3RlbUJlZXAoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIHdpbGxXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChz
ZWxlY3RlZFJhbmdlKCkpOworICAgIHBsYXRmb3JtQ29weUZvbnQoKTsKKyAgICBkaWRXcml0ZVNl
bGVjdGlvblRvUGFzdGVib2FyZCgpOworfQorCiB2b2lkIEVkaXRvcjo6cG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbkZvckN1dChjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIHNlbGVjdGlvbikKIHsKICAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCkBAIC0xNTEyLDYgKzE1MzMsMTkgQEAgdm9pZCBFZGl0b3I6OnBhc3Rl
QXNRdW90YXRpb24oRnJvbU1lbnVPcktleUJpbmRpbmcgZnJvbU1lbnVPcktleUJpbmRpbmcpCiAg
ICAgICAgIHBhc3RlQXNQbGFpblRleHRXaXRoUGFzdGVib2FyZCgqcGFzdGVib2FyZCk7CiB9CiAK
K3ZvaWQgRWRpdG9yOjpwYXN0ZUZvbnQoRnJvbU1lbnVPcktleUJpbmRpbmcgZnJvbU1lbnVPcktl
eUJpbmRpbmcpCit7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gcGFzdGVTY29wZSB7IG1fcGFzdGlu
Z0Zyb21NZW51T3JLZXlCaW5kaW5nLCBmcm9tTWVudU9yS2V5QmluZGluZyA9PSBGcm9tTWVudU9y
S2V5QmluZGluZzo6WWVzIH07CisKKyAgICBpZiAoIWRpc3BhdGNoQ2xpcGJvYXJkRXZlbnQoZmlu
ZEV2ZW50VGFyZ2V0RnJvbVNlbGVjdGlvbigpLCBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3RlRm9u
dCkpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIWNhblBhc3RlKCkpCisgICAgICAgIHJldHVy
bjsKKyAgICB1cGRhdGVNYXJrZXJzRm9yV29yZHNBZmZlY3RlZEJ5RWRpdGluZyhmYWxzZSk7Cisg
ICAgUmVzb3VyY2VDYWNoZVZhbGlkYXRpb25TdXBwcmVzc29yIHZhbGlkYXRpb25TdXBwcmVzc29y
KGRvY3VtZW50KCkuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKSk7CisgICAgcGxhdGZvcm1QYXN0ZUZv
bnQoKTsKK30KKwogdm9pZCBFZGl0b3I6OnF1b3RlRnJhZ21lbnRGb3JQYXN0aW5nKERvY3VtZW50
RnJhZ21lbnQmIGZyYWdtZW50KQogewogICAgIGF1dG8gYmxvY2tRdW90ZSA9IEhUTUxRdW90ZUVs
ZW1lbnQ6OmNyZWF0ZShibG9ja3F1b3RlVGFnLCBkb2N1bWVudCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCmluZGV4IDAxZmUwYjVlMDQ0ZWY2M2YyNmE3MWI0NzJlZjk4YjExYzIyOGI5MWMuLmIw
MzEzNmZmY2YxZjZiMzdlNmIwN2FiNjIzMmU2MWY2NmRlZTc1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuaApAQCAtMTk3LDExICsxOTcsMTMgQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgRnJv
bU1lbnVPcktleUJpbmRpbmcgOiBib29sIHsgTm8sIFllcyB9OwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgY3V0KEZyb21NZW51T3JLZXlCaW5kaW5nID0gRnJvbU1lbnVPcktleUJpbmRpbmc6Ok5v
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvcHkoRnJvbU1lbnVPcktleUJpbmRpbmcgPSBG
cm9tTWVudU9yS2V5QmluZGluZzo6Tm8pOworICAgIHZvaWQgY29weUZvbnQoRnJvbU1lbnVPcktl
eUJpbmRpbmcgPSBGcm9tTWVudU9yS2V5QmluZGluZzo6Tm8pOwogCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBwYXN0ZShGcm9tTWVudU9yS2V5QmluZGluZyA9IEZyb21NZW51T3JLZXlCaW5kaW5n
OjpObyk7CiAgICAgdm9pZCBwYXN0ZShQYXN0ZWJvYXJkJiwgRnJvbU1lbnVPcktleUJpbmRpbmcg
PSBGcm9tTWVudU9yS2V5QmluZGluZzo6Tm8pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcGFz
dGVBc1BsYWluVGV4dChGcm9tTWVudU9yS2V5QmluZGluZyA9IEZyb21NZW51T3JLZXlCaW5kaW5n
OjpObyk7CiAgICAgdm9pZCBwYXN0ZUFzUXVvdGF0aW9uKEZyb21NZW51T3JLZXlCaW5kaW5nID0g
RnJvbU1lbnVPcktleUJpbmRpbmc6Ok5vKTsKKyAgICB2b2lkIHBhc3RlRm9udChGcm9tTWVudU9y
S2V5QmluZGluZyA9IEZyb21NZW51T3JLZXlCaW5kaW5nOjpObyk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBwZXJmb3JtRGVsZXRlKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvcHlV
UkwoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CkBAIC01OTIsNiArNTk0LDkgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCosIE9wdGlv
blNldDxQYXN0ZU9wdGlvbj4pOwogICAgIFN0cmluZyBwbGFpblRleHRGcm9tUGFzdGVib2FyZChj
b25zdCBQYXN0ZWJvYXJkUGxhaW5UZXh0Jik7CiAKKyAgICB2b2lkIHBsYXRmb3JtQ29weUZvbnQo
KTsKKyAgICB2b2lkIHBsYXRmb3JtUGFzdGVGb250KCk7CisKICAgICB2b2lkIHF1b3RlRnJhZ21l
bnRGb3JQYXN0aW5nKERvY3VtZW50RnJhZ21lbnQmKTsKIAogICAgIHZvaWQgcmV2ZWFsU2VsZWN0
aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKGNvbnN0IFNjcm9sbEFsaWdubWVudCYgPSBTY3JvbGxB
bGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQsIFJldmVhbEV4dGVudE9wdGlvbiA9IERvTm90
UmV2ZWFsRXh0ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmlu
ZGV4IGYxODc1OWQwNjJkZjU5NmY5NDU3ZDkxOTBhNTcwYTcxNDkyZTM0ZmMuLjYxYTFlYTZiOTc1
N2M3YmI3NTVmOTQyZGVhYzg4MDExNWU3ZDRkYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3JDb21tYW5kLmNwcApAQCAtMjQyLDYgKzI0MiwxMiBAQCBzdGF0aWMgYm9vbCBleGVjdXRl
Q29weShGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIGNv
bnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBib29sIGV4ZWN1dGVDb3B5Rm9udChG
cmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIGNvbnN0IFN0
cmluZyYpCit7CisgICAgZnJhbWUuZWRpdG9yKCkuY29weUZvbnQoc291cmNlID09IENvbW1hbmRG
cm9tTWVudU9yS2V5QmluZGluZyA/IEVkaXRvcjo6RnJvbU1lbnVPcktleUJpbmRpbmc6OlllcyA6
IEVkaXRvcjo6RnJvbU1lbnVPcktleUJpbmRpbmc6Ok5vKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
Kwogc3RhdGljIGJvb2wgZXhlY3V0ZUNyZWF0ZUxpbmsoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVk
aXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgLy8gRklYTUU6
IElmIHVzZXJJbnRlcmZhY2UgaXMgdHJ1ZSwgd2Ugc2hvdWxkIGRpc3BsYXkgYSBkaWFsb2cgYm94
IHRvIGxldCB0aGUgdXNlciBlbnRlciBhIFVSTC4KQEAgLTkwNiw2ICs5MTIsMjEgQEAgc3RhdGlj
IGJvb2wgZXhlY3V0ZVBhc3RlKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291
cmNlIHNvdXJjZSwgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgZXhl
Y3V0ZVBhc3RlRm9udChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBz
b3VyY2UsIGNvbnN0IFN0cmluZyYpCit7CisgICAgaWYgKHNvdXJjZSA9PSBDb21tYW5kRnJvbU1l
bnVPcktleUJpbmRpbmcpIHsKKyAgICAgICAgVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IgdHlw
aW5nR2VzdHVyZUluZGljYXRvcihmcmFtZSk7CisgICAgICAgIGZyYW1lLmVkaXRvcigpLnBhc3Rl
Rm9udChFZGl0b3I6OkZyb21NZW51T3JLZXlCaW5kaW5nOjpZZXMpOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoIWZyYW1lLnJlcXVlc3RET01QYXN0ZUFjY2VzcyhET01Q
YXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250cykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGZyYW1lLmVkaXRvcigpLnBhc3RlRm9udCgpOworICAgIHJldHVybiB0cnVlOworfQorCiAjaWYg
UExBVEZPUk0oR1RLKQogCiBzdGF0aWMgYm9vbCBleGVjdXRlUGFzdGVHbG9iYWxTZWxlY3Rpb24o
RnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBjb25zdCBT
dHJpbmcmKQpAQCAtMTYxNCw2ICsxNjM1LDcgQEAgc3RhdGljIGNvbnN0IENvbW1hbmRNYXAmIGNy
ZWF0ZUNvbW1hbmRNYXAoKQogICAgICAgICB7ICJCb2xkIl9zLCB7IGV4ZWN1dGVUb2dnbGVCb2xk
LCBzdXBwb3J0ZWQsIGVuYWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVCb2xkLCB2YWx1
ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQg
fSB9LAogICAgICAgICB7ICJDbGVhclRleHQiX3MsIHsgZXhlY3V0ZUNsZWFyVGV4dCwgc3VwcG9y
dGVkLCBlbmFibGVkQ2xlYXJUZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2Vy
dGlvbiwgYWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJDb3B5Il9z
LCB7IGV4ZWN1dGVDb3B5LCBzdXBwb3J0ZWRDb3B5Q3V0LCBlbmFibGVkQ29weSwgc3RhdGVOb25l
LCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVk
Q29weUN1dCB9IH0sCisgICAgICAgIHsgIkNvcHlGb250Il9zLCB7IGV4ZWN1dGVDb3B5Rm9udCwg
c3VwcG9ydGVkQ29weUN1dCwgZW5hYmxlZENvcHksIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RU
ZXh0SW5zZXJ0aW9uLCBhbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZENvcHlDdXQgfSB9LAogICAg
ICAgICB7ICJDcmVhdGVMaW5rIl9zLCB7IGV4ZWN1dGVDcmVhdGVMaW5rLCBzdXBwb3J0ZWQsIGVu
YWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJ
bnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7
ICJDdXQiX3MsIHsgZXhlY3V0ZUN1dCwgc3VwcG9ydGVkQ29weUN1dCwgZW5hYmxlZEN1dCwgc3Rh
dGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGFsbG93RXhlY3V0aW9uV2hlbkRp
c2FibGVkQ29weUN1dCB9IH0sCiAgICAgICAgIHsgIkRlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3Ii
X3MsIHsgZXhlY3V0ZURlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3IsIHN1cHBvcnRlZCwgZW5hYmxl
ZCwgc3RhdGVOb25lLCB2YWx1ZURlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3IsIG5vdFRleHRJbnNl
cnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWR9IH0sCkBAIC0xNzEzLDYgKzE3
MzUsNyBAQCBzdGF0aWMgY29uc3QgQ29tbWFuZE1hcCYgY3JlYXRlQ29tbWFuZE1hcCgpCiAgICAg
ICAgIHsgIlBhc3RlQW5kTWF0Y2hTdHlsZSJfcywgeyBleGVjdXRlUGFzdGVBbmRNYXRjaFN0eWxl
LCBzdXBwb3J0ZWRQYXN0ZSwgZW5hYmxlZFBhc3RlLCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90
VGV4dEluc2VydGlvbiwgYWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWRQYXN0ZSB9IH0sCiAgICAg
ICAgIHsgIlBhc3RlQXNQbGFpblRleHQiX3MsIHsgZXhlY3V0ZVBhc3RlQXNQbGFpblRleHQsIHN1
cHBvcnRlZFBhc3RlLCBlbmFibGVkUGFzdGUsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0
SW5zZXJ0aW9uLCBhbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZFBhc3RlIH0gfSwKICAgICAgICAg
eyAiUGFzdGVBc1F1b3RhdGlvbiJfcywgeyBleGVjdXRlUGFzdGVBc1F1b3RhdGlvbiwgc3VwcG9y
dGVkUGFzdGUsIGVuYWJsZWRQYXN0ZSwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNl
cnRpb24sIGFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkUGFzdGUgfSB9LAorICAgICAgICB7ICJQ
YXN0ZUZvbnQiX3MsIHsgZXhlY3V0ZVBhc3RlRm9udCwgc3VwcG9ydGVkUGFzdGUsIGVuYWJsZWRQ
YXN0ZSwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGFsbG93RXhlY3V0
aW9uV2hlbkRpc2FibGVkUGFzdGUgfSB9LAogICAgICAgICB7ICJQcmludCJfcywgeyBleGVjdXRl
UHJpbnQsIHN1cHBvcnRlZCwgZW5hYmxlZCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJ
bnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7
ICJSZWRvIl9zLCB7IGV4ZWN1dGVSZWRvLCBzdXBwb3J0ZWQsIGVuYWJsZWRSZWRvLCBzdGF0ZU5v
bmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5E
aXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIlJlbW92ZUZvcm1hdCJfcywgeyBleGVjdXRlUmVtb3Zl
Rm9ybWF0LCBzdXBwb3J0ZWQsIGVuYWJsZWRSYW5nZUluRWRpdGFibGVUZXh0LCBzdGF0ZU5vbmUs
IHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNh
YmxlZCB9IH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0ay9FZGl0b3JH
dGsuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9ndGsvRWRpdG9yR3RrLmNwcAppbmRleCA2
MWM1ODFhMmU4ODIyOWJkYTE1YjkzZjFjZWQzZmY2YjZlODhiNjM4Li4zNmMwNGQ2MTBkODJjYzZj
MGE5YzBkNjljZTEzNWQ4M2NiMDZhNjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2d0ay9FZGl0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0Vk
aXRvckd0ay5jcHAKQEAgLTY1LDYgKzY1LDE0IEBAIHZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0
ZWJvYXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIE9wdGlvblNldDxQYXN0ZU9wdGlvbj4KICAg
ICAgICAgcGFzdGVBc0ZyYWdtZW50KGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGNhblNtYXJ0
UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hvc2VQbGFpblRleHQsIG9wdGlv
bnMuY29udGFpbnMoUGFzdGVPcHRpb246Oklnbm9yZU1haWxCbG9ja3F1b3RlKSA/IE1haWxCbG9j
a3F1b3RlSGFuZGxpbmc6Oklnbm9yZUJsb2NrcXVvdGUgOiBNYWlsQmxvY2txdW90ZUhhbmRsaW5n
OjpSZXNwZWN0QmxvY2txdW90ZSk7CiB9CiAKK3ZvaWQgRWRpdG9yOjpwbGF0Zm9ybUNvcHlGb250
KCkKK3sKK30KKwordm9pZCBFZGl0b3I6OnBsYXRmb3JtUGFzdGVGb250KCkKK3sKK30KKwogc3Rh
dGljIGNvbnN0IEF0b21TdHJpbmcmIGVsZW1lbnRVUkwoRWxlbWVudCYgZWxlbWVudCkKIHsKICAg
ICBpZiAoaXM8SFRNTEltYWdlRWxlbWVudD4oZWxlbWVudCkgfHwgaXM8SFRNTElucHV0RWxlbWVu
dD4oZWxlbWVudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0
b3JJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KaW5kZXgg
NzBmMGI3MTFhOWQzNWI5NjIwNThhZmIxMWJhNjhmZmFmYjU1ZmIxNy4uODUxZjI5NTBiOTFiYTQ0
MGQ5OTkzYTUyMmY5MTUwZjAxYTU4MWVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9pb3MvRWRpdG9ySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0Vk
aXRvcklPUy5tbQpAQCAtMjM4LDYgKzIzOCwxNCBAQCB2b2lkIEVkaXRvcjo6cGFzdGVXaXRoUGFz
dGVib2FyZChQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkLCBPcHRpb25TZXQ8UGFzdGVPcHRpb24+CiAg
ICAgICAgIHBhc3RlQXNGcmFnbWVudChmcmFnbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBjYW5TbWFy
dFJlcGxhY2VXaXRoUGFzdGVib2FyZCgqcGFzdGVib2FyZCksIGZhbHNlLCBvcHRpb25zLmNvbnRh
aW5zKFBhc3RlT3B0aW9uOjpJZ25vcmVNYWlsQmxvY2txdW90ZSkgPyBNYWlsQmxvY2txdW90ZUhh
bmRsaW5nOjpJZ25vcmVCbG9ja3F1b3RlIDogTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVzcGVj
dEJsb2NrcXVvdGUpOwogfQogCit2b2lkIEVkaXRvcjo6cGxhdGZvcm1Db3B5Rm9udCgpCit7Cit9
CisKK3ZvaWQgRWRpdG9yOjpwbGF0Zm9ybVBhc3RlRm9udCgpCit7Cit9CisKIHZvaWQgRWRpdG9y
OjppbnNlcnREaWN0YXRpb25QaHJhc2VzKFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4mJiBkaWN0YXRp
b25QaHJhc2VzLCBpZCBtZXRhZGF0YSkKIHsKICAgICBpZiAobV9kb2N1bWVudC5zZWxlY3Rpb24o
KS5pc05vbmUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbGlid3BlL0Vk
aXRvckxpYldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2xpYndwZS9FZGl0b3JMaWJX
UEUuY3BwCmluZGV4IDlkZDQxZDYzNjY1MTJmZDM4NTkzN2E3NjA4YmQzZmM5YjViOTBmNjAuLjg1
OTVlZDFkZGYzODk3MTE0MjJlNDUzOTg4ZGJiYzNkZTVkZTg3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvbGlid3BlL0VkaXRvckxpYldQRS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9saWJ3cGUvRWRpdG9yTGliV1BFLmNwcApAQCAtOTEsNiArOTEsMTQgQEAg
dm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwg
T3B0aW9uU2V0PFBhc3RlT3B0aW9uPgogICAgICAgICBwYXN0ZUFzRnJhZ21lbnQoKmZyYWdtZW50
LCBjYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZCgqcGFzdGVib2FyZCksIGNob3NlUGxhaW5U
ZXh0LCBvcHRpb25zLmNvbnRhaW5zKFBhc3RlT3B0aW9uOjpJZ25vcmVNYWlsQmxvY2txdW90ZSkg
PyBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpJZ25vcmVCbG9ja3F1b3RlIDogTWFpbEJsb2NrcXVv
dGVIYW5kbGluZzo6UmVzcGVjdEJsb2NrcXVvdGUpOwogfQogCit2b2lkIEVkaXRvcjo6cGxhdGZv
cm1Db3B5Rm9udCgpCit7Cit9CisKK3ZvaWQgRWRpdG9yOjpwbGF0Zm9ybVBhc3RlRm9udCgpCit7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShMSUJXUEUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KaW5kZXggMmQxOWI5YzdjMjJiM2Vi
YzI2N2M2NzYxMDZjODkyZjA5Yjc3NzUzZC4uMTg0MzAyNGIwZDc5ZGIyNTk3OTEyZmM4ZjRkMjcy
OTgzNWZkNjlhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9y
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQpAQCAt
MzEsMTAgKzMxLDE1IEBACiAjaW1wb3J0ICJCbG9iLmgiCiAjaW1wb3J0ICJDU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmgiCiAjaW1wb3J0ICJDU1NWYWx1ZVBvb2wuaCIKKyNpbXBvcnQgIkNvbG9y
LmgiCisjaW1wb3J0ICJDb2xvckNvY29hLmgiCisjaW1wb3J0ICJDb2xvclNlcmlhbGl6YXRpb24u
aCIKICNpbXBvcnQgIkRhdGFUcmFuc2Zlci5oIgogI2ltcG9ydCAiRG9jdW1lbnRGcmFnbWVudC5o
IgogI2ltcG9ydCAiRWRpdGluZy5oIgogI2ltcG9ydCAiRWRpdG9yQ2xpZW50LmgiCisjaW1wb3J0
ICJGb250QXR0cmlidXRlcy5oIgorI2ltcG9ydCAiRm9udFNoYWRvdy5oIgogI2ltcG9ydCAiRnJh
bWUuaCIKICNpbXBvcnQgIkZyYW1lVmlldy5oIgogI2ltcG9ydCAiSFRNTENvbnZlcnRlci5oIgpA
QCAtNTAsMTEgKzU1LDEzIEBACiAjaW1wb3J0ICJSZW5kZXJJbWFnZS5oIgogI2ltcG9ydCAiUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW1wb3J0ICJSdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgiCisjaW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIKICNpbXBvcnQgIlN0eWxlUHJvcGVydGllcy5o
IgogI2ltcG9ydCAiV2ViQ29udGVudFJlYWRlci5oIgogI2ltcG9ydCAiV2ViTlNBdHRyaWJ1dGVk
U3RyaW5nRXh0cmFzLmgiCiAjaW1wb3J0ICJtYXJrdXAuaCIKICNpbXBvcnQgPEFwcEtpdC9BcHBL
aXQuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9OU1VS
TEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05OSw2ICsxMDYsODcgQEAgdm9p
ZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwgT3B0
aW9uU2V0PFBhc3RlT3B0aW9uPgogICAgIGNsaWVudCgpLT5zZXRJbnNlcnRpb25QYXN0ZWJvYXJk
KFN0cmluZygpKTsKIH0KIAordm9pZCBFZGl0b3I6OnBsYXRmb3JtQ29weUZvbnQoKQoreworQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICBQYXN0ZWJvYXJkIHBhc3RlYm9h
cmQoUGFnZVBhc3RlYm9hcmRDb250ZXh0OjpjcmVhdGUobV9kb2N1bWVudC5wYWdlSUQoKSksIE5T
Rm9udFBib2FyZCk7CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKworICAgIGF1
dG8gZm9udFNhbXBsZVN0cmluZyA9IGFkb3B0TlMoW1tOU0F0dHJpYnV0ZWRTdHJpbmcgYWxsb2Nd
IGluaXRXaXRoU3RyaW5nOkAieCIgYXR0cmlidXRlczpmb250QXR0cmlidXRlc0F0U2VsZWN0aW9u
U3RhcnQoKS5jcmVhdGVEaWN0aW9uYXJ5KCkuZ2V0KCldKTsKKyAgICBhdXRvIGZvbnREYXRhID0g
UmV0YWluUHRyKFtmb250U2FtcGxlU3RyaW5nIFJURkZyb21SYW5nZTpOU01ha2VSYW5nZSgwLCBb
Zm9udFNhbXBsZVN0cmluZyBsZW5ndGhdKSBkb2N1bWVudEF0dHJpYnV0ZXM6QHsgfV0pOworCisg
ICAgUGFzdGVib2FyZFdlYkNvbnRlbnQgY29udGVudDsKKyAgICBjb250ZW50LmNvbnRlbnRPcmln
aW4gPSBtX2RvY3VtZW50Lm9yaWdpbklkZW50aWZpZXJGb3JQYXN0ZWJvYXJkKCk7CisgICAgY29u
dGVudC5jbGllbnRUeXBlcyA9IHsgbGVnYWN5Rm9udFBhc3RlYm9hcmRUeXBlKCkgfTsKKyAgICBj
b250ZW50LmNsaWVudERhdGEgPSB7IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGZvbnREYXRhLmdldCgp
KSB9OworICAgIHBhc3RlYm9hcmQud3JpdGUoY29udGVudCk7Cit9CisKK3ZvaWQgRWRpdG9yOjpw
bGF0Zm9ybVBhc3RlRm9udCgpCit7CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgorICAgIFBhc3RlYm9hcmQgcGFzdGVib2FyZChQYWdlUGFzdGVib2FyZENvbnRleHQ6OmNyZWF0
ZShtX2RvY3VtZW50LnBhZ2VJRCgpKSwgTlNGb250UGJvYXJkKTsKK0FMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAorCisgICAgY2xpZW50KCktPnNldEluc2VydGlvblBhc3RlYm9hcmQo
cGFzdGVib2FyZC5uYW1lKCkpOworCisgICAgUmV0YWluUHRyPE5TRGF0YT4gZm9udERhdGE7Cisg
ICAgaWYgKGF1dG8gYnVmZmVyID0gcGFzdGVib2FyZC5yZWFkQnVmZmVyKDAsIGxlZ2FjeUZvbnRQ
YXN0ZWJvYXJkVHlwZSgpKSkKKyAgICAgICAgZm9udERhdGEgPSBidWZmZXItPmNyZWF0ZU5TRGF0
YSgpOworICAgIGF1dG8gZm9udFNhbXBsZVN0cmluZyA9IGFkb3B0TlMoW1tOU0F0dHJpYnV0ZWRT
dHJpbmcgYWxsb2NdIGluaXRXaXRoUlRGOmZvbnREYXRhLmdldCgpIGRvY3VtZW50QXR0cmlidXRl
czpuaWxdKTsKKyAgICBhdXRvIGZvbnRBdHRyaWJ1dGVzID0gUmV0YWluUHRyKFtmb250U2FtcGxl
U3RyaW5nIGZvbnRBdHRyaWJ1dGVzSW5SYW5nZTpOU01ha2VSYW5nZSgwLCAxKV0pOworCisgICAg
YXV0byBzdHlsZSA9IE11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZSgpOworCisgICAgQ29s
b3IgYmFja2dyb3VuZENvbG9yOworICAgIGlmIChOU0NvbG9yICpuc0JhY2tncm91bmRDb2xvciA9
IGR5bmFtaWNfb2JqY19jYXN0PE5TQ29sb3I+KFtmb250QXR0cmlidXRlcyBvYmplY3RGb3JLZXk6
TlNCYWNrZ3JvdW5kQ29sb3JBdHRyaWJ1dGVOYW1lXSkpCisgICAgICAgIGJhY2tncm91bmRDb2xv
ciA9IGNvbG9yRnJvbUNvY29hQ29sb3IobnNCYWNrZ3JvdW5kQ29sb3IpOworICAgIGlmICghYmFj
a2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgYmFja2dyb3VuZENvbG9yID0gQ29sb3I6
OnRyYW5zcGFyZW50QmxhY2s7CisgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5QmFj
a2dyb3VuZENvbG9yLCBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGJhY2tncm91bmRDb2xvcikp
OworCisgICAgaWYgKE5TRm9udCAqZm9udCA9IGR5bmFtaWNfb2JqY19jYXN0PE5TRm9udD4oW2Zv
bnRBdHRyaWJ1dGVzIG9iamVjdEZvcktleTpOU0ZvbnRBdHRyaWJ1dGVOYW1lXSkpIHsKKyAgICAg
ICAgLy8gRklYTUU6IE5lZWQgbW9yZSBzb3BoaXN0aWNhdGVkIGVzY2FwaW5nIGNvZGUgaWYgd2Ug
d2FudCB0byBoYW5kbGUgZmFtaWx5IG5hbWVzCisgICAgICAgIC8vIHdpdGggY2hhcmFjdGVycyBs
aWtlIHNpbmdsZSBxdW90ZSBvciBiYWNrc2xhc2ggaW4gdGhlaXIgbmFtZXMuCisgICAgICAgIHN0
eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUZvbnRGYW1pbHksIFtOU1N0cmluZyBzdHJpbmdX
aXRoRm9ybWF0OkAiJyVAJyIsIFtmb250IGZhbWlseU5hbWVdXSk7CisgICAgICAgIHN0eWxlLT5z
ZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUZvbnRTaXplLCBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRl
KFtmb250IHBvaW50U2l6ZV0sIENTU1VuaXRUeXBlOjpDU1NfUFgpKTsKKyAgICAgICAgLy8gRklY
TUU6IE1hcCB0byB0aGUgZW50aXJlIHJhbmdlIG9mIENTUyB3ZWlnaHQgdmFsdWVzLgorICAgICAg
ICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGb250V2VpZ2h0LCAoW05TRm9udE1hbmFn
ZXIuc2hhcmVkRm9udE1hbmFnZXIgd2VpZ2h0T2ZGb250OmZvbnRdID49IDcpID8gQ1NTVmFsdWVC
b2xkIDogQ1NTVmFsdWVOb3JtYWwpOworICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJv
cGVydHlGb250U3R5bGUsIChbTlNGb250TWFuYWdlci5zaGFyZWRGb250TWFuYWdlciB0cmFpdHNP
ZkZvbnQ6Zm9udF0gJiBOU0l0YWxpY0ZvbnRNYXNrKSA/IENTU1ZhbHVlSXRhbGljIDogQ1NTVmFs
dWVOb3JtYWwpOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUZvbnRGYW1pbHksICJIZWx2ZXRpY2EiX3MpOworICAgICAgICBzdHlsZS0+c2V0UHJv
cGVydHkoQ1NTUHJvcGVydHlGb250U2l6ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSgxMiwg
Q1NTVW5pdFR5cGU6OkNTU19QWCkpOworICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJv
cGVydHlGb250V2VpZ2h0LCBDU1NWYWx1ZU5vcm1hbCk7CisgICAgICAgIHN0eWxlLT5zZXRQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgQ1NTVmFsdWVOb3JtYWwpOworICAgIH0KKworICAg
IENvbG9yIGZvcmVncm91bmRDb2xvcjsKKyAgICBpZiAoTlNDb2xvciAqbnNGb3JlZ3JvdW5kQ29s
b3IgPSBkeW5hbWljX29iamNfY2FzdDxOU0NvbG9yPihbZm9udEF0dHJpYnV0ZXMgb2JqZWN0Rm9y
S2V5Ok5TRm9yZWdyb3VuZENvbG9yQXR0cmlidXRlTmFtZV0pKSB7CisgICAgICAgIGZvcmVncm91
bmRDb2xvciA9IGNvbG9yRnJvbUNvY29hQ29sb3IobnNGb3JlZ3JvdW5kQ29sb3IpOworICAgICAg
ICBpZiAoIWZvcmVncm91bmRDb2xvci5pc1ZhbGlkKCkpCisgICAgICAgICAgICBmb3JlZ3JvdW5k
Q29sb3IgPSBDb2xvcjo6dHJhbnNwYXJlbnRCbGFjazsKKyAgICB9IGVsc2UKKyAgICAgICAgZm9y
ZWdyb3VuZENvbG9yID0gQ29sb3I6OmJsYWNrOworICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUNvbG9yLCBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGZvcmVncm91bmRDb2xvcikp
OworCisgICAgRm9udFNoYWRvdyBmb250U2hhZG93OworICAgIGlmIChOU1NoYWRvdyAqbnNGb250
U2hhZG93ID0gZHluYW1pY19vYmpjX2Nhc3Q8TlNTaGFkb3c+KFtmb250QXR0cmlidXRlcyBvYmpl
Y3RGb3JLZXk6TlNTaGFkb3dBdHRyaWJ1dGVOYW1lXSkpCisgICAgICAgIGZvbnRTaGFkb3cgPSBm
b250U2hhZG93RnJvbU5TU2hhZG93KG5zRm9udFNoYWRvdyk7CisgICAgc3R5bGUtPnNldFByb3Bl
cnR5KENTU1Byb3BlcnR5VGV4dFNoYWRvdywgc2VyaWFsaXphdGlvbkZvckNTUyhmb250U2hhZG93
KSk7CisKKyAgICBhdXRvIHN1cGVyc2NyaXB0U3R5bGUgPSBbW2ZvbnRBdHRyaWJ1dGVzIG9iamVj
dEZvcktleTpOU1N1cGVyc2NyaXB0QXR0cmlidXRlTmFtZV0gaW50VmFsdWVdOworICAgIHN0eWxl
LT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24sIChzdXBlcnNjcmlwdFN0eWxl
ID4gMCkgPyBDU1NWYWx1ZVN1cGVyIDogKChzdXBlcnNjcmlwdFN0eWxlIDwgMCkgPyBDU1NWYWx1
ZVN1YiA6IENTU1ZhbHVlQmFzZWxpbmUpKTsKKworICAgIC8vIEZJWE1FOiBVbmRlcmxpbmUgd2lu
cyBoZXJlIGlmIHdlIGhhdmUgYm90aCAoc2VlIGJ1ZyAzNzkwNDQzKS4KKyAgICBhdXRvIHVuZGVy
bGluZVN0eWxlID0gW1tmb250QXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNVbmRlcmxpbmVTdHls
ZUF0dHJpYnV0ZU5hbWVdIGludFZhbHVlXTsKKyAgICBhdXRvIHN0cmlrZXRocm91Z2hTdHlsZSA9
IFtbZm9udEF0dHJpYnV0ZXMgb2JqZWN0Rm9yS2V5Ok5TU3RyaWtldGhyb3VnaFN0eWxlQXR0cmli
dXRlTmFtZV0gaW50VmFsdWVdOworICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVdl
YmtpdFRleHREZWNvcmF0aW9uc0luRWZmZWN0LCAodW5kZXJsaW5lU3R5bGUgIT0gTlNVbmRlcmxp
bmVTdHlsZU5vbmUpID8gQ1NTVmFsdWVVbmRlcmxpbmUgOiAoKHN0cmlrZXRocm91Z2hTdHlsZSAh
PSBOU1VuZGVybGluZVN0eWxlTm9uZSkgPyBDU1NWYWx1ZUxpbmVUaHJvdWdoIDogQ1NTVmFsdWVO
b25lKSk7CisKKyAgICBhcHBseVN0eWxlVG9TZWxlY3Rpb24oc3R5bGUucHRyKCksIEVkaXRBY3Rp
b246OlBhc3RlRm9udCk7CisKKyAgICBjbGllbnQoKS0+c2V0SW5zZXJ0aW9uUGFzdGVib2FyZChT
dHJpbmcoKSk7Cit9CisKIHZvaWQgRWRpdG9yOjpyZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9hcmQo
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKIHsKICAgICBQYXN0ZWJvYXJkIHBhc3RlYm9h
cmQoUGFnZVBhc3RlYm9hcmRDb250ZXh0OjpjcmVhdGUobV9kb2N1bWVudC5wYWdlSUQoKSksIHBh
c3RlYm9hcmROYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd2luL0Vk
aXRvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwCmlu
ZGV4IDNiNDA1MmQ0OWU1NTQwMGFhMzBiYmU3ZWE3MTgzYzdhNDZiOGM3YzQuLjFiNTE5ZTI1ZjA2
M2ZjYzI4MWExNjgwNDgxZjAzN2M5YzZhNDUwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvd2luL0VkaXRvcldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy93
aW4vRWRpdG9yV2luLmNwcApAQCAtNTIsNiArNTIsMTQgQEAgdm9pZCBFZGl0b3I6OnBhc3RlV2l0
aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwgT3B0aW9uU2V0PFBhc3RlT3B0aW9u
PgogICAgICAgICBwYXN0ZUFzRnJhZ21lbnQoZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgY2Fu
U21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQoKnBhc3RlYm9hcmQpLCBjaG9zZVBsYWluVGV4dCwg
b3B0aW9ucy5jb250YWlucyhQYXN0ZU9wdGlvbjo6SWdub3JlTWFpbEJsb2NrcXVvdGUpID8gTWFp
bEJsb2NrcXVvdGVIYW5kbGluZzo6SWdub3JlQmxvY2txdW90ZSA6IE1haWxCbG9ja3F1b3RlSGFu
ZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKIH0KIAordm9pZCBFZGl0b3I6OnBsYXRmb3JtQ29w
eUZvbnQoKQoreworfQorCit2b2lkIEVkaXRvcjo6cGxhdGZvcm1QYXN0ZUZvbnQoKQoreworfQor
CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgUGxhdGZvcm1EcmFnRGF0YT4KIHN0YXRpYyBSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tUGxhdGZvcm1EYXRhKFBsYXRmb3JtRHJh
Z0RhdGEmIHBsYXRmb3JtRHJhZ0RhdGEsIEZyYW1lJiBmcmFtZSkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggMDk3MzQ0MzAzOTA2MWI4Zjk4YjBjMDcx
NzhlNGFmNmE1MDQ0MDAwYy4uMTcyMmY3MjM4ZGEyMmRhYTQzNTIwMDQ1MWEzMjU3NzI2YTA0MTZm
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTIwNSw2
ICsyMDUsNyBAQCBXRUJDT1JFX0NPTU1BTkQoYWxpZ25KdXN0aWZpZWQpCiBXRUJDT1JFX0NPTU1B
TkQoYWxpZ25MZWZ0KQogV0VCQ09SRV9DT01NQU5EKGFsaWduUmlnaHQpCiBXRUJDT1JFX0NPTU1B
TkQoY29weSkKK1dFQkNPUkVfQ09NTUFORChjb3B5Rm9udCkKIFdFQkNPUkVfQ09NTUFORChjdXQp
CiBXRUJDT1JFX0NPTU1BTkQoZGVsZXRlKQogV0VCQ09SRV9DT01NQU5EKGRlbGV0ZUJhY2t3YXJk
KQpAQCAtMjc4LDYgKzI3OSw3IEBAIFdFQkNPUkVfQ09NTUFORChwYWdlVXApCiBXRUJDT1JFX0NP
TU1BTkQocGFnZVVwQW5kTW9kaWZ5U2VsZWN0aW9uKQogV0VCQ09SRV9DT01NQU5EKHBhc3RlKQog
V0VCQ09SRV9DT01NQU5EKHBhc3RlQXNQbGFpblRleHQpCitXRUJDT1JFX0NPTU1BTkQocGFzdGVG
b250KQogV0VCQ09SRV9DT01NQU5EKHNjcm9sbFBhZ2VEb3duKQogV0VCQ09SRV9DT01NQU5EKHNj
cm9sbFBhZ2VVcCkKIFdFQkNPUkVfQ09NTUFORChzY3JvbGxMaW5lRG93bikKQEAgLTMzOSwxMSAr
MzQxLDkgQEAgaW5kaXZpZHVhbCBtZXRob2RzIGhlcmUgd2l0aCBNYWMtc3BlY2lmaWMgY29kZS4K
IEVkaXRpbmctcmVsYXRlZCBtZXRob2RzIHN0aWxsIHVuaW1wbGVtZW50ZWQgdGhhdCBhcmUgaW1w
bGVtZW50ZWQgaW4gV2ViS2l0MToKIAogLSAodm9pZCljb21wbGV0ZTooaWQpc2VuZGVyOwotLSAo
dm9pZCljb3B5Rm9udDooaWQpc2VuZGVyOwogLSAodm9pZCltYWtlQmFzZVdyaXRpbmdEaXJlY3Rp
b25MZWZ0VG9SaWdodDooaWQpc2VuZGVyOwogLSAodm9pZCltYWtlQmFzZVdyaXRpbmdEaXJlY3Rp
b25OYXR1cmFsOihpZClzZW5kZXI7CiAtICh2b2lkKW1ha2VCYXNlV3JpdGluZ0RpcmVjdGlvblJp
Z2h0VG9MZWZ0OihpZClzZW5kZXI7Ci0tICh2b2lkKXBhc3RlRm9udDooaWQpc2VuZGVyOwogLSAo
dm9pZClzY3JvbGxMaW5lRG93bjooaWQpc2VuZGVyOwogLSAodm9pZClzY3JvbGxMaW5lVXA6KGlk
KXNlbmRlcjsKIC0gKHZvaWQpc2hvd0d1ZXNzUGFuZWw6KGlkKXNlbmRlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KaW5kZXggMmQzMDY5Y2Nl
MjUyNDQ3NTk5ZDFkNmJhZTM3ZDA2YTllMmVjNjcwYi4uZDZmYWY0ODgyMWUwYTBmYWEwNzNjMTll
ODUxOGE3YjUyMjQxYTFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L21hYy9XS1dlYlZpZXdNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21h
Yy9XS1dlYlZpZXdNYWMubW0KQEAgLTE2Nyw2ICsxNjcsNyBAQCBXRUJDT1JFX0NPTU1BTkQoYWxp
Z25KdXN0aWZpZWQpCiBXRUJDT1JFX0NPTU1BTkQoYWxpZ25MZWZ0KQogV0VCQ09SRV9DT01NQU5E
KGFsaWduUmlnaHQpCiBXRUJDT1JFX0NPTU1BTkQoY29weSkKK1dFQkNPUkVfQ09NTUFORChjb3B5
Rm9udCkKIFdFQkNPUkVfQ09NTUFORChjdXQpCiBXRUJDT1JFX0NPTU1BTkQoZGVsZXRlKQogV0VC
Q09SRV9DT01NQU5EKGRlbGV0ZUJhY2t3YXJkKQpAQCAtMjQwLDYgKzI0MSw3IEBAIFdFQkNPUkVf
Q09NTUFORChwYWdlVXApCiBXRUJDT1JFX0NPTU1BTkQocGFnZVVwQW5kTW9kaWZ5U2VsZWN0aW9u
KQogV0VCQ09SRV9DT01NQU5EKHBhc3RlKQogV0VCQ09SRV9DT01NQU5EKHBhc3RlQXNQbGFpblRl
eHQpCitXRUJDT1JFX0NPTU1BTkQocGFzdGVGb250KQogV0VCQ09SRV9DT01NQU5EKHNjcm9sbExp
bmVEb3duKQogV0VCQ09SRV9DT01NQU5EKHNjcm9sbExpbmVVcCkKIFdFQkNPUkVfQ09NTUFORChz
Y3JvbGxUb0JlZ2lubmluZ09mRG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDg4YzVkZDg5YzE0Zjc5YjVmNTA4Y2UyYTU0NDViN2Y3
NTMwYjRiNWQuLjExNzU3MzFhMmQwOGM0MjI1NTlhYTZmYzRlNGZhZGZiMDZlZjBjOWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC00NTkwLDYg
KzQ1OTAsMTEgQEAgc3RhdGljIE5TUGFzdGVib2FyZE5hbWUgcGFzdGVib2FyZE5hbWVGb3JBY2Nl
c3NDYXRlZ29yeShXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0MKICAgICBzd2l0Y2ggKHBhc3RlQWNj
ZXNzQ2F0ZWdvcnkpIHsKICAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6
OkdlbmVyYWw6CiAgICAgICAgIHJldHVybiBOU1Bhc3RlYm9hcmROYW1lR2VuZXJhbDsKKworICAg
IGNhc2UgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9udHM6CitBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorICAgICAgICByZXR1cm4gTlNGb250UGJvYXJkOwor
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQogfQogCkBAIC00NTk4LDYg
KzQ2MDMsMTEgQEAgc3RhdGljIE5TUGFzdGVib2FyZCAqcGFzdGVib2FyZEZvckFjY2Vzc0NhdGVn
b3J5KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkKICAgICBzd2l0Y2ggKHBhc3RlQWNj
ZXNzQ2F0ZWdvcnkpIHsKICAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6
OkdlbmVyYWw6CiAgICAgICAgIHJldHVybiBOU1Bhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQ7
CisKKyAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkZvbnRzOgorQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICAgICAgcmV0dXJuIFtOU1Bhc3Rl
Ym9hcmQgcGFzdGVib2FyZFdpdGhOYW1lOk5TRm9udFBib2FyZF07CitBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IDRlOWIwZWUyZDQ1ZmUwNGM1NmJlZWIzMGY4NTYwNDg3YzZjNzRl
MWYuLjRlYjlmMDI4Mzc4Y2Y0NGZkNmM5YWY2YzU3YWE5YTBmMTUyOTYwZDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjUxNyw2ICsyNTE3LDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeT4gcGFzdGVBY2Nlc3NDYXRl
Z29yeUZvckNvbW1hbmQoY29uc3QKICAgICAgICAgeyAiUGFzdGVBbmRNYXRjaFN0eWxlIiwgRE9N
UGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbCB9LAogICAgICAgICB7ICJQYXN0ZUFzUXVvdGF0
aW9uIiwgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbCB9LAogICAgICAgICB7ICJQYXN0
ZUFzUGxhaW5UZXh0IiwgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbCB9LAorICAgICAg
ICB7ICJQYXN0ZUZvbnQiLCBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250cyB9LAogICAgIH07
CiAKICAgICBhdXRvIGl0ID0gcGFzdGVDb21tYW5kTmFtZXMtPmZpbmQoY29tbWFuZE5hbWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KaW5kZXggYjkwYWNmZWM0ODEyOGY0NTNjOTEwMjM2ZDJiYmY4YWNiYTkxOTE5
Ny4uNDA3MTBjYjg0MmJjOTEwOGFmMzdiOWI1MmQ0N2FjYTQ1MDEyZTZiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tCkBAIC00MTQ4LDYgKzQxNDgsMTAgQEAgc3RhdGljIFVJUGFzdGVib2FyZE5hbWUgcGFzdGVi
b2FyZE5hbWVGb3JBY2Nlc3NDYXRlZ29yeShXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0MKICAgICBz
d2l0Y2ggKHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIHsKICAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3Rl
QWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWw6CiAgICAgICAgIHJldHVybiBVSVBhc3RlYm9hcmROYW1l
R2VuZXJhbDsKKworICAgIGNhc2UgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9u
dHM6CisgICAgICAgIC8vIEZJWE1FOiBEb2VzIGlPUyBoYXZlIGEgZGlmZmVyZW50IHBhc3RlYm9h
cmQgZm9yIGZvbnRzPworICAgICAgICByZXR1cm4gVUlQYXN0ZWJvYXJkTmFtZUdlbmVyYWw7CiAg
ICAgfQogfQogCkBAIC00MTU2LDYgKzQxNjAsMTAgQEAgc3RhdGljIFVJUGFzdGVib2FyZCAqcGFz
dGVib2FyZEZvckFjY2Vzc0NhdGVnb3J5KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkK
ICAgICBzd2l0Y2ggKHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIHsKICAgICBjYXNlIFdlYkNvcmU6OkRP
TVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWw6CiAgICAgICAgIHJldHVybiBVSVBhc3RlYm9h
cmQuZ2VuZXJhbFBhc3RlYm9hcmQ7CisKKyAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
Q2F0ZWdvcnk6OkZvbnRzOgorICAgICAgICAvLyBGSVhNRTogRG9lcyBpT1MgaGF2ZSBhIGRpZmZl
cmVudCBwYXN0ZWJvYXJkIGZvciBmb250cz8KKyAgICAgICAgcmV0dXJuIFVJUGFzdGVib2FyZC5n
ZW5lcmFsUGFzdGVib2FyZDsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDBkZGZjM2U2OTFmMjlkNzlhMmY5YjNhYTZi
MWMwNTlhZjM3YzAwMGEuLmQ3ODAxNjRhNDY2YWI0Nzk0NTY3NmRlNGY2ZmVlNmNiNDBlYjYyN2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpA
QCAtMTU1MCw2ICsxNTUwLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybVBhc3Rl
Q29tbWFuZChET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IHBhc3RlQWNjZXNzQ2F0CiAgICAgY2FzZSBE
T01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpHZW5lcmFsOgogICAgICAgICBncmFudEFjY2Vzc1RvQ3Vy
cmVudFBhc3RlYm9hcmREYXRhKFVJUGFzdGVib2FyZE5hbWVHZW5lcmFsKTsKICAgICAgICAgcmV0
dXJuOworCisgICAgY2FzZSBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250czoKKyAgICAgICAg
Ly8gRklYTUU6IERvZXMgaU9TIGhhdmUgYSBkaWZmZXJlbnQgcGFzdGVib2FyZCBmb3IgZm9udHM/
CisgICAgICAgIGdyYW50QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEoVUlQYXN0ZWJvYXJk
TmFtZUdlbmVyYWwpOworICAgICAgICByZXR1cm47CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCA1NTFhMmFmMjNmZWUw
YmZkMjQ4Nzg2MjBhOWNkNzlmMDczNjFjNGZjLi5mY2ViYTNlNjBiMTZlMzllZDdmMzY2ODQyMTli
NjkzM2NkNWM3NzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2Vi
UGFnZVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdl
UHJveHlNYWMubW0KQEAgLTY1Nyw2ICs2NTcsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OndpbGxQ
ZXJmb3JtUGFzdGVDb21tYW5kKERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgcGFzdGVBY2Nlc3NDYXQK
ICAgICBjYXNlIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWw6CiAgICAgICAgIGdyYW50
QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEoTlNQYXN0ZWJvYXJkTmFtZUdlbmVyYWwpOwog
ICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkZvbnRz
OgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICAgICAgZ3JhbnRBY2Nl
c3NUb0N1cnJlbnRQYXN0ZWJvYXJkRGF0YShOU0ZvbnRQYm9hcmQpOworQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECisgICAgICAgIHJldHVybjsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0
YjI3ZGFlNzk2YjNjYzE2MmQ3ZjBkMzc5NTA2MjE3YTRkMWUxMzI4Li43NzI5ZDExMjM5ZWM2ZDEx
NjRiNjAzZmQ3NGM0NWMwNDYwYWU5NDg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMTIt
MDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdLV2ViVmll
dyBkb2VzbuKAmXQgcmVzcG9uZCB0byAtY29weUZvbnQ6IGFuZCAtcGFzdGVGb250OgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMzc5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NTg3ODY1OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcvZWRpdGluZy5qczoKKyAgICAgICAgKGV4ZWND
b3B5Rm9udENvbW1hbmQpOiBBZGRlZC4KKyAgICAgICAgKGNvcHlGb250Q29tbWFuZCk6IEFkZGVk
LgorICAgICAgICAoZXhlY1Bhc3RlRm9udENvbW1hbmQpOiBBZGRlZC4KKyAgICAgICAgKHBhc3Rl
Rm9udENvbW1hbmQpOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL21hYy9j
b3B5Rm9udC1wYXN0ZUZvbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29t
bWFuZC9tYWMvY29weUZvbnQtcGFzdGVGb250LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorCisgICAg
ICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAyMS0xMi0wNyAgWW9zaGlha2kgSml0c3VrYXdhICA8eW9zaGlha2kuaml0
c3VrYXdhQHNvbnkuY29tPgogCiAgICAgICAgIFN1cHBvcnQgQW5pbWF0ZWQgSlBFRy1YTCBpbWFn
ZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGVmZWRlYmNiYTRhYTY1ZWM0ZGM4YTI3NjAzYmQ3MmQ2
M2FjMWUzNWQuLjY5ZjFiNjBhMGM3ODU2MWIzZDkxYjg5NDQ0NDA0NjQwNDRiZTBlMDcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMjAsNiArMjAsNyBAQCBlZGl0aW5nL21hYyBbIFNraXAgXQogZWRp
dGluZy9jYXJldC9pb3MgWyBTa2lwIF0KIGVkaXRpbmcvZWRpdGFibGUtcmVnaW9uIFsgU2tpcCBd
CiBlZGl0aW5nL2V4ZWNDb21tYW5kL2lvcyBbIFNraXAgXQorZWRpdGluZy9leGVjQ29tbWFuZC9t
YWMgWyBTa2lwIF0KIGVkaXRpbmcvaW5wdXQvY29jb2EgWyBTa2lwIF0KIGVkaXRpbmcvaW5wdXQv
aW9zIFsgU2tpcCBdCiBlZGl0aW5nL2ZpbmQgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvZWRpdGluZy5qcyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGluZy5qcwpp
bmRleCA5OTgxNjRlYjBiNjExZGZiZWM4YWJlZDdhNjAxMzI4YTk1M2ZmMjcxLi44MzZjYmM3N2M0
NjU1ZmY4MzhhMTE1YzdhMzkxNGFiMmFiZmE1OWE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2VkaXRpbmcuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0aW5nLmpzCkBA
IC04MTEsNiArODExLDM0IEBAIGZ1bmN0aW9uIHBhc3RlQ29tbWFuZCgpIHsKIAogLy8tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK2Z1bmN0aW9uIGV4ZWND
b3B5Rm9udENvbW1hbmQoKSB7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkNvcHlGb250Iik7
CisgICAgZGVidWdGb3JEdW1wQXNUZXh0KCJleGVjQ29weUZvbnRDb21tYW5kIik7Cit9CitmdW5j
dGlvbiBjb3B5Rm9udENvbW1hbmQoKSB7CisgICAgaWYgKGNvbW1hbmREZWxheSA+IDApIHsKKyAg
ICAgICAgcXVldWVDb21tYW5kKGV4ZWNDb3B5Rm9udENvbW1hbmQsIGNvbW1hbmRDb3VudCAqIGNv
bW1hbmREZWxheSk7CisgICAgICAgIGNvbW1hbmRDb3VudCsrOworICAgIH0gZWxzZQorICAgICAg
ICBleGVjQ29weUZvbnRDb21tYW5kKCk7Cit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitmdW5jdGlvbiBleGVjUGFzdGVGb250Q29tbWFuZCgp
IHsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGVGb250Iik7CisgICAgZGVidWdGb3JE
dW1wQXNUZXh0KCJleGVjUGFzdGVGb250Q29tbWFuZCIpOworfQorZnVuY3Rpb24gcGFzdGVGb250
Q29tbWFuZCgpIHsKKyAgICBpZiAoY29tbWFuZERlbGF5ID4gMCkgeworICAgICAgICBxdWV1ZUNv
bW1hbmQoZXhlY1Bhc3RlRm9udENvbW1hbmQsIGNvbW1hbmRDb3VudCAqIGNvbW1hbmREZWxheSk7
CisgICAgICAgIGNvbW1hbmRDb3VudCsrOworICAgIH0gZWxzZQorICAgICAgICBleGVjUGFzdGVG
b250Q29tbWFuZCgpOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKwogZnVuY3Rpb24gZXhlY0NyZWF0ZUxpbmtDb21tYW5kKHVybCkgewogICAg
IGRvY3VtZW50LmV4ZWNDb21tYW5kKCJDcmVhdGVMaW5rIiwgZmFsc2UsIHVybCk7CiAgICAgZGVi
dWdGb3JEdW1wQXNUZXh0KCJleGVjQ3JlYXRlTGlua0NvbW1hbmQiKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvbWFjL2NvcHlGb250LXBhc3RlRm9udC1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9tYWMvY29weUZvbnQt
cGFzdGVGb250LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFiMTg1MTM3MTc2MjA5ZGNjZTA1
NmM3NmY1NjM5NjdlOWJlYTQ4NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvZXhlY0NvbW1hbmQvbWFjL2NvcHlGb250LXBhc3RlRm9udC1leHBlY3RlZC5odG1sCkBAIC0w
LDAgKzEsMjAgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorI2NvcHkgeworICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOworICAgIGZvbnQtZmFtaWx5OiBBcmlhbDsKKyAgICBmb250
LXNpemU6IDIwcHg7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgZm9udC1zdHlsZTogaXRh
bGljOworICAgIGNvbG9yOiB5ZWxsb3c7CisgICAgdGV4dC1zaGFkb3c6IGJsYWNrIDFweCAxcHg7
CisgICAgdmVydGljYWwtYWxpZ246IHN1YjsKK30KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPGRpdiBpZD0iY29weSI+Y29weSB0aGlzPC9kaXY+CisgICAgPGRpdiBpZD0icGFz
dGUiIGNvbnRlbnRlZGl0YWJsZT0iIj48Zm9udCBjb2xvcj0iI2ZmZmYwMCIgZmFjZT0iQXJpYWwi
PjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMTI4LCAwKTsgZm9udC1zaXpl
OiAyMHB4OyB0ZXh0LXNoYWRvdzogcmdiKDAsIDAsIDApIDFweCAxcHg7Ij48Yj48aT48c3ViPnBh
c3RlIGhlcmU8L3N1Yj48L2k+PC9iPjwvc3Bhbj48L2ZvbnQ+PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL21hYy9jb3B5
Rm9udC1wYXN0ZUZvbnQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvbWFj
L2NvcHlGb250LXBhc3RlRm9udC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhMGRiZTEyOGQ0ZTYwNjM5N2I1
MmM1N2Y4YzA3NmZjY2UzOWI1NjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL2V4ZWNDb21tYW5kL21hYy9jb3B5Rm9udC1wYXN0ZUZvbnQuaHRtbApAQCAtMCwwICsxLDQ2
IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPS4uLy4uL2VkaXRpbmcuanM+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdD4KK2Z1bmN0aW9uIGVkaXRpbmdUZXN0KCkgeworICAgIGxldCBz
ZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisKKyAgICBsZXQgY29weVJhbmdlID0g
ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKKyAgICBjb3B5UmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRz
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb3B5IikpOworICAgIHNlbGVjdGlvbi5yZW1vdmVB
bGxSYW5nZXMoKTsKKyAgICBzZWxlY3Rpb24uYWRkUmFuZ2UoY29weVJhbmdlKTsKKyAgICBjb3B5
Rm9udENvbW1hbmQoKTsKKworICAgIGxldCBwYXN0ZVJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFu
Z2UoKTsKKyAgICBwYXN0ZVJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicGFzdGUiKSk7CisgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpOworICAg
IHNlbGVjdGlvbi5hZGRSYW5nZShwYXN0ZVJhbmdlKTsKKyAgICBwYXN0ZUZvbnRDb21tYW5kKCk7
CisKKyAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7Cit9CisgICAgPC9zY3JpcHQ+Cisg
ICAgPHN0eWxlPgorI2NvcHkgeworICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgIGZv
bnQtZmFtaWx5OiBBcmlhbDsKKyAgICBmb250LXNpemU6IDIwcHg7CisgICAgZm9udC13ZWlnaHQ6
IGJvbGQ7CisgICAgZm9udC1zdHlsZTogaXRhbGljOworICAgIGNvbG9yOiB5ZWxsb3c7CisgICAg
dGV4dC1zaGFkb3c6IGJsYWNrIDFweCAxcHg7CisgICAgdmVydGljYWwtYWxpZ246IHN1YjsKK30K
KyNwYXN0ZSB7CisgICAgb3V0bGluZTogbm9uZTsKK30KKyAgICA8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+CisgICAgPGRpdiBpZD0iY29weSI+Y29weSB0aGlzPC9kaXY+CisgICAgPGRpdiBpZD0i
cGFzdGUiIGNvbnRlbnRlZGl0YWJsZT5wYXN0ZSBoZXJlPC9kaXY+CisgICAgPHNjcmlwdD4KK3J1
bkVkaXRpbmdUZXN0KCk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDBlM2U3YmI3ZjU3MmNmMWJi
NDczZjAzNTM1N2ZlMTc5MTViZDBjYjQuLmM2NzEyYTAwYjA4MmNjZjhmMDI4OTMwN2JhMjM5ZTg2
MzEyMDQ0NGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBA
IC05LDYgKzksNyBAQAogYWNjZXNzaWJpbGl0eS9tYWMgWyBQYXNzIF0KIGNvbXBvc2l0aW5nL3Nj
cm9sbGluZy9hc3luYy1vdmVyZmxvdy1zY3JvbGxpbmcvbWFjIFsgUGFzcyBdCiBkaXNwbGF5bGlz
dHMgWyBQYXNzIF0KK2VkaXRpbmcvZXhlY0NvbW1hbmQvbWFjIFsgUGFzcyBdCiBlZGl0aW5nL2lu
cHV0L2NvY29hIFsgUGFzcyBdCiBlZGl0aW5nL21hYyBbIFBhc3MgXQogZWRpdGluZy9wYXN0ZWJv
YXJkL21hYyBbIFBhc3MgXQo=
</data>
<flag name="commit-queue"
          id="471606"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446498</attachid>
            <date>2021-12-08 20:50:41 -0800</date>
            <delta_ts>2021-12-10 13:21:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>191379.diff</filename>
            <type>text/plain</type>
            <size>35787</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzZmMwMWNlZjFkNjg4MGIzZDg0NWZjNDE4NzA5MzRjMTBhNTEzOTVlLi42
NTUzYTY5MjRkMDkzMWQ3ODM5N2VhNzE1M2YwY2U1YjlmYThiNjk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTAgQEAKKzIwMjEtMTItMDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdLV2ViVmlldyBkb2VzbuKAmXQgcmVzcG9uZCB0byAtY29weUZvbnQ6IGFu
ZCAtcGFzdGVGb250OgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkxMzc5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTg3ODY1OT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL2V4
ZWNDb21tYW5kL21hYy9jb3B5Rm9udC1wYXN0ZUZvbnQuaHRtbAorCisgICAgICAgICogZG9tL0RP
TVBhc3RlQWNjZXNzLmg6CisgICAgICAgIEFkZCBgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9u
dHNgICh3aGljaCBjb3JyZXNwb25kcyB0byBgTlNGb250UGJvYXJkYCBvbiBtYWNPUykuCisKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmV2ZW50TmFtZUZvckNsaXBib2FyZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZURhdGFUcmFuc2ZlckZvckNsaXBib2FyZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6Y29weUZvbnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6cGFzdGVGb250KTogQWRkZWQuCisgICAgICAgIEFkZCBwbGF0Zm9ybS1hZ25vc3RpYyBo
YW5kbGluZyBmb3IgYCJDb3B5Rm9udCJgIGFuZCBgIlBhc3RlRm9udCJgIGVkaXRvciBjb21tYW5k
cy4KKworICAgICAgICAqIGVkaXRpbmcvbWFjL0VkaXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6cGxhdGZvcm1Db3B5Rm9udCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yOjpwbGF0Zm9ybVBhc3RlRm9udCk6IEFkZGVkLgorICAgICAgICBNaW1pYyB0aGUgbG9n
aWMgaW4gYC1bV2ViSFRNTFZpZXcgY29weUZvbnQ6XWAvYC1bV2ViSFRNTFZpZXcgcGFzdGVGb250
Ol1gIHRvIGJlIGNvbXBhdGlibGUKKyAgICAgICAgd2l0aCBXSzEgKGkuZS4gdG8gbWFrZSBpdCBl
YXNpZXIgZm9yIGNsaWVudHMgdG8gc3dpdGNoIHRvIFdLMikuCisKKyAgICAgICAgKiBlZGl0aW5n
L2d0ay9FZGl0b3JHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwbGF0Zm9ybUNv
cHlGb250KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBsYXRmb3JtUGFzdGVG
b250KTogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yOjpwbGF0Zm9ybUNvcHlGb250KTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OnBsYXRmb3JtUGFzdGVGb250KTogQWRkZWQuCisgICAgICAgICogZWRp
dGluZy9saWJ3cGUvRWRpdG9yTGliV1BFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6
cGxhdGZvcm1Db3B5Rm9udCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwbGF0
Zm9ybVBhc3RlRm9udCk6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvd2luL0VkaXRvcldpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBsYXRmb3JtQ29weUZvbnQpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGxhdGZvcm1QYXN0ZUZvbnQpOiBBZGRlZC4KKyAg
ICAgICAgQWRkIHN0dWJzIGZvciBvdGhlciBwbGF0Zm9ybXMuCisKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUNvcHlGb250KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlUGFzdGVGb250KTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVDb21tYW5kTWFwKToKKyAgICAgICAgSG9vayBgIkNvcHlGb250
ImAgYW5kIGAiUGFzdGVGb250ImAgZWRpdG9yIGNvbW1hbmRzIHVwIHRvIGBkb2N1bWVudC5leGVj
Q29tbWFuZGAuCisKIDIwMjEtMTItMDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhIGBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5YCB0byBjb250cm9sIHdo
aWNoIHBhc3RlYm9hcmQgdGhlIFdlYlByb2Nlc3MgaXMgZ3JhbnRlZCBhY2Nlc3MgdG8gd2hlbiBw
YXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGJmMTE3MWVhOWRlOWM0MTU4YjZhNWE1ZWE3Zjg4YmU1ZjRjNGMx
MDkuLjQ3YjBkMGU1NzM3NWJiMmMxNmUyNTdhMzk4MzQ5OGJlMzU2MzY1MWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMjEtMTItMDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUu
Y29tPgorCisgICAgICAgIFdLV2ViVmlldyBkb2VzbuKAmXQgcmVzcG9uZCB0byAtY29weUZvbnQ6
IGFuZCAtcGFzdGVGb250OgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkxMzc5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTg3ODY1OT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdN
YWMubW06CisgICAgICAgIEFkZCBgLWNvcHlGb250OmAgYW5kIGAtcGFzdGVGb250OmAgbWV0aG9k
cyB2aWEgYFdFQkNPUkVfQ09NTUFORGAuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6cGFzdGVBY2Nlc3NDYXRlZ29yeUZvckNvbW1hbmQp
OgorICAgICAgICBUaGUgYFBhc3RlRm9udGAgY29tbWFuZCBzaG91bGQgYmUgY2F0ZWdvcml6ZWQg
YXMgYERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkZvbnRzYC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6cGFzdGVib2FyZE5hbWVG
b3JBY2Nlc3NDYXRlZ29yeSk6CisgICAgICAgIChXZWJLaXQ6OnBhc3RlYm9hcmRGb3JBY2Nlc3ND
YXRlZ29yeSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1QYXN0ZUNvbW1hbmQpOgor
ICAgICAgICBDb3JyZWxhdGUgYERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkZvbnRzYCB3aXRoIGBO
U0ZvbnRQYm9hcmRgLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW06CisgICAgICAgIChwYXN0ZWJvYXJkTmFtZUZvckFjY2Vzc0NhdGVnb3J5KToK
KyAgICAgICAgKHBhc3RlYm9hcmRGb3JBY2Nlc3NDYXRlZ29yeSk6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6d2lsbFBlcmZvcm1QYXN0ZUNvbW1hbmQpOgorICAgICAgICBDb3JyZWxhdGUgYERPTVBhc3Rl
QWNjZXNzQ2F0ZWdvcnk6OkZvbnRzYCB3aXRoIGBVSVBhc3RlYm9hcmROYW1lR2VuZXJhbGAuCisK
IDIwMjEtMTItMDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBhIGBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5YCB0byBjb250cm9sIHdoaWNoIHBhc3RlYm9h
cmQgdGhlIFdlYlByb2Nlc3MgaXMgZ3JhbnRlZCBhY2Nlc3MgdG8gd2hlbiBwYXN0aW5nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUGFzdGVBY2Nlc3MuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01QYXN0ZUFjY2Vzcy5oCmluZGV4IGRiNWE2NDRjYTYyNDdmZDliYTFlMDFiMmU4
YjczYTcyMDMxMjAyNWQuLmM3ZTNmOGI5ZGM4MzI1NzcwNWY3NWVmZDJkZTI5MzM1ZTc0Njg2ZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01QYXN0ZUFjY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01QYXN0ZUFjY2Vzcy5oCkBAIC0zMSw2ICszMSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IDogdWlu
dDhfdCB7CiAgICAgR2VuZXJhbCwKKyAgICBGb250cywKIH07CiAKIGVudW0gY2xhc3MgRE9NUGFz
dGVBY2Nlc3NQb2xpY3kgOiB1aW50OF90IHsKQEAgLTUyLDcgKzUzLDggQEAgbmFtZXNwYWNlIFdU
RiB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
Q2F0ZWdvcnk+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBXZWJD
b3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5LAotICAgICAgICBXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc0NhdGVnb3J5OjpHZW5lcmFsCisgICAgICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0
ZWdvcnk6OkdlbmVyYWwsCisgICAgICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6
OkZvbnRzCiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCAxNzI0
Y2YwZTUwYmFhNWI5YjI0MTMwNDgxZWU3MjRjYjc4MjA3YWE0Li4yODMxY2QzZmE5YzZhNGY5ZmY5
YTlhMGUyNWMzYjQyZTUyZDFiNjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0z
NzIsOCArMzcyLDEwIEBAIGJvb2wgRWRpdG9yOjpjYW5FZGl0UmljaGx5KCkgY29uc3QKIAogZW51
bSBjbGFzcyBDbGlwYm9hcmRFdmVudEtpbmQgewogICAgIENvcHksCisgICAgQ29weUZvbnQsCiAg
ICAgQ3V0LAogICAgIFBhc3RlLAorICAgIFBhc3RlRm9udCwKICAgICBQYXN0ZUFzUGxhaW5UZXh0
LAogICAgIFBhc3RlQXNRdW90YXRpb24sCiAgICAgQmVmb3JlQ29weSwKQEAgLTM4NSwxMiArMzg3
LDE0IEBAIHN0YXRpYyBBdG9tU3RyaW5nIGV2ZW50TmFtZUZvckNsaXBib2FyZEV2ZW50KENsaXBi
b2FyZEV2ZW50S2luZCBraW5kKQogewogICAgIHN3aXRjaCAoa2luZCkgewogICAgIGNhc2UgQ2xp
cGJvYXJkRXZlbnRLaW5kOjpDb3B5OgorICAgIGNhc2UgQ2xpcGJvYXJkRXZlbnRLaW5kOjpDb3B5
Rm9udDoKICAgICAgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5jb3B5RXZlbnQ7CiAgICAgY2FzZSBD
bGlwYm9hcmRFdmVudEtpbmQ6OkN1dDoKICAgICAgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5jdXRF
dmVudDsKICAgICBjYXNlIENsaXBib2FyZEV2ZW50S2luZDo6UGFzdGU6CiAgICAgY2FzZSBDbGlw
Ym9hcmRFdmVudEtpbmQ6OlBhc3RlQXNQbGFpblRleHQ6CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVu
dEtpbmQ6OlBhc3RlQXNRdW90YXRpb246CisgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OlBh
c3RlRm9udDoKICAgICAgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5wYXN0ZUV2ZW50OwogICAgIGNh
c2UgQ2xpcGJvYXJkRXZlbnRLaW5kOjpCZWZvcmVDb3B5OgogICAgICAgICByZXR1cm4gZXZlbnRO
YW1lcygpLmJlZm9yZWNvcHlFdmVudDsKQEAgLTQwNyw2ICs0MTEsNyBAQCBzdGF0aWMgUmVmPERh
dGFUcmFuc2Zlcj4gY3JlYXRlRGF0YVRyYW5zZmVyRm9yQ2xpcGJvYXJkRXZlbnQoRG9jdW1lbnQm
IGRvY3VtZW50LAogewogICAgIHN3aXRjaCAoa2luZCkgewogICAgIGNhc2UgQ2xpcGJvYXJkRXZl
bnRLaW5kOjpDb3B5OgorICAgIGNhc2UgQ2xpcGJvYXJkRXZlbnRLaW5kOjpDb3B5Rm9udDoKICAg
ICBjYXNlIENsaXBib2FyZEV2ZW50S2luZDo6Q3V0OgogICAgICAgICByZXR1cm4gRGF0YVRyYW5z
ZmVyOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoZG9jdW1lbnQsIERhdGFUcmFuc2Zlcjo6U3RvcmVN
b2RlOjpSZWFkV3JpdGUsIG1ha2VVbmlxdWU8U3RhdGljUGFzdGVib2FyZD4oKSk7CiAgICAgY2Fz
ZSBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3RlQXNQbGFpblRleHQ6CkBAIC00MjAsNiArNDI1LDcg
QEAgc3RhdGljIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURhdGFUcmFuc2ZlckZvckNsaXBib2Fy
ZEV2ZW50KERvY3VtZW50JiBkb2N1bWVudCwKICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgY2Fz
ZSBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3RlOgogICAgIGNhc2UgQ2xpcGJvYXJkRXZlbnRLaW5k
OjpQYXN0ZUFzUXVvdGF0aW9uOgorICAgIGNhc2UgQ2xpcGJvYXJkRXZlbnRLaW5kOjpQYXN0ZUZv
bnQ6CiAgICAgICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZShk
b2N1bWVudCwgRGF0YVRyYW5zZmVyOjpTdG9yZU1vZGU6OlJlYWRvbmx5LCBQYXN0ZWJvYXJkOjpj
cmVhdGVGb3JDb3B5QW5kUGFzdGUoUGFnZVBhc3RlYm9hcmRDb250ZXh0OjpjcmVhdGUoZG9jdW1l
bnQucGFnZUlEKCkpKSk7CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OkJlZm9yZUNvcHk6
CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OkJlZm9yZUN1dDoKQEAgLTE0MDQsNiArMTQx
MCwyMSBAQCB2b2lkIEVkaXRvcjo6Y29weShGcm9tTWVudU9yS2V5QmluZGluZyBmcm9tTWVudU9y
S2V5QmluZGluZykKICAgICBwZXJmb3JtQ3V0T3JDb3B5KENvcHlBY3Rpb24pOwogfQogCit2b2lk
IEVkaXRvcjo6Y29weUZvbnQoRnJvbU1lbnVPcktleUJpbmRpbmcgZnJvbU1lbnVPcktleUJpbmRp
bmcpCit7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY29weVNjb3BlIHsgbV9jb3B5aW5nRnJvbU1l
bnVPcktleUJpbmRpbmcsIGZyb21NZW51T3JLZXlCaW5kaW5nID09IEZyb21NZW51T3JLZXlCaW5k
aW5nOjpZZXMgfTsKKyAgICBpZiAodHJ5REhUTUxDb3B5KCkpCisgICAgICAgIHJldHVybjsgLy8g
REhUTUwgZGlkIHRoZSB3aG9sZSBvcGVyYXRpb24KKyAgICBpZiAoIWNhbkNvcHkoKSkgeworICAg
ICAgICBTeXN0ZW1Tb3VuZE1hbmFnZXI6OnNpbmdsZXRvbigpLnN5c3RlbUJlZXAoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIHdpbGxXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChz
ZWxlY3RlZFJhbmdlKCkpOworICAgIHBsYXRmb3JtQ29weUZvbnQoKTsKKyAgICBkaWRXcml0ZVNl
bGVjdGlvblRvUGFzdGVib2FyZCgpOworfQorCiB2b2lkIEVkaXRvcjo6cG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbkZvckN1dChjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIHNlbGVjdGlvbikKIHsKICAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCkBAIC0xNTEyLDYgKzE1MzMsMTkgQEAgdm9pZCBFZGl0b3I6OnBhc3Rl
QXNRdW90YXRpb24oRnJvbU1lbnVPcktleUJpbmRpbmcgZnJvbU1lbnVPcktleUJpbmRpbmcpCiAg
ICAgICAgIHBhc3RlQXNQbGFpblRleHRXaXRoUGFzdGVib2FyZCgqcGFzdGVib2FyZCk7CiB9CiAK
K3ZvaWQgRWRpdG9yOjpwYXN0ZUZvbnQoRnJvbU1lbnVPcktleUJpbmRpbmcgZnJvbU1lbnVPcktl
eUJpbmRpbmcpCit7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gcGFzdGVTY29wZSB7IG1fcGFzdGlu
Z0Zyb21NZW51T3JLZXlCaW5kaW5nLCBmcm9tTWVudU9yS2V5QmluZGluZyA9PSBGcm9tTWVudU9y
S2V5QmluZGluZzo6WWVzIH07CisKKyAgICBpZiAoIWRpc3BhdGNoQ2xpcGJvYXJkRXZlbnQoZmlu
ZEV2ZW50VGFyZ2V0RnJvbVNlbGVjdGlvbigpLCBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3RlRm9u
dCkpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIWNhblBhc3RlKCkpCisgICAgICAgIHJldHVy
bjsKKyAgICB1cGRhdGVNYXJrZXJzRm9yV29yZHNBZmZlY3RlZEJ5RWRpdGluZyhmYWxzZSk7Cisg
ICAgUmVzb3VyY2VDYWNoZVZhbGlkYXRpb25TdXBwcmVzc29yIHZhbGlkYXRpb25TdXBwcmVzc29y
KGRvY3VtZW50KCkuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKSk7CisgICAgcGxhdGZvcm1QYXN0ZUZv
bnQoKTsKK30KKwogdm9pZCBFZGl0b3I6OnF1b3RlRnJhZ21lbnRGb3JQYXN0aW5nKERvY3VtZW50
RnJhZ21lbnQmIGZyYWdtZW50KQogewogICAgIGF1dG8gYmxvY2tRdW90ZSA9IEhUTUxRdW90ZUVs
ZW1lbnQ6OmNyZWF0ZShibG9ja3F1b3RlVGFnLCBkb2N1bWVudCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCmluZGV4IDAxZmUwYjVlMDQ0ZWY2M2YyNmE3MWI0NzJlZjk4YjExYzIyOGI5MWMuLmIw
MzEzNmZmY2YxZjZiMzdlNmIwN2FiNjIzMmU2MWY2NmRlZTc1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuaApAQCAtMTk3LDExICsxOTcsMTMgQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgRnJv
bU1lbnVPcktleUJpbmRpbmcgOiBib29sIHsgTm8sIFllcyB9OwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgY3V0KEZyb21NZW51T3JLZXlCaW5kaW5nID0gRnJvbU1lbnVPcktleUJpbmRpbmc6Ok5v
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvcHkoRnJvbU1lbnVPcktleUJpbmRpbmcgPSBG
cm9tTWVudU9yS2V5QmluZGluZzo6Tm8pOworICAgIHZvaWQgY29weUZvbnQoRnJvbU1lbnVPcktl
eUJpbmRpbmcgPSBGcm9tTWVudU9yS2V5QmluZGluZzo6Tm8pOwogCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBwYXN0ZShGcm9tTWVudU9yS2V5QmluZGluZyA9IEZyb21NZW51T3JLZXlCaW5kaW5n
OjpObyk7CiAgICAgdm9pZCBwYXN0ZShQYXN0ZWJvYXJkJiwgRnJvbU1lbnVPcktleUJpbmRpbmcg
PSBGcm9tTWVudU9yS2V5QmluZGluZzo6Tm8pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcGFz
dGVBc1BsYWluVGV4dChGcm9tTWVudU9yS2V5QmluZGluZyA9IEZyb21NZW51T3JLZXlCaW5kaW5n
OjpObyk7CiAgICAgdm9pZCBwYXN0ZUFzUXVvdGF0aW9uKEZyb21NZW51T3JLZXlCaW5kaW5nID0g
RnJvbU1lbnVPcktleUJpbmRpbmc6Ok5vKTsKKyAgICB2b2lkIHBhc3RlRm9udChGcm9tTWVudU9y
S2V5QmluZGluZyA9IEZyb21NZW51T3JLZXlCaW5kaW5nOjpObyk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBwZXJmb3JtRGVsZXRlKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvcHlV
UkwoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CkBAIC01OTIsNiArNTk0LDkgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCosIE9wdGlv
blNldDxQYXN0ZU9wdGlvbj4pOwogICAgIFN0cmluZyBwbGFpblRleHRGcm9tUGFzdGVib2FyZChj
b25zdCBQYXN0ZWJvYXJkUGxhaW5UZXh0Jik7CiAKKyAgICB2b2lkIHBsYXRmb3JtQ29weUZvbnQo
KTsKKyAgICB2b2lkIHBsYXRmb3JtUGFzdGVGb250KCk7CisKICAgICB2b2lkIHF1b3RlRnJhZ21l
bnRGb3JQYXN0aW5nKERvY3VtZW50RnJhZ21lbnQmKTsKIAogICAgIHZvaWQgcmV2ZWFsU2VsZWN0
aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKGNvbnN0IFNjcm9sbEFsaWdubWVudCYgPSBTY3JvbGxB
bGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQsIFJldmVhbEV4dGVudE9wdGlvbiA9IERvTm90
UmV2ZWFsRXh0ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmlu
ZGV4IGYxODc1OWQwNjJkZjU5NmY5NDU3ZDkxOTBhNTcwYTcxNDkyZTM0ZmMuLjYxYTFlYTZiOTc1
N2M3YmI3NTVmOTQyZGVhYzg4MDExNWU3ZDRkYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3JDb21tYW5kLmNwcApAQCAtMjQyLDYgKzI0MiwxMiBAQCBzdGF0aWMgYm9vbCBleGVjdXRl
Q29weShGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIGNv
bnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBib29sIGV4ZWN1dGVDb3B5Rm9udChG
cmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIGNvbnN0IFN0
cmluZyYpCit7CisgICAgZnJhbWUuZWRpdG9yKCkuY29weUZvbnQoc291cmNlID09IENvbW1hbmRG
cm9tTWVudU9yS2V5QmluZGluZyA/IEVkaXRvcjo6RnJvbU1lbnVPcktleUJpbmRpbmc6OlllcyA6
IEVkaXRvcjo6RnJvbU1lbnVPcktleUJpbmRpbmc6Ok5vKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
Kwogc3RhdGljIGJvb2wgZXhlY3V0ZUNyZWF0ZUxpbmsoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVk
aXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgLy8gRklYTUU6
IElmIHVzZXJJbnRlcmZhY2UgaXMgdHJ1ZSwgd2Ugc2hvdWxkIGRpc3BsYXkgYSBkaWFsb2cgYm94
IHRvIGxldCB0aGUgdXNlciBlbnRlciBhIFVSTC4KQEAgLTkwNiw2ICs5MTIsMjEgQEAgc3RhdGlj
IGJvb2wgZXhlY3V0ZVBhc3RlKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291
cmNlIHNvdXJjZSwgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgZXhl
Y3V0ZVBhc3RlRm9udChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBz
b3VyY2UsIGNvbnN0IFN0cmluZyYpCit7CisgICAgaWYgKHNvdXJjZSA9PSBDb21tYW5kRnJvbU1l
bnVPcktleUJpbmRpbmcpIHsKKyAgICAgICAgVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IgdHlw
aW5nR2VzdHVyZUluZGljYXRvcihmcmFtZSk7CisgICAgICAgIGZyYW1lLmVkaXRvcigpLnBhc3Rl
Rm9udChFZGl0b3I6OkZyb21NZW51T3JLZXlCaW5kaW5nOjpZZXMpOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoIWZyYW1lLnJlcXVlc3RET01QYXN0ZUFjY2VzcyhET01Q
YXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250cykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGZyYW1lLmVkaXRvcigpLnBhc3RlRm9udCgpOworICAgIHJldHVybiB0cnVlOworfQorCiAjaWYg
UExBVEZPUk0oR1RLKQogCiBzdGF0aWMgYm9vbCBleGVjdXRlUGFzdGVHbG9iYWxTZWxlY3Rpb24o
RnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBjb25zdCBT
dHJpbmcmKQpAQCAtMTYxNCw2ICsxNjM1LDcgQEAgc3RhdGljIGNvbnN0IENvbW1hbmRNYXAmIGNy
ZWF0ZUNvbW1hbmRNYXAoKQogICAgICAgICB7ICJCb2xkIl9zLCB7IGV4ZWN1dGVUb2dnbGVCb2xk
LCBzdXBwb3J0ZWQsIGVuYWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVCb2xkLCB2YWx1
ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQg
fSB9LAogICAgICAgICB7ICJDbGVhclRleHQiX3MsIHsgZXhlY3V0ZUNsZWFyVGV4dCwgc3VwcG9y
dGVkLCBlbmFibGVkQ2xlYXJUZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2Vy
dGlvbiwgYWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJDb3B5Il9z
LCB7IGV4ZWN1dGVDb3B5LCBzdXBwb3J0ZWRDb3B5Q3V0LCBlbmFibGVkQ29weSwgc3RhdGVOb25l
LCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVk
Q29weUN1dCB9IH0sCisgICAgICAgIHsgIkNvcHlGb250Il9zLCB7IGV4ZWN1dGVDb3B5Rm9udCwg
c3VwcG9ydGVkQ29weUN1dCwgZW5hYmxlZENvcHksIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RU
ZXh0SW5zZXJ0aW9uLCBhbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZENvcHlDdXQgfSB9LAogICAg
ICAgICB7ICJDcmVhdGVMaW5rIl9zLCB7IGV4ZWN1dGVDcmVhdGVMaW5rLCBzdXBwb3J0ZWQsIGVu
YWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJ
bnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7
ICJDdXQiX3MsIHsgZXhlY3V0ZUN1dCwgc3VwcG9ydGVkQ29weUN1dCwgZW5hYmxlZEN1dCwgc3Rh
dGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGFsbG93RXhlY3V0aW9uV2hlbkRp
c2FibGVkQ29weUN1dCB9IH0sCiAgICAgICAgIHsgIkRlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3Ii
X3MsIHsgZXhlY3V0ZURlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3IsIHN1cHBvcnRlZCwgZW5hYmxl
ZCwgc3RhdGVOb25lLCB2YWx1ZURlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3IsIG5vdFRleHRJbnNl
cnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWR9IH0sCkBAIC0xNzEzLDYgKzE3
MzUsNyBAQCBzdGF0aWMgY29uc3QgQ29tbWFuZE1hcCYgY3JlYXRlQ29tbWFuZE1hcCgpCiAgICAg
ICAgIHsgIlBhc3RlQW5kTWF0Y2hTdHlsZSJfcywgeyBleGVjdXRlUGFzdGVBbmRNYXRjaFN0eWxl
LCBzdXBwb3J0ZWRQYXN0ZSwgZW5hYmxlZFBhc3RlLCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90
VGV4dEluc2VydGlvbiwgYWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWRQYXN0ZSB9IH0sCiAgICAg
ICAgIHsgIlBhc3RlQXNQbGFpblRleHQiX3MsIHsgZXhlY3V0ZVBhc3RlQXNQbGFpblRleHQsIHN1
cHBvcnRlZFBhc3RlLCBlbmFibGVkUGFzdGUsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0
SW5zZXJ0aW9uLCBhbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZFBhc3RlIH0gfSwKICAgICAgICAg
eyAiUGFzdGVBc1F1b3RhdGlvbiJfcywgeyBleGVjdXRlUGFzdGVBc1F1b3RhdGlvbiwgc3VwcG9y
dGVkUGFzdGUsIGVuYWJsZWRQYXN0ZSwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNl
cnRpb24sIGFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkUGFzdGUgfSB9LAorICAgICAgICB7ICJQ
YXN0ZUZvbnQiX3MsIHsgZXhlY3V0ZVBhc3RlRm9udCwgc3VwcG9ydGVkUGFzdGUsIGVuYWJsZWRQ
YXN0ZSwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGFsbG93RXhlY3V0
aW9uV2hlbkRpc2FibGVkUGFzdGUgfSB9LAogICAgICAgICB7ICJQcmludCJfcywgeyBleGVjdXRl
UHJpbnQsIHN1cHBvcnRlZCwgZW5hYmxlZCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJ
bnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7
ICJSZWRvIl9zLCB7IGV4ZWN1dGVSZWRvLCBzdXBwb3J0ZWQsIGVuYWJsZWRSZWRvLCBzdGF0ZU5v
bmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5E
aXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIlJlbW92ZUZvcm1hdCJfcywgeyBleGVjdXRlUmVtb3Zl
Rm9ybWF0LCBzdXBwb3J0ZWQsIGVuYWJsZWRSYW5nZUluRWRpdGFibGVUZXh0LCBzdGF0ZU5vbmUs
IHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNh
YmxlZCB9IH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0ay9FZGl0b3JH
dGsuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9ndGsvRWRpdG9yR3RrLmNwcAppbmRleCA2
MWM1ODFhMmU4ODIyOWJkYTE1YjkzZjFjZWQzZmY2YjZlODhiNjM4Li4zNmMwNGQ2MTBkODJjYzZj
MGE5YzBkNjljZTEzNWQ4M2NiMDZhNjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2d0ay9FZGl0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0Vk
aXRvckd0ay5jcHAKQEAgLTY1LDYgKzY1LDE0IEBAIHZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0
ZWJvYXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIE9wdGlvblNldDxQYXN0ZU9wdGlvbj4KICAg
ICAgICAgcGFzdGVBc0ZyYWdtZW50KGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGNhblNtYXJ0
UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hvc2VQbGFpblRleHQsIG9wdGlv
bnMuY29udGFpbnMoUGFzdGVPcHRpb246Oklnbm9yZU1haWxCbG9ja3F1b3RlKSA/IE1haWxCbG9j
a3F1b3RlSGFuZGxpbmc6Oklnbm9yZUJsb2NrcXVvdGUgOiBNYWlsQmxvY2txdW90ZUhhbmRsaW5n
OjpSZXNwZWN0QmxvY2txdW90ZSk7CiB9CiAKK3ZvaWQgRWRpdG9yOjpwbGF0Zm9ybUNvcHlGb250
KCkKK3sKK30KKwordm9pZCBFZGl0b3I6OnBsYXRmb3JtUGFzdGVGb250KCkKK3sKK30KKwogc3Rh
dGljIGNvbnN0IEF0b21TdHJpbmcmIGVsZW1lbnRVUkwoRWxlbWVudCYgZWxlbWVudCkKIHsKICAg
ICBpZiAoaXM8SFRNTEltYWdlRWxlbWVudD4oZWxlbWVudCkgfHwgaXM8SFRNTElucHV0RWxlbWVu
dD4oZWxlbWVudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0
b3JJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KaW5kZXgg
NzBmMGI3MTFhOWQzNWI5NjIwNThhZmIxMWJhNjhmZmFmYjU1ZmIxNy4uODUxZjI5NTBiOTFiYTQ0
MGQ5OTkzYTUyMmY5MTUwZjAxYTU4MWVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9pb3MvRWRpdG9ySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0Vk
aXRvcklPUy5tbQpAQCAtMjM4LDYgKzIzOCwxNCBAQCB2b2lkIEVkaXRvcjo6cGFzdGVXaXRoUGFz
dGVib2FyZChQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkLCBPcHRpb25TZXQ8UGFzdGVPcHRpb24+CiAg
ICAgICAgIHBhc3RlQXNGcmFnbWVudChmcmFnbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBjYW5TbWFy
dFJlcGxhY2VXaXRoUGFzdGVib2FyZCgqcGFzdGVib2FyZCksIGZhbHNlLCBvcHRpb25zLmNvbnRh
aW5zKFBhc3RlT3B0aW9uOjpJZ25vcmVNYWlsQmxvY2txdW90ZSkgPyBNYWlsQmxvY2txdW90ZUhh
bmRsaW5nOjpJZ25vcmVCbG9ja3F1b3RlIDogTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVzcGVj
dEJsb2NrcXVvdGUpOwogfQogCit2b2lkIEVkaXRvcjo6cGxhdGZvcm1Db3B5Rm9udCgpCit7Cit9
CisKK3ZvaWQgRWRpdG9yOjpwbGF0Zm9ybVBhc3RlRm9udCgpCit7Cit9CisKIHZvaWQgRWRpdG9y
OjppbnNlcnREaWN0YXRpb25QaHJhc2VzKFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4mJiBkaWN0YXRp
b25QaHJhc2VzLCBpZCBtZXRhZGF0YSkKIHsKICAgICBpZiAobV9kb2N1bWVudC5zZWxlY3Rpb24o
KS5pc05vbmUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbGlid3BlL0Vk
aXRvckxpYldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2xpYndwZS9FZGl0b3JMaWJX
UEUuY3BwCmluZGV4IDlkZDQxZDYzNjY1MTJmZDM4NTkzN2E3NjA4YmQzZmM5YjViOTBmNjAuLjg1
OTVlZDFkZGYzODk3MTE0MjJlNDUzOTg4ZGJiYzNkZTVkZTg3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvbGlid3BlL0VkaXRvckxpYldQRS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9saWJ3cGUvRWRpdG9yTGliV1BFLmNwcApAQCAtOTEsNiArOTEsMTQgQEAg
dm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwg
T3B0aW9uU2V0PFBhc3RlT3B0aW9uPgogICAgICAgICBwYXN0ZUFzRnJhZ21lbnQoKmZyYWdtZW50
LCBjYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZCgqcGFzdGVib2FyZCksIGNob3NlUGxhaW5U
ZXh0LCBvcHRpb25zLmNvbnRhaW5zKFBhc3RlT3B0aW9uOjpJZ25vcmVNYWlsQmxvY2txdW90ZSkg
PyBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpJZ25vcmVCbG9ja3F1b3RlIDogTWFpbEJsb2NrcXVv
dGVIYW5kbGluZzo6UmVzcGVjdEJsb2NrcXVvdGUpOwogfQogCit2b2lkIEVkaXRvcjo6cGxhdGZv
cm1Db3B5Rm9udCgpCit7Cit9CisKK3ZvaWQgRWRpdG9yOjpwbGF0Zm9ybVBhc3RlRm9udCgpCit7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShMSUJXUEUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KaW5kZXggMmQxOWI5YzdjMjJiM2Vi
YzI2N2M2NzYxMDZjODkyZjA5Yjc3NzUzZC4uMTg0MzAyNGIwZDc5ZGIyNTk3OTEyZmM4ZjRkMjcy
OTgzNWZkNjlhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9y
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQpAQCAt
MzEsMTAgKzMxLDE1IEBACiAjaW1wb3J0ICJCbG9iLmgiCiAjaW1wb3J0ICJDU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmgiCiAjaW1wb3J0ICJDU1NWYWx1ZVBvb2wuaCIKKyNpbXBvcnQgIkNvbG9y
LmgiCisjaW1wb3J0ICJDb2xvckNvY29hLmgiCisjaW1wb3J0ICJDb2xvclNlcmlhbGl6YXRpb24u
aCIKICNpbXBvcnQgIkRhdGFUcmFuc2Zlci5oIgogI2ltcG9ydCAiRG9jdW1lbnRGcmFnbWVudC5o
IgogI2ltcG9ydCAiRWRpdGluZy5oIgogI2ltcG9ydCAiRWRpdG9yQ2xpZW50LmgiCisjaW1wb3J0
ICJGb250QXR0cmlidXRlcy5oIgorI2ltcG9ydCAiRm9udFNoYWRvdy5oIgogI2ltcG9ydCAiRnJh
bWUuaCIKICNpbXBvcnQgIkZyYW1lVmlldy5oIgogI2ltcG9ydCAiSFRNTENvbnZlcnRlci5oIgpA
QCAtNTAsMTEgKzU1LDEzIEBACiAjaW1wb3J0ICJSZW5kZXJJbWFnZS5oIgogI2ltcG9ydCAiUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW1wb3J0ICJSdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgiCisjaW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIKICNpbXBvcnQgIlN0eWxlUHJvcGVydGllcy5o
IgogI2ltcG9ydCAiV2ViQ29udGVudFJlYWRlci5oIgogI2ltcG9ydCAiV2ViTlNBdHRyaWJ1dGVk
U3RyaW5nRXh0cmFzLmgiCiAjaW1wb3J0ICJtYXJrdXAuaCIKICNpbXBvcnQgPEFwcEtpdC9BcHBL
aXQuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9OU1VS
TEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05OSw2ICsxMDYsODcgQEAgdm9p
ZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwgT3B0
aW9uU2V0PFBhc3RlT3B0aW9uPgogICAgIGNsaWVudCgpLT5zZXRJbnNlcnRpb25QYXN0ZWJvYXJk
KFN0cmluZygpKTsKIH0KIAordm9pZCBFZGl0b3I6OnBsYXRmb3JtQ29weUZvbnQoKQoreworQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICBQYXN0ZWJvYXJkIHBhc3RlYm9h
cmQoUGFnZVBhc3RlYm9hcmRDb250ZXh0OjpjcmVhdGUobV9kb2N1bWVudC5wYWdlSUQoKSksIE5T
Rm9udFBib2FyZCk7CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKworICAgIGF1
dG8gZm9udFNhbXBsZVN0cmluZyA9IGFkb3B0TlMoW1tOU0F0dHJpYnV0ZWRTdHJpbmcgYWxsb2Nd
IGluaXRXaXRoU3RyaW5nOkAieCIgYXR0cmlidXRlczpmb250QXR0cmlidXRlc0F0U2VsZWN0aW9u
U3RhcnQoKS5jcmVhdGVEaWN0aW9uYXJ5KCkuZ2V0KCldKTsKKyAgICBhdXRvIGZvbnREYXRhID0g
UmV0YWluUHRyKFtmb250U2FtcGxlU3RyaW5nIFJURkZyb21SYW5nZTpOU01ha2VSYW5nZSgwLCBb
Zm9udFNhbXBsZVN0cmluZyBsZW5ndGhdKSBkb2N1bWVudEF0dHJpYnV0ZXM6QHsgfV0pOworCisg
ICAgUGFzdGVib2FyZEJ1ZmZlciBwYXN0ZWJvYXJkQnVmZmVyOworICAgIHBhc3RlYm9hcmRCdWZm
ZXIuY29udGVudE9yaWdpbiA9IG1fZG9jdW1lbnQub3JpZ2luSWRlbnRpZmllckZvclBhc3RlYm9h
cmQoKTsKKyAgICBwYXN0ZWJvYXJkQnVmZmVyLnR5cGUgPSBsZWdhY3lGb250UGFzdGVib2FyZFR5
cGUoKTsKKyAgICBwYXN0ZWJvYXJkQnVmZmVyLmRhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShm
b250RGF0YS5nZXQoKSk7CisgICAgcGFzdGVib2FyZC53cml0ZShwYXN0ZWJvYXJkQnVmZmVyKTsK
K30KKwordm9pZCBFZGl0b3I6OnBsYXRmb3JtUGFzdGVGb250KCkKK3sKK0FMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCisgICAgUGFzdGVib2FyZCBwYXN0ZWJvYXJkKFBhZ2VQYXN0
ZWJvYXJkQ29udGV4dDo6Y3JlYXRlKG1fZG9jdW1lbnQucGFnZUlEKCkpLCBOU0ZvbnRQYm9hcmQp
OworQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECisKKyAgICBjbGllbnQoKS0+c2V0
SW5zZXJ0aW9uUGFzdGVib2FyZChwYXN0ZWJvYXJkLm5hbWUoKSk7CisKKyAgICBSZXRhaW5QdHI8
TlNEYXRhPiBmb250RGF0YTsKKyAgICBpZiAoYXV0byBidWZmZXIgPSBwYXN0ZWJvYXJkLnJlYWRC
dWZmZXIoc3RkOjpudWxsb3B0LCBsZWdhY3lGb250UGFzdGVib2FyZFR5cGUoKSkpCisgICAgICAg
IGZvbnREYXRhID0gYnVmZmVyLT5jcmVhdGVOU0RhdGEoKTsKKyAgICBhdXRvIGZvbnRTYW1wbGVT
dHJpbmcgPSBhZG9wdE5TKFtbTlNBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0aFJURjpm
b250RGF0YS5nZXQoKSBkb2N1bWVudEF0dHJpYnV0ZXM6bmlsXSk7CisgICAgYXV0byBmb250QXR0
cmlidXRlcyA9IFJldGFpblB0cihbZm9udFNhbXBsZVN0cmluZyBmb250QXR0cmlidXRlc0luUmFu
Z2U6TlNNYWtlUmFuZ2UoMCwgMSldKTsKKworICAgIGF1dG8gc3R5bGUgPSBNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzOjpjcmVhdGUoKTsKKworICAgIENvbG9yIGJhY2tncm91bmRDb2xvcjsKKyAgICBp
ZiAoTlNDb2xvciAqbnNCYWNrZ3JvdW5kQ29sb3IgPSBkeW5hbWljX29iamNfY2FzdDxOU0NvbG9y
PihbZm9udEF0dHJpYnV0ZXMgb2JqZWN0Rm9yS2V5Ok5TQmFja2dyb3VuZENvbG9yQXR0cmlidXRl
TmFtZV0pKQorICAgICAgICBiYWNrZ3JvdW5kQ29sb3IgPSBjb2xvckZyb21Db2NvYUNvbG9yKG5z
QmFja2dyb3VuZENvbG9yKTsKKyAgICBpZiAoIWJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCisg
ICAgICAgIGJhY2tncm91bmRDb2xvciA9IENvbG9yOjp0cmFuc3BhcmVudEJsYWNrOworICAgIHN0
eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciwgQ1NTUHJpbWl0aXZl
VmFsdWU6OmNyZWF0ZShiYWNrZ3JvdW5kQ29sb3IpKTsKKworICAgIGlmIChOU0ZvbnQgKmZvbnQg
PSBkeW5hbWljX29iamNfY2FzdDxOU0ZvbnQ+KFtmb250QXR0cmlidXRlcyBvYmplY3RGb3JLZXk6
TlNGb250QXR0cmlidXRlTmFtZV0pKSB7CisgICAgICAgIC8vIEZJWE1FOiBOZWVkIG1vcmUgc29w
aGlzdGljYXRlZCBlc2NhcGluZyBjb2RlIGlmIHdlIHdhbnQgdG8gaGFuZGxlIGZhbWlseSBuYW1l
cworICAgICAgICAvLyB3aXRoIGNoYXJhY3RlcnMgbGlrZSBzaW5nbGUgcXVvdGUgb3IgYmFja3Ns
YXNoIGluIHRoZWlyIG5hbWVzLgorICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVy
dHlGb250RmFtaWx5LCBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiclQCciLCBbZm9udCBm
YW1pbHlOYW1lXV0pOworICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGb250
U2l6ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShbZm9udCBwb2ludFNpemVdLCBDU1NVbml0
VHlwZTo6Q1NTX1BYKSk7CisgICAgICAgIC8vIEZJWE1FOiBNYXAgdG8gdGhlIGVudGlyZSByYW5n
ZSBvZiBDU1Mgd2VpZ2h0IHZhbHVlcy4KKyAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1By
b3BlcnR5Rm9udFdlaWdodCwgKFtOU0ZvbnRNYW5hZ2VyLnNoYXJlZEZvbnRNYW5hZ2VyIHdlaWdo
dE9mRm9udDpmb250XSA+PSA3KSA/IENTU1ZhbHVlQm9sZCA6IENTU1ZhbHVlTm9ybWFsKTsKKyAg
ICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Rm9udFN0eWxlLCAoW05TRm9udE1h
bmFnZXIuc2hhcmVkRm9udE1hbmFnZXIgdHJhaXRzT2ZGb250OmZvbnRdICYgTlNJdGFsaWNGb250
TWFzaykgPyBDU1NWYWx1ZUl0YWxpYyA6IENTU1ZhbHVlTm9ybWFsKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGb250RmFtaWx5LCAiSGVsdmV0
aWNhIl9zKTsKKyAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Rm9udFNpemUs
IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoMTIsIENTU1VuaXRUeXBlOjpDU1NfUFgpKTsKKyAg
ICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Rm9udFdlaWdodCwgQ1NTVmFsdWVO
b3JtYWwpOworICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGb250U3R5bGUs
IENTU1ZhbHVlTm9ybWFsKTsKKyAgICB9CisKKyAgICBDb2xvciBmb3JlZ3JvdW5kQ29sb3I7Cisg
ICAgaWYgKE5TQ29sb3IgKm5zRm9yZWdyb3VuZENvbG9yID0gZHluYW1pY19vYmpjX2Nhc3Q8TlND
b2xvcj4oW2ZvbnRBdHRyaWJ1dGVzIG9iamVjdEZvcktleTpOU0ZvcmVncm91bmRDb2xvckF0dHJp
YnV0ZU5hbWVdKSkgeworICAgICAgICBmb3JlZ3JvdW5kQ29sb3IgPSBjb2xvckZyb21Db2NvYUNv
bG9yKG5zRm9yZWdyb3VuZENvbG9yKTsKKyAgICAgICAgaWYgKCFmb3JlZ3JvdW5kQ29sb3IuaXNW
YWxpZCgpKQorICAgICAgICAgICAgZm9yZWdyb3VuZENvbG9yID0gQ29sb3I6OnRyYW5zcGFyZW50
QmxhY2s7CisgICAgfSBlbHNlCisgICAgICAgIGZvcmVncm91bmRDb2xvciA9IENvbG9yOjpibGFj
azsKKyAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlDb2xvciwgQ1NTUHJpbWl0aXZl
VmFsdWU6OmNyZWF0ZShmb3JlZ3JvdW5kQ29sb3IpKTsKKworICAgIEZvbnRTaGFkb3cgZm9udFNo
YWRvdzsKKyAgICBpZiAoTlNTaGFkb3cgKm5zRm9udFNoYWRvdyA9IGR5bmFtaWNfb2JqY19jYXN0
PE5TU2hhZG93PihbZm9udEF0dHJpYnV0ZXMgb2JqZWN0Rm9yS2V5Ok5TU2hhZG93QXR0cmlidXRl
TmFtZV0pKQorICAgICAgICBmb250U2hhZG93ID0gZm9udFNoYWRvd0Zyb21OU1NoYWRvdyhuc0Zv
bnRTaGFkb3cpOworICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVRleHRTaGFkb3cs
IHNlcmlhbGl6YXRpb25Gb3JDU1MoZm9udFNoYWRvdykpOworCisgICAgYXV0byBzdXBlcnNjcmlw
dFN0eWxlID0gW1tmb250QXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNTdXBlcnNjcmlwdEF0dHJp
YnV0ZU5hbWVdIGludFZhbHVlXTsKKyAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlW
ZXJ0aWNhbEFsaWduLCAoc3VwZXJzY3JpcHRTdHlsZSA+IDApID8gQ1NTVmFsdWVTdXBlciA6ICgo
c3VwZXJzY3JpcHRTdHlsZSA8IDApID8gQ1NTVmFsdWVTdWIgOiBDU1NWYWx1ZUJhc2VsaW5lKSk7
CisKKyAgICAvLyBGSVhNRTogVW5kZXJsaW5lIHdpbnMgaGVyZSBpZiB3ZSBoYXZlIGJvdGggKHNl
ZSBidWcgMzc5MDQ0MykuCisgICAgYXV0byB1bmRlcmxpbmVTdHlsZSA9IFtbZm9udEF0dHJpYnV0
ZXMgb2JqZWN0Rm9yS2V5Ok5TVW5kZXJsaW5lU3R5bGVBdHRyaWJ1dGVOYW1lXSBpbnRWYWx1ZV07
CisgICAgYXV0byBzdHJpa2V0aHJvdWdoU3R5bGUgPSBbW2ZvbnRBdHRyaWJ1dGVzIG9iamVjdEZv
cktleTpOU1N0cmlrZXRocm91Z2hTdHlsZUF0dHJpYnV0ZU5hbWVdIGludFZhbHVlXTsKKyAgICBz
dHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVj
dCwgKHVuZGVybGluZVN0eWxlICE9IE5TVW5kZXJsaW5lU3R5bGVOb25lKSA/IENTU1ZhbHVlVW5k
ZXJsaW5lIDogKChzdHJpa2V0aHJvdWdoU3R5bGUgIT0gTlNVbmRlcmxpbmVTdHlsZU5vbmUpID8g
Q1NTVmFsdWVMaW5lVGhyb3VnaCA6IENTU1ZhbHVlTm9uZSkpOworCisgICAgYXBwbHlTdHlsZVRv
U2VsZWN0aW9uKHN0eWxlLnB0cigpLCBFZGl0QWN0aW9uOjpQYXN0ZUZvbnQpOworCisgICAgY2xp
ZW50KCktPnNldEluc2VydGlvblBhc3RlYm9hcmQoU3RyaW5nKCkpOworfQorCiB2b2lkIEVkaXRv
cjo6cmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5h
bWUpCiB7CiAgICAgUGFzdGVib2FyZCBwYXN0ZWJvYXJkKFBhZ2VQYXN0ZWJvYXJkQ29udGV4dDo6
Y3JlYXRlKG1fZG9jdW1lbnQucGFnZUlEKCkpLCBwYXN0ZWJvYXJkTmFtZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy93aW4vRWRpdG9yV2luLmNwcAppbmRleCAzYjQwNTJkNDllNTU0MDBhYTMwYmJl
N2VhNzE4M2M3YTQ2YjhjN2M0Li4xYjUxOWUyNWYwNjNmY2MyODFhMTY4MDQ4MWYwMzdjOWM2YTQ1
MGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd2luL0VkaXRvcldpbi5jcHAKQEAgLTUyLDYg
KzUyLDE0IEBAIHZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQqIHBh
c3RlYm9hcmQsIE9wdGlvblNldDxQYXN0ZU9wdGlvbj4KICAgICAgICAgcGFzdGVBc0ZyYWdtZW50
KGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJk
KCpwYXN0ZWJvYXJkKSwgY2hvc2VQbGFpblRleHQsIG9wdGlvbnMuY29udGFpbnMoUGFzdGVPcHRp
b246Oklnbm9yZU1haWxCbG9ja3F1b3RlKSA/IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6Oklnbm9y
ZUJsb2NrcXVvdGUgOiBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0QmxvY2txdW90ZSk7
CiB9CiAKK3ZvaWQgRWRpdG9yOjpwbGF0Zm9ybUNvcHlGb250KCkKK3sKK30KKwordm9pZCBFZGl0
b3I6OnBsYXRmb3JtUGFzdGVGb250KCkKK3sKK30KKwogdGVtcGxhdGUgPHR5cGVuYW1lIFBsYXRm
b3JtRHJhZ0RhdGE+CiBzdGF0aWMgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdt
ZW50RnJvbVBsYXRmb3JtRGF0YShQbGF0Zm9ybURyYWdEYXRhJiBwbGF0Zm9ybURyYWdEYXRhLCBG
cmFtZSYgZnJhbWUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
CmluZGV4IDA5NzM0NDMwMzkwNjFiOGY5OGIwYzA3MTc4ZTRhZjZhNTA0NDAwMGMuLjE3MjJmNzIz
OGRhMjJkYWE0MzUyMDA0NTFhMzI1NzcyNmEwNDE2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0yMDUsNiArMjA1LDcgQEAgV0VCQ09SRV9DT01NQU5E
KGFsaWduSnVzdGlmaWVkKQogV0VCQ09SRV9DT01NQU5EKGFsaWduTGVmdCkKIFdFQkNPUkVfQ09N
TUFORChhbGlnblJpZ2h0KQogV0VCQ09SRV9DT01NQU5EKGNvcHkpCitXRUJDT1JFX0NPTU1BTkQo
Y29weUZvbnQpCiBXRUJDT1JFX0NPTU1BTkQoY3V0KQogV0VCQ09SRV9DT01NQU5EKGRlbGV0ZSkK
IFdFQkNPUkVfQ09NTUFORChkZWxldGVCYWNrd2FyZCkKQEAgLTI3OCw2ICsyNzksNyBAQCBXRUJD
T1JFX0NPTU1BTkQocGFnZVVwKQogV0VCQ09SRV9DT01NQU5EKHBhZ2VVcEFuZE1vZGlmeVNlbGVj
dGlvbikKIFdFQkNPUkVfQ09NTUFORChwYXN0ZSkKIFdFQkNPUkVfQ09NTUFORChwYXN0ZUFzUGxh
aW5UZXh0KQorV0VCQ09SRV9DT01NQU5EKHBhc3RlRm9udCkKIFdFQkNPUkVfQ09NTUFORChzY3Jv
bGxQYWdlRG93bikKIFdFQkNPUkVfQ09NTUFORChzY3JvbGxQYWdlVXApCiBXRUJDT1JFX0NPTU1B
TkQoc2Nyb2xsTGluZURvd24pCkBAIC0zMzksMTEgKzM0MSw5IEBAIGluZGl2aWR1YWwgbWV0aG9k
cyBoZXJlIHdpdGggTWFjLXNwZWNpZmljIGNvZGUuCiBFZGl0aW5nLXJlbGF0ZWQgbWV0aG9kcyBz
dGlsbCB1bmltcGxlbWVudGVkIHRoYXQgYXJlIGltcGxlbWVudGVkIGluIFdlYktpdDE6CiAKIC0g
KHZvaWQpY29tcGxldGU6KGlkKXNlbmRlcjsKLS0gKHZvaWQpY29weUZvbnQ6KGlkKXNlbmRlcjsK
IC0gKHZvaWQpbWFrZUJhc2VXcml0aW5nRGlyZWN0aW9uTGVmdFRvUmlnaHQ6KGlkKXNlbmRlcjsK
IC0gKHZvaWQpbWFrZUJhc2VXcml0aW5nRGlyZWN0aW9uTmF0dXJhbDooaWQpc2VuZGVyOwogLSAo
dm9pZCltYWtlQmFzZVdyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVmdDooaWQpc2VuZGVyOwotLSAo
dm9pZClwYXN0ZUZvbnQ6KGlkKXNlbmRlcjsKIC0gKHZvaWQpc2Nyb2xsTGluZURvd246KGlkKXNl
bmRlcjsKIC0gKHZvaWQpc2Nyb2xsTGluZVVwOihpZClzZW5kZXI7CiAtICh2b2lkKXNob3dHdWVz
c1BhbmVsOihpZClzZW5kZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvbWFjL1dLV2ViVmlld01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMv
V0tXZWJWaWV3TWFjLm1tCmluZGV4IDJkMzA2OWNjZTI1MjQ0NzU5OWQxZDZiYWUzN2QwNmE5ZTJl
YzY3MGIuLmQ2ZmFmNDg4MjFlMGEwZmFhMDczYzE5ZTg1MThhN2I1MjI0MWExZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCkBAIC0xNjcs
NiArMTY3LDcgQEAgV0VCQ09SRV9DT01NQU5EKGFsaWduSnVzdGlmaWVkKQogV0VCQ09SRV9DT01N
QU5EKGFsaWduTGVmdCkKIFdFQkNPUkVfQ09NTUFORChhbGlnblJpZ2h0KQogV0VCQ09SRV9DT01N
QU5EKGNvcHkpCitXRUJDT1JFX0NPTU1BTkQoY29weUZvbnQpCiBXRUJDT1JFX0NPTU1BTkQoY3V0
KQogV0VCQ09SRV9DT01NQU5EKGRlbGV0ZSkKIFdFQkNPUkVfQ09NTUFORChkZWxldGVCYWNrd2Fy
ZCkKQEAgLTI0MCw2ICsyNDEsNyBAQCBXRUJDT1JFX0NPTU1BTkQocGFnZVVwKQogV0VCQ09SRV9D
T01NQU5EKHBhZ2VVcEFuZE1vZGlmeVNlbGVjdGlvbikKIFdFQkNPUkVfQ09NTUFORChwYXN0ZSkK
IFdFQkNPUkVfQ09NTUFORChwYXN0ZUFzUGxhaW5UZXh0KQorV0VCQ09SRV9DT01NQU5EKHBhc3Rl
Rm9udCkKIFdFQkNPUkVfQ09NTUFORChzY3JvbGxMaW5lRG93bikKIFdFQkNPUkVfQ09NTUFORChz
Y3JvbGxMaW5lVXApCiBXRUJDT1JFX0NPTU1BTkQoc2Nyb2xsVG9CZWdpbm5pbmdPZkRvY3VtZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA4
OGM1ZGQ4OWMxNGY3OWI1ZjUwOGNlMmE1NDQ1YjdmNzUzMGI0YjVkLi4xMTc1NzMxYTJkMDhjNDIy
NTU5YWE2ZmM0ZTRmYWRmYjA2ZWYwYzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtNDU5MCw2ICs0NTkwLDExIEBAIHN0YXRpYyBOU1Bhc3Rl
Ym9hcmROYW1lIHBhc3RlYm9hcmROYW1lRm9yQWNjZXNzQ2F0ZWdvcnkoV2ViQ29yZTo6RE9NUGFz
dGVBY2Nlc3NDCiAgICAgc3dpdGNoIChwYXN0ZUFjY2Vzc0NhdGVnb3J5KSB7CiAgICAgY2FzZSBX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpHZW5lcmFsOgogICAgICAgICByZXR1cm4g
TlNQYXN0ZWJvYXJkTmFtZUdlbmVyYWw7CisKKyAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3RlQWNj
ZXNzQ2F0ZWdvcnk6OkZvbnRzOgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
KyAgICAgICAgcmV0dXJuIE5TRm9udFBib2FyZDsKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogICAgIH0KIH0KIApAQCAtNDU5OCw2ICs0NjAzLDExIEBAIHN0YXRpYyBOU1Bhc3Rl
Ym9hcmQgKnBhc3RlYm9hcmRGb3JBY2Nlc3NDYXRlZ29yeShXZWJDb3JlOjpET01QYXN0ZUFjY2Vz
c0NhdGVnb3J5CiAgICAgc3dpdGNoIChwYXN0ZUFjY2Vzc0NhdGVnb3J5KSB7CiAgICAgY2FzZSBX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpHZW5lcmFsOgogICAgICAgICByZXR1cm4g
TlNQYXN0ZWJvYXJkLmdlbmVyYWxQYXN0ZWJvYXJkOworCisgICAgY2FzZSBXZWJDb3JlOjpET01Q
YXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250czoKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCisgICAgICAgIHJldHVybiBbTlNQYXN0ZWJvYXJkIHBhc3RlYm9hcmRXaXRoTmFtZTpO
U0ZvbnRQYm9hcmRdOworQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA0ZTliMGVl
MmQ0NWZlMDRjNTZiZWViMzBmODU2MDQ4N2M2Yzc0ZTFmLi40ZWI5ZjAyODM3OGNmNDRmZDZjOWFm
NmM1N2FhOWEwZjE1Mjk2MGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKQEAgLTI1MTcsNiArMjUxNyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPERPTVBhc3Rl
QWNjZXNzQ2F0ZWdvcnk+IHBhc3RlQWNjZXNzQ2F0ZWdvcnlGb3JDb21tYW5kKGNvbnN0CiAgICAg
ICAgIHsgIlBhc3RlQW5kTWF0Y2hTdHlsZSIsIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVy
YWwgfSwKICAgICAgICAgeyAiUGFzdGVBc1F1b3RhdGlvbiIsIERPTVBhc3RlQWNjZXNzQ2F0ZWdv
cnk6OkdlbmVyYWwgfSwKICAgICAgICAgeyAiUGFzdGVBc1BsYWluVGV4dCIsIERPTVBhc3RlQWNj
ZXNzQ2F0ZWdvcnk6OkdlbmVyYWwgfSwKKyAgICAgICAgeyAiUGFzdGVGb250IiwgRE9NUGFzdGVB
Y2Nlc3NDYXRlZ29yeTo6Rm9udHMgfSwKICAgICB9OwogCiAgICAgYXV0byBpdCA9IHBhc3RlQ29t
bWFuZE5hbWVzLT5maW5kKGNvbW1hbmROYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGI5MGFjZmVj
NDgxMjhmNDUzYzkxMDIzNmQyYmJmOGFjYmE5MTkxOTcuLjQwNzEwY2I4NDJiYzkxMDhhZjM3Yjli
NTJkNDdhY2E0NTAxMmU2YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNDE0OCw2ICs0MTQ4LDEwIEBA
IHN0YXRpYyBVSVBhc3RlYm9hcmROYW1lIHBhc3RlYm9hcmROYW1lRm9yQWNjZXNzQ2F0ZWdvcnko
V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDCiAgICAgc3dpdGNoIChwYXN0ZUFjY2Vzc0NhdGVnb3J5
KSB7CiAgICAgY2FzZSBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpHZW5lcmFsOgog
ICAgICAgICByZXR1cm4gVUlQYXN0ZWJvYXJkTmFtZUdlbmVyYWw7CisKKyAgICBjYXNlIFdlYkNv
cmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkZvbnRzOgorICAgICAgICAvLyBGSVhNRTogRG9l
cyBpT1MgaGF2ZSBhIGRpZmZlcmVudCBwYXN0ZWJvYXJkIGZvciBmb250cz8KKyAgICAgICAgcmV0
dXJuIFVJUGFzdGVib2FyZE5hbWVHZW5lcmFsOwogICAgIH0KIH0KIApAQCAtNDE1Niw2ICs0MTYw
LDEwIEBAIHN0YXRpYyBVSVBhc3RlYm9hcmQgKnBhc3RlYm9hcmRGb3JBY2Nlc3NDYXRlZ29yeShX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5CiAgICAgc3dpdGNoIChwYXN0ZUFjY2Vzc0Nh
dGVnb3J5KSB7CiAgICAgY2FzZSBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpHZW5l
cmFsOgogICAgICAgICByZXR1cm4gVUlQYXN0ZWJvYXJkLmdlbmVyYWxQYXN0ZWJvYXJkOworCisg
ICAgY2FzZSBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250czoKKyAgICAgICAg
Ly8gRklYTUU6IERvZXMgaU9TIGhhdmUgYSBkaWZmZXJlbnQgcGFzdGVib2FyZCBmb3IgZm9udHM/
CisgICAgICAgIHJldHVybiBVSVBhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQ7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpp
bmRleCAwZGRmYzNlNjkxZjI5ZDc5YTJmOWIzYWE2YjFjMDU5YWYzN2MwMDBhLi5kNzgwMTY0YTQ2
NmFiNDc5NDU2NzZkZTRmNmZlZTZjYjQwZWI2MjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTE1NTAsNiArMTU1MCwxMSBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1QYXN0ZUNvbW1hbmQoRE9NUGFzdGVBY2Nlc3NDYXRl
Z29yeSBwYXN0ZUFjY2Vzc0NhdAogICAgIGNhc2UgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2Vu
ZXJhbDoKICAgICAgICAgZ3JhbnRBY2Nlc3NUb0N1cnJlbnRQYXN0ZWJvYXJkRGF0YShVSVBhc3Rl
Ym9hcmROYW1lR2VuZXJhbCk7CiAgICAgICAgIHJldHVybjsKKworICAgIGNhc2UgRE9NUGFzdGVB
Y2Nlc3NDYXRlZ29yeTo6Rm9udHM6CisgICAgICAgIC8vIEZJWE1FOiBEb2VzIGlPUyBoYXZlIGEg
ZGlmZmVyZW50IHBhc3RlYm9hcmQgZm9yIGZvbnRzPworICAgICAgICBncmFudEFjY2Vzc1RvQ3Vy
cmVudFBhc3RlYm9hcmREYXRhKFVJUGFzdGVib2FyZE5hbWVHZW5lcmFsKTsKKyAgICAgICAgcmV0
dXJuOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYlBhZ2VQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdl
UHJveHlNYWMubW0KaW5kZXggNTUxYTJhZjIzZmVlMGJmZDI0ODc4NjIwYTljZDc5ZjA3MzYxYzRm
Yy4uZmNlYmEzZTYwYjE2ZTM5ZWQ3ZjM2Njg0MjE5YjY5MzNjZDVjNzc1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCkBAIC02NTcsNiArNjU3
LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybVBhc3RlQ29tbWFuZChET01QYXN0
ZUFjY2Vzc0NhdGVnb3J5IHBhc3RlQWNjZXNzQ2F0CiAgICAgY2FzZSBET01QYXN0ZUFjY2Vzc0Nh
dGVnb3J5OjpHZW5lcmFsOgogICAgICAgICBncmFudEFjY2Vzc1RvQ3VycmVudFBhc3RlYm9hcmRE
YXRhKE5TUGFzdGVib2FyZE5hbWVHZW5lcmFsKTsKICAgICAgICAgcmV0dXJuOworCisgICAgY2Fz
ZSBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250czoKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCisgICAgICAgIGdyYW50QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEo
TlNGb250UGJvYXJkKTsKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorICAgICAg
ICByZXR1cm47CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGIyN2RhZTc5NmIzY2MxNjJkN2YwZDM3OTUw
NjIxN2E0ZDFlMTMyOC4uNzcyOWQxMTIzOWVjNmQxMTY0YjYwM2ZkNzRjNDVjMDQ2MGFlOTQ4OSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTA3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3Nv
QGFwcGxlLmNvbT4KKworICAgICAgICBXS1dlYlZpZXcgZG9lc27igJl0IHJlc3BvbmQgdG8gLWNv
cHlGb250OiBhbmQgLXBhc3RlRm9udDoKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5MTM3OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDU4Nzg2NTk+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBlZGl0
aW5nL2VkaXRpbmcuanM6CisgICAgICAgIChleGVjQ29weUZvbnRDb21tYW5kKTogQWRkZWQuCisg
ICAgICAgIChjb3B5Rm9udENvbW1hbmQpOiBBZGRlZC4KKyAgICAgICAgKGV4ZWNQYXN0ZUZvbnRD
b21tYW5kKTogQWRkZWQuCisgICAgICAgIChwYXN0ZUZvbnRDb21tYW5kKTogQWRkZWQuCisgICAg
ICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9tYWMvY29weUZvbnQtcGFzdGVGb250Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvbWFjL2NvcHlGb250LXBhc3RlRm9u
dC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMTItMDcgIFlv
c2hpYWtpIEppdHN1a2F3YSAgPHlvc2hpYWtpLmppdHN1a2F3YUBzb255LmNvbT4KIAogICAgICAg
ICBTdXBwb3J0IEFuaW1hdGVkIEpQRUctWEwgaW1hZ2VzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBl
ZmVkZWJjYmE0YWE2NWVjNGRjOGEyNzYwM2JkNzJkNjNhYzFlMzVkLi42OWYxYjYwYTBjNzg1NjFi
M2Q5MWI4OTQ0NDQwNDY0MDQ0YmUwZTA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIwLDYgKzIw
LDcgQEAgZWRpdGluZy9tYWMgWyBTa2lwIF0KIGVkaXRpbmcvY2FyZXQvaW9zIFsgU2tpcCBdCiBl
ZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbiBbIFNraXAgXQogZWRpdGluZy9leGVjQ29tbWFuZC9pb3Mg
WyBTa2lwIF0KK2VkaXRpbmcvZXhlY0NvbW1hbmQvbWFjIFsgU2tpcCBdCiBlZGl0aW5nL2lucHV0
L2NvY29hIFsgU2tpcCBdCiBlZGl0aW5nL2lucHV0L2lvcyBbIFNraXAgXQogZWRpdGluZy9maW5k
IFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRpbmcuanMgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRpbmcuanMKaW5kZXggOTk4MTY0ZWIwYjYxMWRmYmVjOGFi
ZWQ3YTYwMTMyOGE5NTNmZjI3MS4uODM2Y2JjNzdjNDY1NWZmODM4YTExNWM3YTM5MTRhYjJhYmZh
NTlhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0aW5nLmpzCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvZWRpdGluZy5qcwpAQCAtODExLDYgKzgxMSwzNCBAQCBmdW5jdGlv
biBwYXN0ZUNvbW1hbmQoKSB7CiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCitmdW5jdGlvbiBleGVjQ29weUZvbnRDb21tYW5kKCkgeworICAgIGRv
Y3VtZW50LmV4ZWNDb21tYW5kKCJDb3B5Rm9udCIpOworICAgIGRlYnVnRm9yRHVtcEFzVGV4dCgi
ZXhlY0NvcHlGb250Q29tbWFuZCIpOworfQorZnVuY3Rpb24gY29weUZvbnRDb21tYW5kKCkgewor
ICAgIGlmIChjb21tYW5kRGVsYXkgPiAwKSB7CisgICAgICAgIHF1ZXVlQ29tbWFuZChleGVjQ29w
eUZvbnRDb21tYW5kLCBjb21tYW5kQ291bnQgKiBjb21tYW5kRGVsYXkpOworICAgICAgICBjb21t
YW5kQ291bnQrKzsKKyAgICB9IGVsc2UKKyAgICAgICAgZXhlY0NvcHlGb250Q29tbWFuZCgpOwor
fQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
ZnVuY3Rpb24gZXhlY1Bhc3RlRm9udENvbW1hbmQoKSB7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoIlBhc3RlRm9udCIpOworICAgIGRlYnVnRm9yRHVtcEFzVGV4dCgiZXhlY1Bhc3RlRm9udENv
bW1hbmQiKTsKK30KK2Z1bmN0aW9uIHBhc3RlRm9udENvbW1hbmQoKSB7CisgICAgaWYgKGNvbW1h
bmREZWxheSA+IDApIHsKKyAgICAgICAgcXVldWVDb21tYW5kKGV4ZWNQYXN0ZUZvbnRDb21tYW5k
LCBjb21tYW5kQ291bnQgKiBjb21tYW5kRGVsYXkpOworICAgICAgICBjb21tYW5kQ291bnQrKzsK
KyAgICB9IGVsc2UKKyAgICAgICAgZXhlY1Bhc3RlRm9udENvbW1hbmQoKTsKK30KKworLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKIGZ1bmN0aW9uIGV4
ZWNDcmVhdGVMaW5rQ29tbWFuZCh1cmwpIHsKICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiQ3Jl
YXRlTGluayIsIGZhbHNlLCB1cmwpOwogICAgIGRlYnVnRm9yRHVtcEFzVGV4dCgiZXhlY0NyZWF0
ZUxpbmtDb21tYW5kIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21t
YW5kL21hYy9jb3B5Rm9udC1wYXN0ZUZvbnQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvZXhlY0NvbW1hbmQvbWFjL2NvcHlGb250LXBhc3RlRm9udC1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjYxYjE4NTEzNzE3NjIwOWRjY2UwNTZjNzZmNTYzOTY3ZTliZWE0ODQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL21hYy9jb3B5Rm9u
dC1wYXN0ZUZvbnQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDIwIEBACis8aHRtbD4KKzxoZWFk
PgorICAgIDxzdHlsZT4KKyNjb3B5IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAg
ICBmb250LWZhbWlseTogQXJpYWw7CisgICAgZm9udC1zaXplOiAyMHB4OworICAgIGZvbnQtd2Vp
Z2h0OiBib2xkOworICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgICBjb2xvcjogeWVsbG93Owor
ICAgIHRleHQtc2hhZG93OiBibGFjayAxcHggMXB4OworICAgIHZlcnRpY2FsLWFsaWduOiBzdWI7
Cit9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImNvcHkiPmNv
cHkgdGhpczwvZGl2PgorICAgIDxkaXYgaWQ9InBhc3RlIiBjb250ZW50ZWRpdGFibGU9IiI+PGZv
bnQgY29sb3I9IiNmZmZmMDAiIGZhY2U9IkFyaWFsIj48c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1j
b2xvcjogcmdiKDAsIDEyOCwgMCk7IGZvbnQtc2l6ZTogMjBweDsgdGV4dC1zaGFkb3c6IHJnYigw
LCAwLCAwKSAxcHggMXB4OyI+PGI+PGk+PHN1Yj5wYXN0ZSBoZXJlPC9zdWI+PC9pPjwvYj48L3Nw
YW4+PC9mb250PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9leGVjQ29tbWFuZC9tYWMvY29weUZvbnQtcGFzdGVGb250Lmh0bWwgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL21hYy9jb3B5Rm9udC1wYXN0ZUZvbnQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yYTBkYmUxMjhkNGU2MDYzOTdiNTJjNTdmOGMwNzZmY2NlMzliNTYxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9tYWMvY29weUZv
bnQtcGFzdGVGb250Lmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8
c2NyaXB0IHNyYz0uLi8uLi9lZGl0aW5nLmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CitmdW5j
dGlvbiBlZGl0aW5nVGVzdCgpIHsKKyAgICBsZXQgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVj
dGlvbigpOworCisgICAgbGV0IGNvcHlSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7Cisg
ICAgY29weVJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29weSIpKTsKKyAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7CisgICAgc2VsZWN0aW9u
LmFkZFJhbmdlKGNvcHlSYW5nZSk7CisgICAgY29weUZvbnRDb21tYW5kKCk7CisKKyAgICBsZXQg
cGFzdGVSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CisgICAgcGFzdGVSYW5nZS5zZWxl
Y3ROb2RlQ29udGVudHMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhc3RlIikpOworICAgIHNl
bGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTsKKyAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocGFzdGVS
YW5nZSk7CisgICAgcGFzdGVGb250Q29tbWFuZCgpOworCisgICAgc2VsZWN0aW9uLnJlbW92ZUFs
bFJhbmdlcygpOworfQorICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyNjb3B5IHsKKyAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICBmb250LWZhbWlseTogQXJpYWw7CisgICAgZm9u
dC1zaXplOiAyMHB4OworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgIGZvbnQtc3R5bGU6IGl0
YWxpYzsKKyAgICBjb2xvcjogeWVsbG93OworICAgIHRleHQtc2hhZG93OiBibGFjayAxcHggMXB4
OworICAgIHZlcnRpY2FsLWFsaWduOiBzdWI7Cit9CisjcGFzdGUgeworICAgIG91dGxpbmU6IG5v
bmU7Cit9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImNvcHki
PmNvcHkgdGhpczwvZGl2PgorICAgIDxkaXYgaWQ9InBhc3RlIiBjb250ZW50ZWRpdGFibGU+cGFz
dGUgaGVyZTwvZGl2PgorICAgIDxzY3JpcHQ+CitydW5FZGl0aW5nVGVzdCgpOworICAgIDwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCAwZTNlN2JiN2Y1NzJjZjFiYjQ3M2YwMzUzNTdmZTE3OTE1YmQwY2I0Li5j
NjcxMmEwMGIwODJjY2Y4ZjAyODkzMDdiYTIzOWU4NjMxMjA0NDRmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOSw2ICs5LDcgQEAKIGFjY2Vzc2liaWxp
dHkvbWFjIFsgUGFzcyBdCiBjb21wb3NpdGluZy9zY3JvbGxpbmcvYXN5bmMtb3ZlcmZsb3ctc2Ny
b2xsaW5nL21hYyBbIFBhc3MgXQogZGlzcGxheWxpc3RzIFsgUGFzcyBdCitlZGl0aW5nL2V4ZWND
b21tYW5kL21hYyBbIFBhc3MgXQogZWRpdGluZy9pbnB1dC9jb2NvYSBbIFBhc3MgXQogZWRpdGlu
Zy9tYWMgWyBQYXNzIF0KIGVkaXRpbmcvcGFzdGVib2FyZC9tYWMgWyBQYXNzIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446795</attachid>
            <date>2021-12-10 13:21:46 -0800</date>
            <delta_ts>2021-12-10 16:07:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191379-20211210142145.patch</filename>
            <type>text/plain</type>
            <size>35778</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4Y2I0NmVkYWE5ZDRiYmFkMjA5MzhlNmQ1YmU5YjEyOGI0YjI1ZGE2Li4x
OGU1ODAyNDA1NzllZGYyMGI5MTkzOGQwNTU5NDUyOWEwNjVjMWJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTAgQEAKKzIwMjEtMTItMDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdLV2ViVmlldyBkb2VzbuKAmXQgcmVzcG9uZCB0byAtY29weUZvbnQ6IGFu
ZCAtcGFzdGVGb250OgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkxMzc5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTg3ODY1OT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL2V4
ZWNDb21tYW5kL21hYy9jb3B5Rm9udC1wYXN0ZUZvbnQuaHRtbAorCisgICAgICAgICogZG9tL0RP
TVBhc3RlQWNjZXNzLmg6CisgICAgICAgIEFkZCBgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9u
dHNgICh3aGljaCBjb3JyZXNwb25kcyB0byBgTlNGb250UGJvYXJkYCBvbiBtYWNPUykuCisKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmV2ZW50TmFtZUZvckNsaXBib2FyZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZURhdGFUcmFuc2ZlckZvckNsaXBib2FyZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6Y29weUZvbnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6cGFzdGVGb250KTogQWRkZWQuCisgICAgICAgIEFkZCBwbGF0Zm9ybS1hZ25vc3RpYyBo
YW5kbGluZyBmb3IgYCJDb3B5Rm9udCJgIGFuZCBgIlBhc3RlRm9udCJgIGVkaXRvciBjb21tYW5k
cy4KKworICAgICAgICAqIGVkaXRpbmcvbWFjL0VkaXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6cGxhdGZvcm1Db3B5Rm9udCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yOjpwbGF0Zm9ybVBhc3RlRm9udCk6IEFkZGVkLgorICAgICAgICBNaW1pYyB0aGUgbG9n
aWMgaW4gYC1bV2ViSFRNTFZpZXcgY29weUZvbnQ6XWAvYC1bV2ViSFRNTFZpZXcgcGFzdGVGb250
Ol1gIHRvIGJlIGNvbXBhdGlibGUKKyAgICAgICAgd2l0aCBXSzEgKGkuZS4gdG8gbWFrZSBpdCBl
YXNpZXIgZm9yIGNsaWVudHMgdG8gc3dpdGNoIHRvIFdLMikuCisKKyAgICAgICAgKiBlZGl0aW5n
L2d0ay9FZGl0b3JHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwbGF0Zm9ybUNv
cHlGb250KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBsYXRmb3JtUGFzdGVG
b250KTogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yOjpwbGF0Zm9ybUNvcHlGb250KTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OnBsYXRmb3JtUGFzdGVGb250KTogQWRkZWQuCisgICAgICAgICogZWRp
dGluZy9saWJ3cGUvRWRpdG9yTGliV1BFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6
cGxhdGZvcm1Db3B5Rm9udCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwbGF0
Zm9ybVBhc3RlRm9udCk6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvd2luL0VkaXRvcldpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBsYXRmb3JtQ29weUZvbnQpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGxhdGZvcm1QYXN0ZUZvbnQpOiBBZGRlZC4KKyAg
ICAgICAgQWRkIHN0dWJzIGZvciBvdGhlciBwbGF0Zm9ybXMuCisKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUNvcHlGb250KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlUGFzdGVGb250KTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVDb21tYW5kTWFwKToKKyAgICAgICAgSG9vayBgIkNvcHlGb250
ImAgYW5kIGAiUGFzdGVGb250ImAgZWRpdG9yIGNvbW1hbmRzIHVwIHRvIGBkb2N1bWVudC5leGVj
Q29tbWFuZGAuCisKIDIwMjEtMTItMTAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgogCiAgICAgICAgIEFsbG93IGBQYXN0ZWJvYXJkOjpyZWFkQnVmZmVyYCB0byByZWFkIGZyb20g
dGhlIHBhc3RlYm9hcmQgYXMgYSB3aG9sZSBpbnN0ZWFkIG9mIGEgc3BlY2lmaWMgaXRlbQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCAzNTM1YzVkOTVmNzViNzQ2NTg0ODNjYmM2ZWQzYmE4NDY5OTJlZjIyLi4yNzYwNDlk
NWUwNDIxOTJlZThiZDAzMDQxODJiNzAxMTgwMDkyMDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDIxLTEyLTA3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAg
ICAgICBXS1dlYlZpZXcgZG9lc27igJl0IHJlc3BvbmQgdG8gLWNvcHlGb250OiBhbmQgLXBhc3Rl
Rm9udDoKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
MTM3OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDU4Nzg2NTk+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXcubW06CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tOgorICAg
ICAgICBBZGQgYC1jb3B5Rm9udDpgIGFuZCBgLXBhc3RlRm9udDpgIG1ldGhvZHMgdmlhIGBXRUJD
T1JFX0NPTU1BTkRgLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OnBhc3RlQWNjZXNzQ2F0ZWdvcnlGb3JDb21tYW5kKToKKyAgICAgICAg
VGhlIGBQYXN0ZUZvbnRgIGNvbW1hbmQgc2hvdWxkIGJlIGNhdGVnb3JpemVkIGFzIGBET01QYXN0
ZUFjY2Vzc0NhdGVnb3J5OjpGb250c2AuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OnBhc3RlYm9hcmROYW1lRm9yQWNjZXNzQ2F0
ZWdvcnkpOgorICAgICAgICAoV2ViS2l0OjpwYXN0ZWJvYXJkRm9yQWNjZXNzQ2F0ZWdvcnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtUGFzdGVDb21tYW5kKToKKyAgICAgICAgQ29y
cmVsYXRlIGBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250c2Agd2l0aCBgTlNGb250UGJvYXJk
YC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
OgorICAgICAgICAocGFzdGVib2FyZE5hbWVGb3JBY2Nlc3NDYXRlZ29yeSk6CisgICAgICAgIChw
YXN0ZWJvYXJkRm9yQWNjZXNzQ2F0ZWdvcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OndpbGxQZXJm
b3JtUGFzdGVDb21tYW5kKToKKyAgICAgICAgQ29ycmVsYXRlIGBET01QYXN0ZUFjY2Vzc0NhdGVn
b3J5OjpGb250c2Agd2l0aCBgVUlQYXN0ZWJvYXJkTmFtZUdlbmVyYWxgLgorCiAyMDIxLTEyLTEw
ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBgUGFz
dGVib2FyZDo6cmVhZEJ1ZmZlcmAgdG8gcmVhZCBmcm9tIHRoZSBwYXN0ZWJvYXJkIGFzIGEgd2hv
bGUgaW5zdGVhZCBvZiBhIHNwZWNpZmljIGl0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01QYXN0ZUFjY2Vzcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBhc3RlQWNjZXNz
LmgKaW5kZXggZGI1YTY0NGNhNjI0N2ZkOWJhMWUwMWIyZThiNzNhNzIwMzEyMDI1ZC4uYzdlM2Y4
YjlkYzgzMjU3NzA1Zjc1ZWZkMmRlMjkzMzVlNzQ2ODZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RPTVBhc3RlQWNjZXNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBh
c3RlQWNjZXNzLmgKQEAgLTMxLDYgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVt
IGNsYXNzIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgOiB1aW50OF90IHsKICAgICBHZW5lcmFsLAor
ICAgIEZvbnRzLAogfTsKIAogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1BvbGljeSA6IHVpbnQ4
X3QgewpAQCAtNTIsNyArNTMsOCBAQCBuYW1lc3BhY2UgV1RGIHsKIHRlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeT4gewogICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0
ZWdvcnksCi0gICAgICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWwK
KyAgICAgICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbCwKKyAgICAg
ICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9udHMKICAgICA+OwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDE3MjRjZjBlNTBiYWE1YjliMjQxMzA0ODFl
ZTcyNGNiNzgyMDdhYTQuLjI4MzFjZDNmYTljNmE0ZjlmZjlhOWEwZTI1YzNiNDJlNTJkMWI2NGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTM3Miw4ICszNzIsMTAgQEAgYm9vbCBF
ZGl0b3I6OmNhbkVkaXRSaWNobHkoKSBjb25zdAogCiBlbnVtIGNsYXNzIENsaXBib2FyZEV2ZW50
S2luZCB7CiAgICAgQ29weSwKKyAgICBDb3B5Rm9udCwKICAgICBDdXQsCiAgICAgUGFzdGUsCisg
ICAgUGFzdGVGb250LAogICAgIFBhc3RlQXNQbGFpblRleHQsCiAgICAgUGFzdGVBc1F1b3RhdGlv
biwKICAgICBCZWZvcmVDb3B5LApAQCAtMzg1LDEyICszODcsMTQgQEAgc3RhdGljIEF0b21TdHJp
bmcgZXZlbnROYW1lRm9yQ2xpcGJvYXJkRXZlbnQoQ2xpcGJvYXJkRXZlbnRLaW5kIGtpbmQpCiB7
CiAgICAgc3dpdGNoIChraW5kKSB7CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OkNvcHk6
CisgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OkNvcHlGb250OgogICAgICAgICByZXR1cm4g
ZXZlbnROYW1lcygpLmNvcHlFdmVudDsKICAgICBjYXNlIENsaXBib2FyZEV2ZW50S2luZDo6Q3V0
OgogICAgICAgICByZXR1cm4gZXZlbnROYW1lcygpLmN1dEV2ZW50OwogICAgIGNhc2UgQ2xpcGJv
YXJkRXZlbnRLaW5kOjpQYXN0ZToKICAgICBjYXNlIENsaXBib2FyZEV2ZW50S2luZDo6UGFzdGVB
c1BsYWluVGV4dDoKICAgICBjYXNlIENsaXBib2FyZEV2ZW50S2luZDo6UGFzdGVBc1F1b3RhdGlv
bjoKKyAgICBjYXNlIENsaXBib2FyZEV2ZW50S2luZDo6UGFzdGVGb250OgogICAgICAgICByZXR1
cm4gZXZlbnROYW1lcygpLnBhc3RlRXZlbnQ7CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6
OkJlZm9yZUNvcHk6CiAgICAgICAgIHJldHVybiBldmVudE5hbWVzKCkuYmVmb3JlY29weUV2ZW50
OwpAQCAtNDA3LDYgKzQxMSw3IEBAIHN0YXRpYyBSZWY8RGF0YVRyYW5zZmVyPiBjcmVhdGVEYXRh
VHJhbnNmZXJGb3JDbGlwYm9hcmRFdmVudChEb2N1bWVudCYgZG9jdW1lbnQsCiB7CiAgICAgc3dp
dGNoIChraW5kKSB7CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OkNvcHk6CisgICAgY2Fz
ZSBDbGlwYm9hcmRFdmVudEtpbmQ6OkNvcHlGb250OgogICAgIGNhc2UgQ2xpcGJvYXJkRXZlbnRL
aW5kOjpDdXQ6CiAgICAgICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckNvcHlBbmRQ
YXN0ZShkb2N1bWVudCwgRGF0YVRyYW5zZmVyOjpTdG9yZU1vZGU6OlJlYWRXcml0ZSwgbWFrZVVu
aXF1ZTxTdGF0aWNQYXN0ZWJvYXJkPigpKTsKICAgICBjYXNlIENsaXBib2FyZEV2ZW50S2luZDo6
UGFzdGVBc1BsYWluVGV4dDoKQEAgLTQyMCw2ICs0MjUsNyBAQCBzdGF0aWMgUmVmPERhdGFUcmFu
c2Zlcj4gY3JlYXRlRGF0YVRyYW5zZmVyRm9yQ2xpcGJvYXJkRXZlbnQoRG9jdW1lbnQmIGRvY3Vt
ZW50LAogICAgICAgICBGQUxMVEhST1VHSDsKICAgICBjYXNlIENsaXBib2FyZEV2ZW50S2luZDo6
UGFzdGU6CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3RlQXNRdW90YXRpb246Cisg
ICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3RlRm9udDoKICAgICAgICAgcmV0dXJuIERh
dGFUcmFuc2Zlcjo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKGRvY3VtZW50LCBEYXRhVHJhbnNmZXI6
OlN0b3JlTW9kZTo6UmVhZG9ubHksIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZShQ
YWdlUGFzdGVib2FyZENvbnRleHQ6OmNyZWF0ZShkb2N1bWVudC5wYWdlSUQoKSkpKTsKICAgICBj
YXNlIENsaXBib2FyZEV2ZW50S2luZDo6QmVmb3JlQ29weToKICAgICBjYXNlIENsaXBib2FyZEV2
ZW50S2luZDo6QmVmb3JlQ3V0OgpAQCAtMTQwNCw2ICsxNDEwLDIxIEBAIHZvaWQgRWRpdG9yOjpj
b3B5KEZyb21NZW51T3JLZXlCaW5kaW5nIGZyb21NZW51T3JLZXlCaW5kaW5nKQogICAgIHBlcmZv
cm1DdXRPckNvcHkoQ29weUFjdGlvbik7CiB9CiAKK3ZvaWQgRWRpdG9yOjpjb3B5Rm9udChGcm9t
TWVudU9yS2V5QmluZGluZyBmcm9tTWVudU9yS2V5QmluZGluZykKK3sKKyAgICBTZXRGb3JTY29w
ZTxib29sPiBjb3B5U2NvcGUgeyBtX2NvcHlpbmdGcm9tTWVudU9yS2V5QmluZGluZywgZnJvbU1l
bnVPcktleUJpbmRpbmcgPT0gRnJvbU1lbnVPcktleUJpbmRpbmc6OlllcyB9OworICAgIGlmICh0
cnlESFRNTENvcHkoKSkKKyAgICAgICAgcmV0dXJuOyAvLyBESFRNTCBkaWQgdGhlIHdob2xlIG9w
ZXJhdGlvbgorICAgIGlmICghY2FuQ29weSgpKSB7CisgICAgICAgIFN5c3RlbVNvdW5kTWFuYWdl
cjo6c2luZ2xldG9uKCkuc3lzdGVtQmVlcCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgd2lsbFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKHNlbGVjdGVkUmFuZ2UoKSk7CisgICAg
cGxhdGZvcm1Db3B5Rm9udCgpOworICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7
Cit9CisKIHZvaWQgRWRpdG9yOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uRm9yQ3V0
KGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQog
ewogICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKQEAgLTE1
MTIsNiArMTUzMywxOSBAQCB2b2lkIEVkaXRvcjo6cGFzdGVBc1F1b3RhdGlvbihGcm9tTWVudU9y
S2V5QmluZGluZyBmcm9tTWVudU9yS2V5QmluZGluZykKICAgICAgICAgcGFzdGVBc1BsYWluVGV4
dFdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKTsKIH0KIAordm9pZCBFZGl0b3I6OnBhc3RlRm9u
dChGcm9tTWVudU9yS2V5QmluZGluZyBmcm9tTWVudU9yS2V5QmluZGluZykKK3sKKyAgICBTZXRG
b3JTY29wZTxib29sPiBwYXN0ZVNjb3BlIHsgbV9wYXN0aW5nRnJvbU1lbnVPcktleUJpbmRpbmcs
IGZyb21NZW51T3JLZXlCaW5kaW5nID09IEZyb21NZW51T3JLZXlCaW5kaW5nOjpZZXMgfTsKKwor
ICAgIGlmICghZGlzcGF0Y2hDbGlwYm9hcmRFdmVudChmaW5kRXZlbnRUYXJnZXRGcm9tU2VsZWN0
aW9uKCksIENsaXBib2FyZEV2ZW50S2luZDo6UGFzdGVGb250KSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIGlmICghY2FuUGFzdGUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHVwZGF0ZU1hcmtlcnNG
b3JXb3Jkc0FmZmVjdGVkQnlFZGl0aW5nKGZhbHNlKTsKKyAgICBSZXNvdXJjZUNhY2hlVmFsaWRh
dGlvblN1cHByZXNzb3IgdmFsaWRhdGlvblN1cHByZXNzb3IoZG9jdW1lbnQoKS5jYWNoZWRSZXNv
dXJjZUxvYWRlcigpKTsKKyAgICBwbGF0Zm9ybVBhc3RlRm9udCgpOworfQorCiB2b2lkIEVkaXRv
cjo6cXVvdGVGcmFnbWVudEZvclBhc3RpbmcoRG9jdW1lbnRGcmFnbWVudCYgZnJhZ21lbnQpCiB7
CiAgICAgYXV0byBibG9ja1F1b3RlID0gSFRNTFF1b3RlRWxlbWVudDo6Y3JlYXRlKGJsb2NrcXVv
dGVUYWcsIGRvY3VtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggMDFmZTBiNWUw
NDRlZjYzZjI2YTcxYjQ3MmVmOThiMTFjMjI4YjkxYy4uYjAzMTM2ZmZjZjFmNmIzN2U2YjA3YWI2
MjMyZTYxZjY2ZGVlNzU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0xOTcsMTEgKzE5
NywxMyBAQCBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBGcm9tTWVudU9yS2V5QmluZGluZyA6IGJv
b2wgeyBObywgWWVzIH07CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjdXQoRnJvbU1lbnVPcktl
eUJpbmRpbmcgPSBGcm9tTWVudU9yS2V5QmluZGluZzo6Tm8pOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgY29weShGcm9tTWVudU9yS2V5QmluZGluZyA9IEZyb21NZW51T3JLZXlCaW5kaW5nOjpO
byk7CisgICAgdm9pZCBjb3B5Rm9udChGcm9tTWVudU9yS2V5QmluZGluZyA9IEZyb21NZW51T3JL
ZXlCaW5kaW5nOjpObyk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBhc3RlKEZyb21NZW51
T3JLZXlCaW5kaW5nID0gRnJvbU1lbnVPcktleUJpbmRpbmc6Ok5vKTsKICAgICB2b2lkIHBhc3Rl
KFBhc3RlYm9hcmQmLCBGcm9tTWVudU9yS2V5QmluZGluZyA9IEZyb21NZW51T3JLZXlCaW5kaW5n
OjpObyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwYXN0ZUFzUGxhaW5UZXh0KEZyb21NZW51
T3JLZXlCaW5kaW5nID0gRnJvbU1lbnVPcktleUJpbmRpbmc6Ok5vKTsKICAgICB2b2lkIHBhc3Rl
QXNRdW90YXRpb24oRnJvbU1lbnVPcktleUJpbmRpbmcgPSBGcm9tTWVudU9yS2V5QmluZGluZzo6
Tm8pOworICAgIHZvaWQgcGFzdGVGb250KEZyb21NZW51T3JLZXlCaW5kaW5nID0gRnJvbU1lbnVP
cktleUJpbmRpbmc6Ok5vKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBlcmZvcm1EZWxldGUo
KTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29weVVSTChjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmIHRpdGxlKTsKQEAgLTU5Miw2ICs1OTQsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFz
dGVXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkKiwgT3B0aW9uU2V0PFBhc3RlT3B0aW9uPik7CiAg
ICAgU3RyaW5nIHBsYWluVGV4dEZyb21QYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmRQbGFpblRl
eHQmKTsKIAorICAgIHZvaWQgcGxhdGZvcm1Db3B5Rm9udCgpOworICAgIHZvaWQgcGxhdGZvcm1Q
YXN0ZUZvbnQoKTsKKwogICAgIHZvaWQgcXVvdGVGcmFnbWVudEZvclBhc3RpbmcoRG9jdW1lbnRG
cmFnbWVudCYpOwogCiAgICAgdm9pZCByZXZlYWxTZWxlY3Rpb25BZnRlckVkaXRpbmdPcGVyYXRp
b24oY29uc3QgU2Nyb2xsQWxpZ25tZW50JiA9IFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJ
Zk5lZWRlZCwgUmV2ZWFsRXh0ZW50T3B0aW9uID0gRG9Ob3RSZXZlYWxFeHRlbnQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggZjE4NzU5ZDA2MmRmNTk2Zjk0
NTdkOTE5MGE1NzBhNzE0OTJlMzRmYy4uNjFhMWVhNmI5NzU3YzdiYjc1NWY5NDJkZWFjODgwMTE1
ZTdkNGRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC0y
NDIsNiArMjQyLDEyIEBAIHN0YXRpYyBib29sIGV4ZWN1dGVDb3B5KEZyYW1lJiBmcmFtZSwgRXZl
bnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAorc3RhdGljIGJvb2wgZXhlY3V0ZUNvcHlGb250KEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBF
ZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBmcmFtZS5l
ZGl0b3IoKS5jb3B5Rm9udChzb3VyY2UgPT0gQ29tbWFuZEZyb21NZW51T3JLZXlCaW5kaW5nID8g
RWRpdG9yOjpGcm9tTWVudU9yS2V5QmluZGluZzo6WWVzIDogRWRpdG9yOjpGcm9tTWVudU9yS2V5
QmluZGluZzo6Tm8pOworICAgIHJldHVybiB0cnVlOworfQorCiBzdGF0aWMgYm9vbCBleGVjdXRl
Q3JlYXRlTGluayhGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29u
c3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICAvLyBGSVhNRTogSWYgdXNlckludGVyZmFjZSBpcyB0
cnVlLCB3ZSBzaG91bGQgZGlzcGxheSBhIGRpYWxvZyBib3ggdG8gbGV0IHRoZSB1c2VyIGVudGVy
IGEgVVJMLgpAQCAtOTA2LDYgKzkxMiwyMSBAQCBzdGF0aWMgYm9vbCBleGVjdXRlUGFzdGUoRnJh
bWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBjb25zdAogICAg
IHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgYm9vbCBleGVjdXRlUGFzdGVGb250KEZyYW1lJiBm
cmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJikK
K3sKKyAgICBpZiAoc291cmNlID09IENvbW1hbmRGcm9tTWVudU9yS2V5QmluZGluZykgeworICAg
ICAgICBVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvciB0eXBpbmdHZXN0dXJlSW5kaWNhdG9yKGZy
YW1lKTsKKyAgICAgICAgZnJhbWUuZWRpdG9yKCkucGFzdGVGb250KEVkaXRvcjo6RnJvbU1lbnVP
cktleUJpbmRpbmc6Olllcyk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlm
ICghZnJhbWUucmVxdWVzdERPTVBhc3RlQWNjZXNzKERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkZv
bnRzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZnJhbWUuZWRpdG9yKCkucGFzdGVG
b250KCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKICNpZiBQTEFURk9STShHVEspCiAKIHN0YXRp
YyBib29sIGV4ZWN1dGVQYXN0ZUdsb2JhbFNlbGVjdGlvbihGcmFtZSYgZnJhbWUsIEV2ZW50Kiwg
RWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIGNvbnN0IFN0cmluZyYpCkBAIC0xNjE0LDYgKzE2
MzUsNyBAQCBzdGF0aWMgY29uc3QgQ29tbWFuZE1hcCYgY3JlYXRlQ29tbWFuZE1hcCgpCiAgICAg
ICAgIHsgIkJvbGQiX3MsIHsgZXhlY3V0ZVRvZ2dsZUJvbGQsIHN1cHBvcnRlZCwgZW5hYmxlZElu
UmljaGx5RWRpdGFibGVUZXh0LCBzdGF0ZUJvbGQsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlv
biwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIkNsZWFy
VGV4dCJfcywgeyBleGVjdXRlQ2xlYXJUZXh0LCBzdXBwb3J0ZWQsIGVuYWJsZWRDbGVhclRleHQs
IHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBhbGxvd0V4ZWN1dGlvbldo
ZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIkNvcHkiX3MsIHsgZXhlY3V0ZUNvcHksIHN1cHBv
cnRlZENvcHlDdXQsIGVuYWJsZWRDb3B5LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dElu
c2VydGlvbiwgYWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWRDb3B5Q3V0IH0gfSwKKyAgICAgICAg
eyAiQ29weUZvbnQiX3MsIHsgZXhlY3V0ZUNvcHlGb250LCBzdXBwb3J0ZWRDb3B5Q3V0LCBlbmFi
bGVkQ29weSwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGFsbG93RXhl
Y3V0aW9uV2hlbkRpc2FibGVkQ29weUN1dCB9IH0sCiAgICAgICAgIHsgIkNyZWF0ZUxpbmsiX3Ms
IHsgZXhlY3V0ZUNyZWF0ZUxpbmssIHN1cHBvcnRlZCwgZW5hYmxlZEluUmljaGx5RWRpdGFibGVU
ZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4
ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIkN1dCJfcywgeyBleGVjdXRlQ3V0
LCBzdXBwb3J0ZWRDb3B5Q3V0LCBlbmFibGVkQ3V0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90
VGV4dEluc2VydGlvbiwgYWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWRDb3B5Q3V0IH0gfSwKICAg
ICAgICAgeyAiRGVmYXVsdFBhcmFncmFwaFNlcGFyYXRvciJfcywgeyBleGVjdXRlRGVmYXVsdFBh
cmFncmFwaFNlcGFyYXRvciwgc3VwcG9ydGVkLCBlbmFibGVkLCBzdGF0ZU5vbmUsIHZhbHVlRGVm
YXVsdFBhcmFncmFwaFNlcGFyYXRvciwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1
dGlvbldoZW5EaXNhYmxlZH0gfSwKQEAgLTE3MTMsNiArMTczNSw3IEBAIHN0YXRpYyBjb25zdCBD
b21tYW5kTWFwJiBjcmVhdGVDb21tYW5kTWFwKCkKICAgICAgICAgeyAiUGFzdGVBbmRNYXRjaFN0
eWxlIl9zLCB7IGV4ZWN1dGVQYXN0ZUFuZE1hdGNoU3R5bGUsIHN1cHBvcnRlZFBhc3RlLCBlbmFi
bGVkUGFzdGUsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBhbGxvd0V4
ZWN1dGlvbldoZW5EaXNhYmxlZFBhc3RlIH0gfSwKICAgICAgICAgeyAiUGFzdGVBc1BsYWluVGV4
dCJfcywgeyBleGVjdXRlUGFzdGVBc1BsYWluVGV4dCwgc3VwcG9ydGVkUGFzdGUsIGVuYWJsZWRQ
YXN0ZSwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGFsbG93RXhlY3V0
aW9uV2hlbkRpc2FibGVkUGFzdGUgfSB9LAogICAgICAgICB7ICJQYXN0ZUFzUXVvdGF0aW9uIl9z
LCB7IGV4ZWN1dGVQYXN0ZUFzUXVvdGF0aW9uLCBzdXBwb3J0ZWRQYXN0ZSwgZW5hYmxlZFBhc3Rl
LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgYWxsb3dFeGVjdXRpb25X
aGVuRGlzYWJsZWRQYXN0ZSB9IH0sCisgICAgICAgIHsgIlBhc3RlRm9udCJfcywgeyBleGVjdXRl
UGFzdGVGb250LCBzdXBwb3J0ZWRQYXN0ZSwgZW5hYmxlZFBhc3RlLCBzdGF0ZU5vbmUsIHZhbHVl
TnVsbCwgbm90VGV4dEluc2VydGlvbiwgYWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWRQYXN0ZSB9
IH0sCiAgICAgICAgIHsgIlByaW50Il9zLCB7IGV4ZWN1dGVQcmludCwgc3VwcG9ydGVkLCBlbmFi
bGVkLCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4
ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIlJlZG8iX3MsIHsgZXhlY3V0ZVJl
ZG8sIHN1cHBvcnRlZCwgZW5hYmxlZFJlZG8sIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0
SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICAgICAgICAg
eyAiUmVtb3ZlRm9ybWF0Il9zLCB7IGV4ZWN1dGVSZW1vdmVGb3JtYXQsIHN1cHBvcnRlZCwgZW5h
YmxlZFJhbmdlSW5FZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5z
ZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0VkaXRvckd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2d0ay9FZGl0b3JHdGsuY3BwCmluZGV4IDYxYzU4MWEyZTg4MjI5YmRhMTViOTNm
MWNlZDNmZjZiNmU4OGI2MzguLjM2YzA0ZDYxMGQ4MmNjNmMwYTljMGQ2OWNlMTM1ZDgzY2IwNmE2
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0VkaXRvckd0ay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9ndGsvRWRpdG9yR3RrLmNwcApAQCAtNjUsNiAr
NjUsMTQgQEAgdm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFz
dGVib2FyZCwgT3B0aW9uU2V0PFBhc3RlT3B0aW9uPgogICAgICAgICBwYXN0ZUFzRnJhZ21lbnQo
ZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgY2FuU21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQo
KnBhc3RlYm9hcmQpLCBjaG9zZVBsYWluVGV4dCwgb3B0aW9ucy5jb250YWlucyhQYXN0ZU9wdGlv
bjo6SWdub3JlTWFpbEJsb2NrcXVvdGUpID8gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6SWdub3Jl
QmxvY2txdW90ZSA6IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsK
IH0KIAordm9pZCBFZGl0b3I6OnBsYXRmb3JtQ29weUZvbnQoKQoreworfQorCit2b2lkIEVkaXRv
cjo6cGxhdGZvcm1QYXN0ZUZvbnQoKQoreworfQorCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYg
ZWxlbWVudFVSTChFbGVtZW50JiBlbGVtZW50KQogewogICAgIGlmIChpczxIVE1MSW1hZ2VFbGVt
ZW50PihlbGVtZW50KSB8fCBpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbSBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQppbmRleCA3MGYwYjcxMWE5ZDM1Yjk2MjA1OGFm
YjExYmE2OGZmYWZiNTVmYjE3Li44NTFmMjk1MGI5MWJhNDQwZDk5OTNhNTIyZjkxNTBmMDFhNTgx
ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCkBAIC0yMzgsNiAr
MjM4LDE0IEBAIHZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQqIHBh
c3RlYm9hcmQsIE9wdGlvblNldDxQYXN0ZU9wdGlvbj4KICAgICAgICAgcGFzdGVBc0ZyYWdtZW50
KGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJk
KCpwYXN0ZWJvYXJkKSwgZmFsc2UsIG9wdGlvbnMuY29udGFpbnMoUGFzdGVPcHRpb246Oklnbm9y
ZU1haWxCbG9ja3F1b3RlKSA/IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6Oklnbm9yZUJsb2NrcXVv
dGUgOiBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0QmxvY2txdW90ZSk7CiB9CiAKK3Zv
aWQgRWRpdG9yOjpwbGF0Zm9ybUNvcHlGb250KCkKK3sKK30KKwordm9pZCBFZGl0b3I6OnBsYXRm
b3JtUGFzdGVGb250KCkKK3sKK30KKwogdm9pZCBFZGl0b3I6Omluc2VydERpY3RhdGlvblBocmFz
ZXMoVmVjdG9yPFZlY3RvcjxTdHJpbmc+PiYmIGRpY3RhdGlvblBocmFzZXMsIGlkIG1ldGFkYXRh
KQogewogICAgIGlmIChtX2RvY3VtZW50LnNlbGVjdGlvbigpLmlzTm9uZSgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9saWJ3cGUvRWRpdG9yTGliV1BFLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvbGlid3BlL0VkaXRvckxpYldQRS5jcHAKaW5kZXggOWRkNDFkNjM2
NjUxMmZkMzg1OTM3YTc2MDhiZDNmYzliNWI5MGY2MC4uODU5NWVkMWRkZjM4OTcxMTQyMmU0NTM5
ODhkYmJjM2RlNWRlODcwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9saWJ3
cGUvRWRpdG9yTGliV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2xpYndwZS9F
ZGl0b3JMaWJXUEUuY3BwCkBAIC05MSw2ICs5MSwxNCBAQCB2b2lkIEVkaXRvcjo6cGFzdGVXaXRo
UGFzdGVib2FyZChQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkLCBPcHRpb25TZXQ8UGFzdGVPcHRpb24+
CiAgICAgICAgIHBhc3RlQXNGcmFnbWVudCgqZnJhZ21lbnQsIGNhblNtYXJ0UmVwbGFjZVdpdGhQ
YXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hvc2VQbGFpblRleHQsIG9wdGlvbnMuY29udGFpbnMo
UGFzdGVPcHRpb246Oklnbm9yZU1haWxCbG9ja3F1b3RlKSA/IE1haWxCbG9ja3F1b3RlSGFuZGxp
bmc6Oklnbm9yZUJsb2NrcXVvdGUgOiBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0Qmxv
Y2txdW90ZSk7CiB9CiAKK3ZvaWQgRWRpdG9yOjpwbGF0Zm9ybUNvcHlGb250KCkKK3sKK30KKwor
dm9pZCBFZGl0b3I6OnBsYXRmb3JtUGFzdGVGb250KCkKK3sKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKExJQldQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFj
L0VkaXRvck1hYy5tbQppbmRleCAyZDE5YjljN2MyMmIzZWJjMjY3YzY3NjEwNmM4OTJmMDliNzc3
NTNkLi4xZjkyZDYwYzMxNmNhYTFhMDllZDkwNTlmZmQ2ZGU0ZmZmYzU3ZTZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCkBAIC0zMSwxMCArMzEsMTUgQEAKICNpbXBv
cnQgIkJsb2IuaCIKICNpbXBvcnQgIkNTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCIKICNpbXBv
cnQgIkNTU1ZhbHVlUG9vbC5oIgorI2ltcG9ydCAiQ29sb3IuaCIKKyNpbXBvcnQgIkNvbG9yQ29j
b2EuaCIKKyNpbXBvcnQgIkNvbG9yU2VyaWFsaXphdGlvbi5oIgogI2ltcG9ydCAiRGF0YVRyYW5z
ZmVyLmgiCiAjaW1wb3J0ICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW1wb3J0ICJFZGl0aW5nLmgi
CiAjaW1wb3J0ICJFZGl0b3JDbGllbnQuaCIKKyNpbXBvcnQgIkZvbnRBdHRyaWJ1dGVzLmgiCisj
aW1wb3J0ICJGb250U2hhZG93LmgiCiAjaW1wb3J0ICJGcmFtZS5oIgogI2ltcG9ydCAiRnJhbWVW
aWV3LmgiCiAjaW1wb3J0ICJIVE1MQ29udmVydGVyLmgiCkBAIC01MCwxMSArNTUsMTMgQEAKICNp
bXBvcnQgIlJlbmRlckltYWdlLmgiCiAjaW1wb3J0ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
aCIKICNpbXBvcnQgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKKyNpbXBvcnQgIlNoYXJlZEJ1
ZmZlci5oIgogI2ltcG9ydCAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW1wb3J0ICJXZWJDb250ZW50
UmVhZGVyLmgiCiAjaW1wb3J0ICJXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMuaCIKICNpbXBv
cnQgIm1hcmt1cC5oIgogI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgorI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL2NvY29hL05TVVJMRXh0cmFzLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTk5LDYgKzEwNiw4NyBAQCB2b2lkIEVkaXRvcjo6cGFzdGVXaXRoUGFz
dGVib2FyZChQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkLCBPcHRpb25TZXQ8UGFzdGVPcHRpb24+CiAg
ICAgY2xpZW50KCktPnNldEluc2VydGlvblBhc3RlYm9hcmQoU3RyaW5nKCkpOwogfQogCit2b2lk
IEVkaXRvcjo6cGxhdGZvcm1Db3B5Rm9udCgpCit7CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgorICAgIFBhc3RlYm9hcmQgcGFzdGVib2FyZChQYWdlUGFzdGVib2FyZENvbnRl
eHQ6OmNyZWF0ZShtX2RvY3VtZW50LnBhZ2VJRCgpKSwgTlNGb250UGJvYXJkKTsKK0FMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorCisgICAgYXV0byBmb250U2FtcGxlU3RyaW5nID0g
YWRvcHROUyhbW05TQXR0cmlidXRlZFN0cmluZyBhbGxvY10gaW5pdFdpdGhTdHJpbmc6QCJ4IiBh
dHRyaWJ1dGVzOmZvbnRBdHRyaWJ1dGVzQXRTZWxlY3Rpb25TdGFydCgpLmNyZWF0ZURpY3Rpb25h
cnkoKS5nZXQoKV0pOworICAgIGF1dG8gZm9udERhdGEgPSBSZXRhaW5QdHIoW2ZvbnRTYW1wbGVT
dHJpbmcgUlRGRnJvbVJhbmdlOk5TTWFrZVJhbmdlKDAsIFtmb250U2FtcGxlU3RyaW5nIGxlbmd0
aF0pIGRvY3VtZW50QXR0cmlidXRlczpAeyB9XSk7CisKKyAgICBQYXN0ZWJvYXJkQnVmZmVyIHBh
c3RlYm9hcmRCdWZmZXI7CisgICAgcGFzdGVib2FyZEJ1ZmZlci5jb250ZW50T3JpZ2luID0gbV9k
b2N1bWVudC5vcmlnaW5JZGVudGlmaWVyRm9yUGFzdGVib2FyZCgpOworICAgIHBhc3RlYm9hcmRC
dWZmZXIudHlwZSA9IGxlZ2FjeUZvbnRQYXN0ZWJvYXJkVHlwZSgpOworICAgIHBhc3RlYm9hcmRC
dWZmZXIuZGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGZvbnREYXRhLmdldCgpKTsKKyAgICBw
YXN0ZWJvYXJkLndyaXRlKHBhc3RlYm9hcmRCdWZmZXIpOworfQorCit2b2lkIEVkaXRvcjo6cGxh
dGZvcm1QYXN0ZUZvbnQoKQoreworQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
KyAgICBQYXN0ZWJvYXJkIHBhc3RlYm9hcmQoUGFnZVBhc3RlYm9hcmRDb250ZXh0OjpjcmVhdGUo
bV9kb2N1bWVudC5wYWdlSUQoKSksIE5TRm9udFBib2FyZCk7CitBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKKworICAgIGNsaWVudCgpLT5zZXRJbnNlcnRpb25QYXN0ZWJvYXJkKHBh
c3RlYm9hcmQubmFtZSgpKTsKKworICAgIFJldGFpblB0cjxOU0RhdGE+IGZvbnREYXRhOworICAg
IGlmIChhdXRvIGJ1ZmZlciA9IHBhc3RlYm9hcmQucmVhZEJ1ZmZlcihzdGQ6Om51bGxvcHQsIGxl
Z2FjeUZvbnRQYXN0ZWJvYXJkVHlwZSgpKSkKKyAgICAgICAgZm9udERhdGEgPSBidWZmZXItPmNy
ZWF0ZU5TRGF0YSgpOworICAgIGF1dG8gZm9udFNhbXBsZVN0cmluZyA9IGFkb3B0TlMoW1tOU0F0
dHJpYnV0ZWRTdHJpbmcgYWxsb2NdIGluaXRXaXRoUlRGOmZvbnREYXRhLmdldCgpIGRvY3VtZW50
QXR0cmlidXRlczpuaWxdKTsKKyAgICBhdXRvIGZvbnRBdHRyaWJ1dGVzID0gUmV0YWluUHRyKFtm
b250U2FtcGxlU3RyaW5nIGZvbnRBdHRyaWJ1dGVzSW5SYW5nZTpOU01ha2VSYW5nZSgwLCAxKV0p
OworCisgICAgYXV0byBzdHlsZSA9IE11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZSgpOwor
CisgICAgQ29sb3IgYmFja2dyb3VuZENvbG9yOworICAgIGlmIChOU0NvbG9yICpuc0JhY2tncm91
bmRDb2xvciA9IGR5bmFtaWNfb2JqY19jYXN0PE5TQ29sb3I+KFtmb250QXR0cmlidXRlcyBvYmpl
Y3RGb3JLZXk6TlNCYWNrZ3JvdW5kQ29sb3JBdHRyaWJ1dGVOYW1lXSkpCisgICAgICAgIGJhY2tn
cm91bmRDb2xvciA9IGNvbG9yRnJvbUNvY29hQ29sb3IobnNCYWNrZ3JvdW5kQ29sb3IpOworICAg
IGlmICghYmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgYmFja2dyb3VuZENvbG9y
ID0gQ29sb3I6OnRyYW5zcGFyZW50QmxhY2s7CisgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1By
b3BlcnR5QmFja2dyb3VuZENvbG9yLCBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGJhY2tncm91
bmRDb2xvcikpOworCisgICAgaWYgKE5TRm9udCAqZm9udCA9IGR5bmFtaWNfb2JqY19jYXN0PE5T
Rm9udD4oW2ZvbnRBdHRyaWJ1dGVzIG9iamVjdEZvcktleTpOU0ZvbnRBdHRyaWJ1dGVOYW1lXSkp
IHsKKyAgICAgICAgLy8gRklYTUU6IE5lZWQgbW9yZSBzb3BoaXN0aWNhdGVkIGVzY2FwaW5nIGNv
ZGUgaWYgd2Ugd2FudCB0byBoYW5kbGUgZmFtaWx5IG5hbWVzCisgICAgICAgIC8vIHdpdGggY2hh
cmFjdGVycyBsaWtlIHNpbmdsZSBxdW90ZSBvciBiYWNrc2xhc2ggaW4gdGhlaXIgbmFtZXMuCisg
ICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUZvbnRGYW1pbHksIFtOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OkAiJyVAJyIsIFtmb250IGZhbWlseU5hbWVdXSk7CisgICAgICAg
IHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUZvbnRTaXplLCBDU1NQcmltaXRpdmVWYWx1
ZTo6Y3JlYXRlKFtmb250IHBvaW50U2l6ZV0sIENTU1VuaXRUeXBlOjpDU1NfUFgpKTsKKyAgICAg
ICAgLy8gRklYTUU6IE1hcCB0byB0aGUgZW50aXJlIHJhbmdlIG9mIENTUyB3ZWlnaHQgdmFsdWVz
LgorICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGb250V2VpZ2h0LCAoW05T
Rm9udE1hbmFnZXIuc2hhcmVkRm9udE1hbmFnZXIgd2VpZ2h0T2ZGb250OmZvbnRdID49IDcpID8g
Q1NTVmFsdWVCb2xkIDogQ1NTVmFsdWVOb3JtYWwpOworICAgICAgICBzdHlsZS0+c2V0UHJvcGVy
dHkoQ1NTUHJvcGVydHlGb250U3R5bGUsIChbTlNGb250TWFuYWdlci5zaGFyZWRGb250TWFuYWdl
ciB0cmFpdHNPZkZvbnQ6Zm9udF0gJiBOU0l0YWxpY0ZvbnRNYXNrKSA/IENTU1ZhbHVlSXRhbGlj
IDogQ1NTVmFsdWVOb3JtYWwpOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0eWxlLT5zZXRQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUZvbnRGYW1pbHksICJIZWx2ZXRpY2EiX3MpOworICAgICAgICBzdHls
ZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGb250U2l6ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OmNy
ZWF0ZSgxMiwgQ1NTVW5pdFR5cGU6OkNTU19QWCkpOworICAgICAgICBzdHlsZS0+c2V0UHJvcGVy
dHkoQ1NTUHJvcGVydHlGb250V2VpZ2h0LCBDU1NWYWx1ZU5vcm1hbCk7CisgICAgICAgIHN0eWxl
LT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgQ1NTVmFsdWVOb3JtYWwpOworICAg
IH0KKworICAgIENvbG9yIGZvcmVncm91bmRDb2xvcjsKKyAgICBpZiAoTlNDb2xvciAqbnNGb3Jl
Z3JvdW5kQ29sb3IgPSBkeW5hbWljX29iamNfY2FzdDxOU0NvbG9yPihbZm9udEF0dHJpYnV0ZXMg
b2JqZWN0Rm9yS2V5Ok5TRm9yZWdyb3VuZENvbG9yQXR0cmlidXRlTmFtZV0pKSB7CisgICAgICAg
IGZvcmVncm91bmRDb2xvciA9IGNvbG9yRnJvbUNvY29hQ29sb3IobnNGb3JlZ3JvdW5kQ29sb3Ip
OworICAgICAgICBpZiAoIWZvcmVncm91bmRDb2xvci5pc1ZhbGlkKCkpCisgICAgICAgICAgICBm
b3JlZ3JvdW5kQ29sb3IgPSBDb2xvcjo6dHJhbnNwYXJlbnRCbGFjazsKKyAgICB9IGVsc2UKKyAg
ICAgICAgZm9yZWdyb3VuZENvbG9yID0gQ29sb3I6OmJsYWNrOworICAgIHN0eWxlLT5zZXRQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUNvbG9yLCBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGZvcmVncm91
bmRDb2xvcikpOworCisgICAgRm9udFNoYWRvdyBmb250U2hhZG93OworICAgIGlmIChOU1NoYWRv
dyAqbnNGb250U2hhZG93ID0gZHluYW1pY19vYmpjX2Nhc3Q8TlNTaGFkb3c+KFtmb250QXR0cmli
dXRlcyBvYmplY3RGb3JLZXk6TlNTaGFkb3dBdHRyaWJ1dGVOYW1lXSkpCisgICAgICAgIGZvbnRT
aGFkb3cgPSBmb250U2hhZG93RnJvbU5TU2hhZG93KG5zRm9udFNoYWRvdyk7CisgICAgc3R5bGUt
PnNldFByb3BlcnR5KENTU1Byb3BlcnR5VGV4dFNoYWRvdywgc2VyaWFsaXphdGlvbkZvckNTUyhm
b250U2hhZG93KSk7CisKKyAgICBhdXRvIHN1cGVyc2NyaXB0U3R5bGUgPSBbW2ZvbnRBdHRyaWJ1
dGVzIG9iamVjdEZvcktleTpOU1N1cGVyc2NyaXB0QXR0cmlidXRlTmFtZV0gaW50VmFsdWVdOwor
ICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24sIChzdXBlcnNj
cmlwdFN0eWxlID4gMCkgPyBDU1NWYWx1ZVN1cGVyIDogKChzdXBlcnNjcmlwdFN0eWxlIDwgMCkg
PyBDU1NWYWx1ZVN1YiA6IENTU1ZhbHVlQmFzZWxpbmUpKTsKKworICAgIC8vIEZJWE1FOiBVbmRl
cmxpbmUgd2lucyBoZXJlIGlmIHdlIGhhdmUgYm90aCAoc2VlIGJ1ZyAzNzkwNDQzKS4KKyAgICBh
dXRvIHVuZGVybGluZVN0eWxlID0gW1tmb250QXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNVbmRl
cmxpbmVTdHlsZUF0dHJpYnV0ZU5hbWVdIGludFZhbHVlXTsKKyAgICBhdXRvIHN0cmlrZXRocm91
Z2hTdHlsZSA9IFtbZm9udEF0dHJpYnV0ZXMgb2JqZWN0Rm9yS2V5Ok5TU3RyaWtldGhyb3VnaFN0
eWxlQXR0cmlidXRlTmFtZV0gaW50VmFsdWVdOworICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQ
cm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uc0luRWZmZWN0LCAodW5kZXJsaW5lU3R5bGUgIT0g
TlNVbmRlcmxpbmVTdHlsZU5vbmUpID8gQ1NTVmFsdWVVbmRlcmxpbmUgOiAoKHN0cmlrZXRocm91
Z2hTdHlsZSAhPSBOU1VuZGVybGluZVN0eWxlTm9uZSkgPyBDU1NWYWx1ZUxpbmVUaHJvdWdoIDog
Q1NTVmFsdWVOb25lKSk7CisKKyAgICBhcHBseVN0eWxlVG9TZWxlY3Rpb24oc3R5bGUucHRyKCks
IEVkaXRBY3Rpb246OlBhc3RlRm9udCk7CisKKyAgICBjbGllbnQoKS0+c2V0SW5zZXJ0aW9uUGFz
dGVib2FyZChTdHJpbmcoKSk7Cit9CisKIHZvaWQgRWRpdG9yOjpyZWFkU2VsZWN0aW9uRnJvbVBh
c3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKIHsKICAgICBQYXN0ZWJvYXJk
IHBhc3RlYm9hcmQoUGFnZVBhc3RlYm9hcmRDb250ZXh0OjpjcmVhdGUobV9kb2N1bWVudC5wYWdl
SUQoKSksIHBhc3RlYm9hcmROYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvd2luL0VkaXRvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3dpbi9FZGl0b3JX
aW4uY3BwCmluZGV4IDNiNDA1MmQ0OWU1NTQwMGFhMzBiYmU3ZWE3MTgzYzdhNDZiOGM3YzQuLjFi
NTE5ZTI1ZjA2M2ZjYzI4MWExNjgwNDgxZjAzN2M5YzZhNDUwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvd2luL0VkaXRvcldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy93aW4vRWRpdG9yV2luLmNwcApAQCAtNTIsNiArNTIsMTQgQEAgdm9pZCBFZGl0b3I6
OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwgT3B0aW9uU2V0PFBh
c3RlT3B0aW9uPgogICAgICAgICBwYXN0ZUFzRnJhZ21lbnQoZnJhZ21lbnQucmVsZWFzZU5vbk51
bGwoKSwgY2FuU21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQoKnBhc3RlYm9hcmQpLCBjaG9zZVBs
YWluVGV4dCwgb3B0aW9ucy5jb250YWlucyhQYXN0ZU9wdGlvbjo6SWdub3JlTWFpbEJsb2NrcXVv
dGUpID8gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6SWdub3JlQmxvY2txdW90ZSA6IE1haWxCbG9j
a3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKIH0KIAordm9pZCBFZGl0b3I6OnBs
YXRmb3JtQ29weUZvbnQoKQoreworfQorCit2b2lkIEVkaXRvcjo6cGxhdGZvcm1QYXN0ZUZvbnQo
KQoreworfQorCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgUGxhdGZvcm1EcmFnRGF0YT4KIHN0YXRpYyBS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tUGxhdGZvcm1EYXRhKFBs
YXRmb3JtRHJhZ0RhdGEmIHBsYXRmb3JtRHJhZ0RhdGEsIEZyYW1lJiBmcmFtZSkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggMDk3MzQ0MzAzOTA2MWI4
Zjk4YjBjMDcxNzhlNGFmNmE1MDQ0MDAwYy4uMTcyMmY3MjM4ZGEyMmRhYTQzNTIwMDQ1MWEzMjU3
NzI2YTA0MTZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9X
S1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0K
QEAgLTIwNSw2ICsyMDUsNyBAQCBXRUJDT1JFX0NPTU1BTkQoYWxpZ25KdXN0aWZpZWQpCiBXRUJD
T1JFX0NPTU1BTkQoYWxpZ25MZWZ0KQogV0VCQ09SRV9DT01NQU5EKGFsaWduUmlnaHQpCiBXRUJD
T1JFX0NPTU1BTkQoY29weSkKK1dFQkNPUkVfQ09NTUFORChjb3B5Rm9udCkKIFdFQkNPUkVfQ09N
TUFORChjdXQpCiBXRUJDT1JFX0NPTU1BTkQoZGVsZXRlKQogV0VCQ09SRV9DT01NQU5EKGRlbGV0
ZUJhY2t3YXJkKQpAQCAtMjc4LDYgKzI3OSw3IEBAIFdFQkNPUkVfQ09NTUFORChwYWdlVXApCiBX
RUJDT1JFX0NPTU1BTkQocGFnZVVwQW5kTW9kaWZ5U2VsZWN0aW9uKQogV0VCQ09SRV9DT01NQU5E
KHBhc3RlKQogV0VCQ09SRV9DT01NQU5EKHBhc3RlQXNQbGFpblRleHQpCitXRUJDT1JFX0NPTU1B
TkQocGFzdGVGb250KQogV0VCQ09SRV9DT01NQU5EKHNjcm9sbFBhZ2VEb3duKQogV0VCQ09SRV9D
T01NQU5EKHNjcm9sbFBhZ2VVcCkKIFdFQkNPUkVfQ09NTUFORChzY3JvbGxMaW5lRG93bikKQEAg
LTMzOSwxMSArMzQxLDkgQEAgaW5kaXZpZHVhbCBtZXRob2RzIGhlcmUgd2l0aCBNYWMtc3BlY2lm
aWMgY29kZS4KIEVkaXRpbmctcmVsYXRlZCBtZXRob2RzIHN0aWxsIHVuaW1wbGVtZW50ZWQgdGhh
dCBhcmUgaW1wbGVtZW50ZWQgaW4gV2ViS2l0MToKIAogLSAodm9pZCljb21wbGV0ZTooaWQpc2Vu
ZGVyOwotLSAodm9pZCljb3B5Rm9udDooaWQpc2VuZGVyOwogLSAodm9pZCltYWtlQmFzZVdyaXRp
bmdEaXJlY3Rpb25MZWZ0VG9SaWdodDooaWQpc2VuZGVyOwogLSAodm9pZCltYWtlQmFzZVdyaXRp
bmdEaXJlY3Rpb25OYXR1cmFsOihpZClzZW5kZXI7CiAtICh2b2lkKW1ha2VCYXNlV3JpdGluZ0Rp
cmVjdGlvblJpZ2h0VG9MZWZ0OihpZClzZW5kZXI7Ci0tICh2b2lkKXBhc3RlRm9udDooaWQpc2Vu
ZGVyOwogLSAodm9pZClzY3JvbGxMaW5lRG93bjooaWQpc2VuZGVyOwogLSAodm9pZClzY3JvbGxM
aW5lVXA6KGlkKXNlbmRlcjsKIC0gKHZvaWQpc2hvd0d1ZXNzUGFuZWw6KGlkKXNlbmRlcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KaW5kZXgg
MmQzMDY5Y2NlMjUyNDQ3NTk5ZDFkNmJhZTM3ZDA2YTllMmVjNjcwYi4uZDZmYWY0ODgyMWUwYTBm
YWEwNzNjMTllODUxOGE3YjUyMjQxYTFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KQEAgLTE2Nyw2ICsxNjcsNyBAQCBXRUJDT1JFX0NP
TU1BTkQoYWxpZ25KdXN0aWZpZWQpCiBXRUJDT1JFX0NPTU1BTkQoYWxpZ25MZWZ0KQogV0VCQ09S
RV9DT01NQU5EKGFsaWduUmlnaHQpCiBXRUJDT1JFX0NPTU1BTkQoY29weSkKK1dFQkNPUkVfQ09N
TUFORChjb3B5Rm9udCkKIFdFQkNPUkVfQ09NTUFORChjdXQpCiBXRUJDT1JFX0NPTU1BTkQoZGVs
ZXRlKQogV0VCQ09SRV9DT01NQU5EKGRlbGV0ZUJhY2t3YXJkKQpAQCAtMjQwLDYgKzI0MSw3IEBA
IFdFQkNPUkVfQ09NTUFORChwYWdlVXApCiBXRUJDT1JFX0NPTU1BTkQocGFnZVVwQW5kTW9kaWZ5
U2VsZWN0aW9uKQogV0VCQ09SRV9DT01NQU5EKHBhc3RlKQogV0VCQ09SRV9DT01NQU5EKHBhc3Rl
QXNQbGFpblRleHQpCitXRUJDT1JFX0NPTU1BTkQocGFzdGVGb250KQogV0VCQ09SRV9DT01NQU5E
KHNjcm9sbExpbmVEb3duKQogV0VCQ09SRV9DT01NQU5EKHNjcm9sbExpbmVVcCkKIFdFQkNPUkVf
Q09NTUFORChzY3JvbGxUb0JlZ2lubmluZ09mRG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDg4YzVkZDg5YzE0Zjc5YjVmNTA4Y2Uy
YTU0NDViN2Y3NTMwYjRiNWQuLjExNzU3MzFhMmQwOGM0MjI1NTlhYTZmYzRlNGZhZGZiMDZlZjBj
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBA
IC00NTkwLDYgKzQ1OTAsMTEgQEAgc3RhdGljIE5TUGFzdGVib2FyZE5hbWUgcGFzdGVib2FyZE5h
bWVGb3JBY2Nlc3NDYXRlZ29yeShXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0MKICAgICBzd2l0Y2gg
KHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIHsKICAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
Q2F0ZWdvcnk6OkdlbmVyYWw6CiAgICAgICAgIHJldHVybiBOU1Bhc3RlYm9hcmROYW1lR2VuZXJh
bDsKKworICAgIGNhc2UgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9udHM6CitB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorICAgICAgICByZXR1cm4gTlNGb250
UGJvYXJkOworQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQogfQogCkBA
IC00NTk4LDYgKzQ2MDMsMTEgQEAgc3RhdGljIE5TUGFzdGVib2FyZCAqcGFzdGVib2FyZEZvckFj
Y2Vzc0NhdGVnb3J5KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkKICAgICBzd2l0Y2gg
KHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIHsKICAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
Q2F0ZWdvcnk6OkdlbmVyYWw6CiAgICAgICAgIHJldHVybiBOU1Bhc3RlYm9hcmQuZ2VuZXJhbFBh
c3RlYm9hcmQ7CisKKyAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkZv
bnRzOgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICAgICAgcmV0dXJu
IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhOYW1lOk5TRm9udFBib2FyZF07CitBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDEzYzVkMjkyZWZkZjJiY2U4MDMzZDdjOTQwYWI5
NWNmYjQ5ZmFkNjQuLmQ0MTEwOWZhODQ3ZGUzZjBlMTUzOTk3N2Y4NDgwZDIxNDc2NjQxN2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjUxNiw2ICsyNTE2
LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeT4gcGFzdGVB
Y2Nlc3NDYXRlZ29yeUZvckNvbW1hbmQoY29uc3QKICAgICAgICAgeyAiUGFzdGVBbmRNYXRjaFN0
eWxlIiwgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbCB9LAogICAgICAgICB7ICJQYXN0
ZUFzUXVvdGF0aW9uIiwgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbCB9LAogICAgICAg
ICB7ICJQYXN0ZUFzUGxhaW5UZXh0IiwgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbCB9
LAorICAgICAgICB7ICJQYXN0ZUZvbnQiLCBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250cyB9
LAogICAgIH07CiAKICAgICBhdXRvIGl0ID0gcGFzdGVDb21tYW5kTmFtZXMtPmZpbmQoY29tbWFu
ZE5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNjJiNTA3YjcyNjg0MzY0MGM3NjQ1ODRmMmYwMGUw
NGI2ZmNkN2E0My4uMDMxMmM3NTUzMzAwOTE0OTM3M2NiMjYyZGRiMWJmMzhlMjI4MDc3MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCkBAIC00MTY5LDYgKzQxNjksMTAgQEAgc3RhdGljIFVJUGFzdGVib2FyZE5h
bWUgcGFzdGVib2FyZE5hbWVGb3JBY2Nlc3NDYXRlZ29yeShXZWJDb3JlOjpET01QYXN0ZUFjY2Vz
c0MKICAgICBzd2l0Y2ggKHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIHsKICAgICBjYXNlIFdlYkNvcmU6
OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWw6CiAgICAgICAgIHJldHVybiBVSVBhc3Rl
Ym9hcmROYW1lR2VuZXJhbDsKKworICAgIGNhc2UgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRl
Z29yeTo6Rm9udHM6CisgICAgICAgIC8vIEZJWE1FOiBEb2VzIGlPUyBoYXZlIGEgZGlmZmVyZW50
IHBhc3RlYm9hcmQgZm9yIGZvbnRzPworICAgICAgICByZXR1cm4gVUlQYXN0ZWJvYXJkTmFtZUdl
bmVyYWw7CiAgICAgfQogfQogCkBAIC00MTc3LDYgKzQxODEsMTAgQEAgc3RhdGljIFVJUGFzdGVi
b2FyZCAqcGFzdGVib2FyZEZvckFjY2Vzc0NhdGVnb3J5KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
Q2F0ZWdvcnkKICAgICBzd2l0Y2ggKHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIHsKICAgICBjYXNlIFdl
YkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWw6CiAgICAgICAgIHJldHVybiBV
SVBhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQ7CisKKyAgICBjYXNlIFdlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzQ2F0ZWdvcnk6OkZvbnRzOgorICAgICAgICAvLyBGSVhNRTogRG9lcyBpT1MgaGF2
ZSBhIGRpZmZlcmVudCBwYXN0ZWJvYXJkIGZvciBmb250cz8KKyAgICAgICAgcmV0dXJuIFVJUGFz
dGVib2FyZC5nZW5lcmFsUGFzdGVib2FyZDsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDBkZGZjM2U2OTFmMjlkNzlh
MmY5YjNhYTZiMWMwNTlhZjM3YzAwMGEuLmQ3ODAxNjRhNDY2YWI0Nzk0NTY3NmRlNGY2ZmVlNmNi
NDBlYjYyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdl
UHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94
eUlPUy5tbQpAQCAtMTU1MCw2ICsxNTUwLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVy
Zm9ybVBhc3RlQ29tbWFuZChET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IHBhc3RlQWNjZXNzQ2F0CiAg
ICAgY2FzZSBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpHZW5lcmFsOgogICAgICAgICBncmFudEFj
Y2Vzc1RvQ3VycmVudFBhc3RlYm9hcmREYXRhKFVJUGFzdGVib2FyZE5hbWVHZW5lcmFsKTsKICAg
ICAgICAgcmV0dXJuOworCisgICAgY2FzZSBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250czoK
KyAgICAgICAgLy8gRklYTUU6IERvZXMgaU9TIGhhdmUgYSBkaWZmZXJlbnQgcGFzdGVib2FyZCBm
b3IgZm9udHM/CisgICAgICAgIGdyYW50QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEoVUlQ
YXN0ZWJvYXJkTmFtZUdlbmVyYWwpOworICAgICAgICByZXR1cm47CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCBiYTFm
NWQ3YjM3YjExOTI4MTExYWYwNWY4YTZkMGRiMDA2NTk4NTY4Li5iNDk0YTQ4NTlkMzkzZmFiMmUz
OWM0NjNiMjdiYjQ2YjRiMzU3YjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XZWJQYWdlUHJveHlNYWMubW0KQEAgLTY1Nyw2ICs2NTcsMTIgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OndpbGxQZXJmb3JtUGFzdGVDb21tYW5kKERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgcGFzdGVB
Y2Nlc3NDYXQKICAgICBjYXNlIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWw6CiAgICAg
ICAgIGdyYW50QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEoTlNQYXN0ZWJvYXJkTmFtZUdl
bmVyYWwpOwogICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIERPTVBhc3RlQWNjZXNzQ2F0ZWdv
cnk6OkZvbnRzOgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICAgICAg
Z3JhbnRBY2Nlc3NUb0N1cnJlbnRQYXN0ZWJvYXJkRGF0YShOU0ZvbnRQYm9hcmQpOworQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECisgICAgICAgIHJldHVybjsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZjMyYTBjOGMyMjYyMjJhNjRjYzYwOTE5MGI4ODMxZTliOTFiZTNhLi44ZjkyZWU2
MmQwNzM0M2E2NTk4Y2RkMTIxOGExMmE2NDE5N2NiMDA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMjEtMTItMDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAg
IFdLV2ViVmlldyBkb2VzbuKAmXQgcmVzcG9uZCB0byAtY29weUZvbnQ6IGFuZCAtcGFzdGVGb250
OgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMzc5
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTg3ODY1OT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcvZWRpdGluZy5qczoKKyAgICAg
ICAgKGV4ZWNDb3B5Rm9udENvbW1hbmQpOiBBZGRlZC4KKyAgICAgICAgKGNvcHlGb250Q29tbWFu
ZCk6IEFkZGVkLgorICAgICAgICAoZXhlY1Bhc3RlRm9udENvbW1hbmQpOiBBZGRlZC4KKyAgICAg
ICAgKHBhc3RlRm9udENvbW1hbmQpOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21t
YW5kL21hYy9jb3B5Rm9udC1wYXN0ZUZvbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGlu
Zy9leGVjQ29tbWFuZC9tYWMvY29weUZvbnQtcGFzdGVGb250LWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0xMi0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIEltcHJvdmUgPHR5cGU9ImRhdGV0aW1lLWxvY2FsIj4gdmFsdWUg
cGFyc2luZyBhbmQgc2FuaXRpemF0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0M2I0ZGVlNGUx
MTliOTNkNzY4YzE5ZDMwM2VmNTNlOGVmOTZlYTJmLi4zMDg3MjgwYTAzZGU4YTEzNDYyMjM5M2Ey
NGRlMmZjZTFiM2FhZmE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIwLDYgKzIwLDcgQEAgZWRp
dGluZy9tYWMgWyBTa2lwIF0KIGVkaXRpbmcvY2FyZXQvaW9zIFsgU2tpcCBdCiBlZGl0aW5nL2Vk
aXRhYmxlLXJlZ2lvbiBbIFNraXAgXQogZWRpdGluZy9leGVjQ29tbWFuZC9pb3MgWyBTa2lwIF0K
K2VkaXRpbmcvZXhlY0NvbW1hbmQvbWFjIFsgU2tpcCBdCiBlZGl0aW5nL2lucHV0L2NvY29hIFsg
U2tpcCBdCiBlZGl0aW5nL2lucHV0L2lvcyBbIFNraXAgXQogZWRpdGluZy9maW5kIFsgU2tpcCBd
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRpbmcuanMgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL2VkaXRpbmcuanMKaW5kZXggOTk4MTY0ZWIwYjYxMWRmYmVjOGFiZWQ3YTYwMTMy
OGE5NTNmZjI3MS4uODM2Y2JjNzdjNDY1NWZmODM4YTExNWM3YTM5MTRhYjJhYmZhNTlhNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0aW5nLmpzCisrKyBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvZWRpdGluZy5qcwpAQCAtODExLDYgKzgxMSwzNCBAQCBmdW5jdGlvbiBwYXN0ZUNv
bW1hbmQoKSB7CiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCitmdW5jdGlvbiBleGVjQ29weUZvbnRDb21tYW5kKCkgeworICAgIGRvY3VtZW50LmV4
ZWNDb21tYW5kKCJDb3B5Rm9udCIpOworICAgIGRlYnVnRm9yRHVtcEFzVGV4dCgiZXhlY0NvcHlG
b250Q29tbWFuZCIpOworfQorZnVuY3Rpb24gY29weUZvbnRDb21tYW5kKCkgeworICAgIGlmIChj
b21tYW5kRGVsYXkgPiAwKSB7CisgICAgICAgIHF1ZXVlQ29tbWFuZChleGVjQ29weUZvbnRDb21t
YW5kLCBjb21tYW5kQ291bnQgKiBjb21tYW5kRGVsYXkpOworICAgICAgICBjb21tYW5kQ291bnQr
KzsKKyAgICB9IGVsc2UKKyAgICAgICAgZXhlY0NvcHlGb250Q29tbWFuZCgpOworfQorCisvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZnVuY3Rpb24g
ZXhlY1Bhc3RlRm9udENvbW1hbmQoKSB7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlBhc3Rl
Rm9udCIpOworICAgIGRlYnVnRm9yRHVtcEFzVGV4dCgiZXhlY1Bhc3RlRm9udENvbW1hbmQiKTsK
K30KK2Z1bmN0aW9uIHBhc3RlRm9udENvbW1hbmQoKSB7CisgICAgaWYgKGNvbW1hbmREZWxheSA+
IDApIHsKKyAgICAgICAgcXVldWVDb21tYW5kKGV4ZWNQYXN0ZUZvbnRDb21tYW5kLCBjb21tYW5k
Q291bnQgKiBjb21tYW5kRGVsYXkpOworICAgICAgICBjb21tYW5kQ291bnQrKzsKKyAgICB9IGVs
c2UKKyAgICAgICAgZXhlY1Bhc3RlRm9udENvbW1hbmQoKTsKK30KKworLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKIGZ1bmN0aW9uIGV4ZWNDcmVhdGVM
aW5rQ29tbWFuZCh1cmwpIHsKICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiQ3JlYXRlTGluayIs
IGZhbHNlLCB1cmwpOwogICAgIGRlYnVnRm9yRHVtcEFzVGV4dCgiZXhlY0NyZWF0ZUxpbmtDb21t
YW5kIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL21hYy9j
b3B5Rm9udC1wYXN0ZUZvbnQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhl
Y0NvbW1hbmQvbWFjL2NvcHlGb250LXBhc3RlRm9udC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjYxYjE4NTEzNzE3NjIwOWRjY2UwNTZjNzZmNTYzOTY3ZTliZWE0ODQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL21hYy9jb3B5Rm9udC1wYXN0ZUZv
bnQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDIwIEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxz
dHlsZT4KKyNjb3B5IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICBmb250LWZh
bWlseTogQXJpYWw7CisgICAgZm9udC1zaXplOiAyMHB4OworICAgIGZvbnQtd2VpZ2h0OiBib2xk
OworICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgICBjb2xvcjogeWVsbG93OworICAgIHRleHQt
c2hhZG93OiBibGFjayAxcHggMXB4OworICAgIHZlcnRpY2FsLWFsaWduOiBzdWI7Cit9CisgICAg
PC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImNvcHkiPmNvcHkgdGhpczwv
ZGl2PgorICAgIDxkaXYgaWQ9InBhc3RlIiBjb250ZW50ZWRpdGFibGU9IiI+PGZvbnQgY29sb3I9
IiNmZmZmMDAiIGZhY2U9IkFyaWFsIj48c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdi
KDAsIDEyOCwgMCk7IGZvbnQtc2l6ZTogMjBweDsgdGV4dC1zaGFkb3c6IHJnYigwLCAwLCAwKSAx
cHggMXB4OyI+PGI+PGk+PHN1Yj5wYXN0ZSBoZXJlPC9zdWI+PC9pPjwvYj48L3NwYW4+PC9mb250
PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9leGVjQ29tbWFuZC9tYWMvY29weUZvbnQtcGFzdGVGb250Lmh0bWwgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL21hYy9jb3B5Rm9udC1wYXN0ZUZvbnQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yYTBkYmUxMjhkNGU2MDYzOTdiNTJjNTdmOGMwNzZmY2NlMzliNTYxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9tYWMvY29weUZvbnQtcGFzdGVG
b250Lmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0uLi8uLi9lZGl0aW5nLmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CitmdW5jdGlvbiBlZGl0
aW5nVGVzdCgpIHsKKyAgICBsZXQgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwor
CisgICAgbGV0IGNvcHlSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CisgICAgY29weVJh
bmdlLnNlbGVjdE5vZGVDb250ZW50cyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29weSIpKTsK
KyAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7CisgICAgc2VsZWN0aW9uLmFkZFJhbmdl
KGNvcHlSYW5nZSk7CisgICAgY29weUZvbnRDb21tYW5kKCk7CisKKyAgICBsZXQgcGFzdGVSYW5n
ZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CisgICAgcGFzdGVSYW5nZS5zZWxlY3ROb2RlQ29u
dGVudHMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhc3RlIikpOworICAgIHNlbGVjdGlvbi5y
ZW1vdmVBbGxSYW5nZXMoKTsKKyAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocGFzdGVSYW5nZSk7Cisg
ICAgcGFzdGVGb250Q29tbWFuZCgpOworCisgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygp
OworfQorICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyNjb3B5IHsKKyAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBncmVlbjsKKyAgICBmb250LWZhbWlseTogQXJpYWw7CisgICAgZm9udC1zaXplOiAy
MHB4OworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAg
ICBjb2xvcjogeWVsbG93OworICAgIHRleHQtc2hhZG93OiBibGFjayAxcHggMXB4OworICAgIHZl
cnRpY2FsLWFsaWduOiBzdWI7Cit9CisjcGFzdGUgeworICAgIG91dGxpbmU6IG5vbmU7Cit9Cisg
ICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImNvcHkiPmNvcHkgdGhp
czwvZGl2PgorICAgIDxkaXYgaWQ9InBhc3RlIiBjb250ZW50ZWRpdGFibGU+cGFzdGUgaGVyZTwv
ZGl2PgorICAgIDxzY3JpcHQ+CitydW5FZGl0aW5nVGVzdCgpOworICAgIDwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCAwZTNlN2JiN2Y1NzJjZjFiYjQ3M2YwMzUzNTdmZTE3OTE1YmQwY2I0Li5jNjcxMmEwMGIw
ODJjY2Y4ZjAyODkzMDdiYTIzOWU4NjMxMjA0NDRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOSw2ICs5LDcgQEAKIGFjY2Vzc2liaWxpdHkvbWFjIFsg
UGFzcyBdCiBjb21wb3NpdGluZy9zY3JvbGxpbmcvYXN5bmMtb3ZlcmZsb3ctc2Nyb2xsaW5nL21h
YyBbIFBhc3MgXQogZGlzcGxheWxpc3RzIFsgUGFzcyBdCitlZGl0aW5nL2V4ZWNDb21tYW5kL21h
YyBbIFBhc3MgXQogZWRpdGluZy9pbnB1dC9jb2NvYSBbIFBhc3MgXQogZWRpdGluZy9tYWMgWyBQ
YXNzIF0KIGVkaXRpbmcvcGFzdGVib2FyZC9tYWMgWyBQYXNzIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446837</attachid>
            <date>2021-12-10 16:07:37 -0800</date>
            <delta_ts>2021-12-10 16:24:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191379-20211210170736.patch</filename>
            <type>text/plain</type>
            <size>35118</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4Y2I0NmVkYWE5ZDRiYmFkMjA5MzhlNmQ1YmU5YjEyOGI0YjI1ZGE2Li44
MDkyZWJhOTgyYTI4NjA0OTdkODFkMGE3MjU4MmNjOGEwMTRiN2MyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTAgQEAKKzIwMjEtMTItMTAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdLV2ViVmlldyBkb2VzbuKAmXQgcmVzcG9uZCB0byAtY29weUZvbnQ6IGFu
ZCAtcGFzdGVGb250OgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkxMzc5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTg3ODY1OT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9leGVj
Q29tbWFuZC9tYWMvY29weUZvbnQtcGFzdGVGb250Lmh0bWwKKworICAgICAgICAqIGRvbS9ET01Q
YXN0ZUFjY2Vzcy5oOgorICAgICAgICBBZGQgYERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkZvbnRz
YCAod2hpY2ggY29ycmVzcG9uZHMgdG8gYE5TUGFzdGVib2FyZE5hbWVGb250YCBvbiBtYWNPUyku
CisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV2ZW50TmFtZUZvckNsaXBib2FyZEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZURhdGFUcmFuc2ZlckZvckNsaXBib2FyZEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y29weUZvbnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6cGFzdGVGb250KTogQWRkZWQuCisgICAgICAgIEFkZCBwbGF0Zm9ybS1hZ25v
c3RpYyBoYW5kbGluZyBmb3IgYCJDb3B5Rm9udCJgIGFuZCBgIlBhc3RlRm9udCJgIGVkaXRvciBj
b21tYW5kcy4KKworICAgICAgICAqIGVkaXRpbmcvbWFjL0VkaXRvck1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6cGxhdGZvcm1Db3B5Rm9udCk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpwbGF0Zm9ybVBhc3RlRm9udCk6IEFkZGVkLgorICAgICAgICBNaW1pYyB0
aGUgbG9naWMgaW4gYC1bV2ViSFRNTFZpZXcgY29weUZvbnQ6XWAvYC1bV2ViSFRNTFZpZXcgcGFz
dGVGb250Ol1gIHRvIGJlIGNvbXBhdGlibGUKKyAgICAgICAgd2l0aCBXSzEgKGkuZS4gdG8gbWFr
ZSBpdCBlYXNpZXIgZm9yIGNsaWVudHMgdG8gc3dpdGNoIHRvIFdLMikuCisKKyAgICAgICAgKiBl
ZGl0aW5nL2d0ay9FZGl0b3JHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwbGF0
Zm9ybUNvcHlGb250KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBsYXRmb3Jt
UGFzdGVGb250KTogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwbGF0Zm9ybUNvcHlGb250KTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnBsYXRmb3JtUGFzdGVGb250KTogQWRkZWQuCisgICAgICAg
ICogZWRpdGluZy9saWJ3cGUvRWRpdG9yTGliV1BFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6cGxhdGZvcm1Db3B5Rm9udCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
OjpwbGF0Zm9ybVBhc3RlRm9udCk6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvd2luL0VkaXRv
cldpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBsYXRmb3JtQ29weUZvbnQpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGxhdGZvcm1QYXN0ZUZvbnQpOiBBZGRl
ZC4KKyAgICAgICAgQWRkIHN0dWJzIGZvciBvdGhlciBwbGF0Zm9ybXMuCisKKyAgICAgICAgKiBl
ZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUNvcHlG
b250KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlUGFzdGVGb250KTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVDb21tYW5kTWFwKToKKyAgICAgICAgSG9vayBgIkNv
cHlGb250ImAgYW5kIGAiUGFzdGVGb250ImAgZWRpdG9yIGNvbW1hbmRzIHVwIHRvIGBkb2N1bWVu
dC5leGVjQ29tbWFuZGAuCisKIDIwMjEtMTItMTAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBw
bGUuY29tPgogCiAgICAgICAgIEFsbG93IGBQYXN0ZWJvYXJkOjpyZWFkQnVmZmVyYCB0byByZWFk
IGZyb20gdGhlIHBhc3RlYm9hcmQgYXMgYSB3aG9sZSBpbnN0ZWFkIG9mIGEgc3BlY2lmaWMgaXRl
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAzNTM1YzVkOTVmNzViNzQ2NTg0ODNjYmM2ZWQzYmE4NDY5OTJlZjIyLi43
Njc2ZmUzNjYwMDlmNWYxNzhmOWE0ODIwNzkzMmNiM2MyMWVhMjZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMzIEBACisyMDIxLTEyLTEwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
KworICAgICAgICBXS1dlYlZpZXcgZG9lc27igJl0IHJlc3BvbmQgdG8gLWNvcHlGb250OiBhbmQg
LXBhc3RlRm9udDoKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTM3OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDU4Nzg2NTk+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbToK
KyAgICAgICAgQWRkIGAtY29weUZvbnQ6YCBhbmQgYC1wYXN0ZUZvbnQ6YCBtZXRob2RzIHZpYSBg
V0VCQ09SRV9DT01NQU5EYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpwYXN0ZUFjY2Vzc0NhdGVnb3J5Rm9yQ29tbWFuZCk6CisgICAg
ICAgIFRoZSBgUGFzdGVGb250YCBjb21tYW5kIHNob3VsZCBiZSBjYXRlZ29yaXplZCBhcyBgRE9N
UGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9udHNgLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpwYXN0ZWJvYXJkTmFtZUZvckFjY2Vz
c0NhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6cGFzdGVib2FyZEZvckFjY2Vzc0NhdGVnb3J5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybVBhc3RlQ29tbWFuZCk6CisgICAgICAg
IENvcnJlbGF0ZSBgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9udHNgIHdpdGggYE5TUGFzdGVi
b2FyZE5hbWVGb250YC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tOgorICAgICAgICAocGFzdGVib2FyZE5hbWVGb3JBY2Nlc3NDYXRlZ29yeSk6
CisgICAgICAgIChwYXN0ZWJvYXJkRm9yQWNjZXNzQ2F0ZWdvcnkpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OndpbGxQZXJmb3JtUGFzdGVDb21tYW5kKToKKyAgICAgICAgQ29ycmVsYXRlIGBET01QYXN0
ZUFjY2Vzc0NhdGVnb3J5OjpGb250c2Agd2l0aCBgVUlQYXN0ZWJvYXJkTmFtZUdlbmVyYWxgLgor
CiAyMDIxLTEyLTEwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBbGxvdyBgUGFzdGVib2FyZDo6cmVhZEJ1ZmZlcmAgdG8gcmVhZCBmcm9tIHRoZSBwYXN0ZWJv
YXJkIGFzIGEgd2hvbGUgaW5zdGVhZCBvZiBhIHNwZWNpZmljIGl0ZW0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01QYXN0ZUFjY2Vzcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RP
TVBhc3RlQWNjZXNzLmgKaW5kZXggZGI1YTY0NGNhNjI0N2ZkOWJhMWUwMWIyZThiNzNhNzIwMzEy
MDI1ZC4uYzdlM2Y4YjlkYzgzMjU3NzA1Zjc1ZWZkMmRlMjkzMzVlNzQ2ODZmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBhc3RlQWNjZXNzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RPTVBhc3RlQWNjZXNzLmgKQEAgLTMxLDYgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgOiB1aW50OF90IHsKICAg
ICBHZW5lcmFsLAorICAgIEZvbnRzLAogfTsKIAogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Bv
bGljeSA6IHVpbnQ4X3QgewpAQCAtNTIsNyArNTMsOCBAQCBuYW1lc3BhY2UgV1RGIHsKIHRlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeT4g
ewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzQ2F0ZWdvcnksCi0gICAgICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdv
cnk6OkdlbmVyYWwKKyAgICAgICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2Vu
ZXJhbCwKKyAgICAgICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9udHMKICAg
ICA+OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDE3MjRjZjBlNTBiYWE1
YjliMjQxMzA0ODFlZTcyNGNiNzgyMDdhYTQuLjI4MzFjZDNmYTljNmE0ZjlmZjlhOWEwZTI1YzNi
NDJlNTJkMWI2NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTM3Miw4ICszNzIs
MTAgQEAgYm9vbCBFZGl0b3I6OmNhbkVkaXRSaWNobHkoKSBjb25zdAogCiBlbnVtIGNsYXNzIENs
aXBib2FyZEV2ZW50S2luZCB7CiAgICAgQ29weSwKKyAgICBDb3B5Rm9udCwKICAgICBDdXQsCiAg
ICAgUGFzdGUsCisgICAgUGFzdGVGb250LAogICAgIFBhc3RlQXNQbGFpblRleHQsCiAgICAgUGFz
dGVBc1F1b3RhdGlvbiwKICAgICBCZWZvcmVDb3B5LApAQCAtMzg1LDEyICszODcsMTQgQEAgc3Rh
dGljIEF0b21TdHJpbmcgZXZlbnROYW1lRm9yQ2xpcGJvYXJkRXZlbnQoQ2xpcGJvYXJkRXZlbnRL
aW5kIGtpbmQpCiB7CiAgICAgc3dpdGNoIChraW5kKSB7CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVu
dEtpbmQ6OkNvcHk6CisgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OkNvcHlGb250OgogICAg
ICAgICByZXR1cm4gZXZlbnROYW1lcygpLmNvcHlFdmVudDsKICAgICBjYXNlIENsaXBib2FyZEV2
ZW50S2luZDo6Q3V0OgogICAgICAgICByZXR1cm4gZXZlbnROYW1lcygpLmN1dEV2ZW50OwogICAg
IGNhc2UgQ2xpcGJvYXJkRXZlbnRLaW5kOjpQYXN0ZToKICAgICBjYXNlIENsaXBib2FyZEV2ZW50
S2luZDo6UGFzdGVBc1BsYWluVGV4dDoKICAgICBjYXNlIENsaXBib2FyZEV2ZW50S2luZDo6UGFz
dGVBc1F1b3RhdGlvbjoKKyAgICBjYXNlIENsaXBib2FyZEV2ZW50S2luZDo6UGFzdGVGb250Ogog
ICAgICAgICByZXR1cm4gZXZlbnROYW1lcygpLnBhc3RlRXZlbnQ7CiAgICAgY2FzZSBDbGlwYm9h
cmRFdmVudEtpbmQ6OkJlZm9yZUNvcHk6CiAgICAgICAgIHJldHVybiBldmVudE5hbWVzKCkuYmVm
b3JlY29weUV2ZW50OwpAQCAtNDA3LDYgKzQxMSw3IEBAIHN0YXRpYyBSZWY8RGF0YVRyYW5zZmVy
PiBjcmVhdGVEYXRhVHJhbnNmZXJGb3JDbGlwYm9hcmRFdmVudChEb2N1bWVudCYgZG9jdW1lbnQs
CiB7CiAgICAgc3dpdGNoIChraW5kKSB7CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OkNv
cHk6CisgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OkNvcHlGb250OgogICAgIGNhc2UgQ2xp
cGJvYXJkRXZlbnRLaW5kOjpDdXQ6CiAgICAgICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0
ZUZvckNvcHlBbmRQYXN0ZShkb2N1bWVudCwgRGF0YVRyYW5zZmVyOjpTdG9yZU1vZGU6OlJlYWRX
cml0ZSwgbWFrZVVuaXF1ZTxTdGF0aWNQYXN0ZWJvYXJkPigpKTsKICAgICBjYXNlIENsaXBib2Fy
ZEV2ZW50S2luZDo6UGFzdGVBc1BsYWluVGV4dDoKQEAgLTQyMCw2ICs0MjUsNyBAQCBzdGF0aWMg
UmVmPERhdGFUcmFuc2Zlcj4gY3JlYXRlRGF0YVRyYW5zZmVyRm9yQ2xpcGJvYXJkRXZlbnQoRG9j
dW1lbnQmIGRvY3VtZW50LAogICAgICAgICBGQUxMVEhST1VHSDsKICAgICBjYXNlIENsaXBib2Fy
ZEV2ZW50S2luZDo6UGFzdGU6CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3RlQXNR
dW90YXRpb246CisgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3RlRm9udDoKICAgICAg
ICAgcmV0dXJuIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKGRvY3VtZW50LCBE
YXRhVHJhbnNmZXI6OlN0b3JlTW9kZTo6UmVhZG9ubHksIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNv
cHlBbmRQYXN0ZShQYWdlUGFzdGVib2FyZENvbnRleHQ6OmNyZWF0ZShkb2N1bWVudC5wYWdlSUQo
KSkpKTsKICAgICBjYXNlIENsaXBib2FyZEV2ZW50S2luZDo6QmVmb3JlQ29weToKICAgICBjYXNl
IENsaXBib2FyZEV2ZW50S2luZDo6QmVmb3JlQ3V0OgpAQCAtMTQwNCw2ICsxNDEwLDIxIEBAIHZv
aWQgRWRpdG9yOjpjb3B5KEZyb21NZW51T3JLZXlCaW5kaW5nIGZyb21NZW51T3JLZXlCaW5kaW5n
KQogICAgIHBlcmZvcm1DdXRPckNvcHkoQ29weUFjdGlvbik7CiB9CiAKK3ZvaWQgRWRpdG9yOjpj
b3B5Rm9udChGcm9tTWVudU9yS2V5QmluZGluZyBmcm9tTWVudU9yS2V5QmluZGluZykKK3sKKyAg
ICBTZXRGb3JTY29wZTxib29sPiBjb3B5U2NvcGUgeyBtX2NvcHlpbmdGcm9tTWVudU9yS2V5Qmlu
ZGluZywgZnJvbU1lbnVPcktleUJpbmRpbmcgPT0gRnJvbU1lbnVPcktleUJpbmRpbmc6OlllcyB9
OworICAgIGlmICh0cnlESFRNTENvcHkoKSkKKyAgICAgICAgcmV0dXJuOyAvLyBESFRNTCBkaWQg
dGhlIHdob2xlIG9wZXJhdGlvbgorICAgIGlmICghY2FuQ29weSgpKSB7CisgICAgICAgIFN5c3Rl
bVNvdW5kTWFuYWdlcjo6c2luZ2xldG9uKCkuc3lzdGVtQmVlcCgpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgd2lsbFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKHNlbGVjdGVkUmFu
Z2UoKSk7CisgICAgcGxhdGZvcm1Db3B5Rm9udCgpOworICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9Q
YXN0ZWJvYXJkKCk7Cit9CisKIHZvaWQgRWRpdG9yOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZp
Y2F0aW9uRm9yQ3V0KGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
c2VsZWN0aW9uKQogewogICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkKQEAgLTE1MTIsNiArMTUzMywxOSBAQCB2b2lkIEVkaXRvcjo6cGFzdGVBc1F1b3RhdGlv
bihGcm9tTWVudU9yS2V5QmluZGluZyBmcm9tTWVudU9yS2V5QmluZGluZykKICAgICAgICAgcGFz
dGVBc1BsYWluVGV4dFdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKTsKIH0KIAordm9pZCBFZGl0
b3I6OnBhc3RlRm9udChGcm9tTWVudU9yS2V5QmluZGluZyBmcm9tTWVudU9yS2V5QmluZGluZykK
K3sKKyAgICBTZXRGb3JTY29wZTxib29sPiBwYXN0ZVNjb3BlIHsgbV9wYXN0aW5nRnJvbU1lbnVP
cktleUJpbmRpbmcsIGZyb21NZW51T3JLZXlCaW5kaW5nID09IEZyb21NZW51T3JLZXlCaW5kaW5n
OjpZZXMgfTsKKworICAgIGlmICghZGlzcGF0Y2hDbGlwYm9hcmRFdmVudChmaW5kRXZlbnRUYXJn
ZXRGcm9tU2VsZWN0aW9uKCksIENsaXBib2FyZEV2ZW50S2luZDo6UGFzdGVGb250KSkKKyAgICAg
ICAgcmV0dXJuOworICAgIGlmICghY2FuUGFzdGUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHVw
ZGF0ZU1hcmtlcnNGb3JXb3Jkc0FmZmVjdGVkQnlFZGl0aW5nKGZhbHNlKTsKKyAgICBSZXNvdXJj
ZUNhY2hlVmFsaWRhdGlvblN1cHByZXNzb3IgdmFsaWRhdGlvblN1cHByZXNzb3IoZG9jdW1lbnQo
KS5jYWNoZWRSZXNvdXJjZUxvYWRlcigpKTsKKyAgICBwbGF0Zm9ybVBhc3RlRm9udCgpOworfQor
CiB2b2lkIEVkaXRvcjo6cXVvdGVGcmFnbWVudEZvclBhc3RpbmcoRG9jdW1lbnRGcmFnbWVudCYg
ZnJhZ21lbnQpCiB7CiAgICAgYXV0byBibG9ja1F1b3RlID0gSFRNTFF1b3RlRWxlbWVudDo6Y3Jl
YXRlKGJsb2NrcXVvdGVUYWcsIGRvY3VtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5k
ZXggMDFmZTBiNWUwNDRlZjYzZjI2YTcxYjQ3MmVmOThiMTFjMjI4YjkxYy4uYjAzMTM2ZmZjZjFm
NmIzN2U2YjA3YWI2MjMyZTYxZjY2ZGVlNzU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBA
IC0xOTcsMTEgKzE5NywxMyBAQCBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBGcm9tTWVudU9yS2V5
QmluZGluZyA6IGJvb2wgeyBObywgWWVzIH07CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjdXQo
RnJvbU1lbnVPcktleUJpbmRpbmcgPSBGcm9tTWVudU9yS2V5QmluZGluZzo6Tm8pOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgY29weShGcm9tTWVudU9yS2V5QmluZGluZyA9IEZyb21NZW51T3JL
ZXlCaW5kaW5nOjpObyk7CisgICAgdm9pZCBjb3B5Rm9udChGcm9tTWVudU9yS2V5QmluZGluZyA9
IEZyb21NZW51T3JLZXlCaW5kaW5nOjpObyk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBh
c3RlKEZyb21NZW51T3JLZXlCaW5kaW5nID0gRnJvbU1lbnVPcktleUJpbmRpbmc6Ok5vKTsKICAg
ICB2b2lkIHBhc3RlKFBhc3RlYm9hcmQmLCBGcm9tTWVudU9yS2V5QmluZGluZyA9IEZyb21NZW51
T3JLZXlCaW5kaW5nOjpObyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwYXN0ZUFzUGxhaW5U
ZXh0KEZyb21NZW51T3JLZXlCaW5kaW5nID0gRnJvbU1lbnVPcktleUJpbmRpbmc6Ok5vKTsKICAg
ICB2b2lkIHBhc3RlQXNRdW90YXRpb24oRnJvbU1lbnVPcktleUJpbmRpbmcgPSBGcm9tTWVudU9y
S2V5QmluZGluZzo6Tm8pOworICAgIHZvaWQgcGFzdGVGb250KEZyb21NZW51T3JLZXlCaW5kaW5n
ID0gRnJvbU1lbnVPcktleUJpbmRpbmc6Ok5vKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBl
cmZvcm1EZWxldGUoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29weVVSTChjb25zdCBV
UkwmLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKQEAgLTU5Miw2ICs1OTQsOSBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcGFzdGVXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkKiwgT3B0aW9uU2V0PFBhc3Rl
T3B0aW9uPik7CiAgICAgU3RyaW5nIHBsYWluVGV4dEZyb21QYXN0ZWJvYXJkKGNvbnN0IFBhc3Rl
Ym9hcmRQbGFpblRleHQmKTsKIAorICAgIHZvaWQgcGxhdGZvcm1Db3B5Rm9udCgpOworICAgIHZv
aWQgcGxhdGZvcm1QYXN0ZUZvbnQoKTsKKwogICAgIHZvaWQgcXVvdGVGcmFnbWVudEZvclBhc3Rp
bmcoRG9jdW1lbnRGcmFnbWVudCYpOwogCiAgICAgdm9pZCByZXZlYWxTZWxlY3Rpb25BZnRlckVk
aXRpbmdPcGVyYXRpb24oY29uc3QgU2Nyb2xsQWxpZ25tZW50JiA9IFNjcm9sbEFsaWdubWVudDo6
YWxpZ25DZW50ZXJJZk5lZWRlZCwgUmV2ZWFsRXh0ZW50T3B0aW9uID0gRG9Ob3RSZXZlYWxFeHRl
bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggZjE4NzU5
ZDA2MmRmNTk2Zjk0NTdkOTE5MGE1NzBhNzE0OTJlMzRmYy4uNjFhMWVhNmI5NzU3YzdiYjc1NWY5
NDJkZWFjODgwMTE1ZTdkNGRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1h
bmQuY3BwCkBAIC0yNDIsNiArMjQyLDEyIEBAIHN0YXRpYyBib29sIGV4ZWN1dGVDb3B5KEZyYW1l
JiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgZXhlY3V0ZUNvcHlGb250KEZyYW1lJiBmcmFt
ZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJikKK3sK
KyAgICBmcmFtZS5lZGl0b3IoKS5jb3B5Rm9udChzb3VyY2UgPT0gQ29tbWFuZEZyb21NZW51T3JL
ZXlCaW5kaW5nID8gRWRpdG9yOjpGcm9tTWVudU9yS2V5QmluZGluZzo6WWVzIDogRWRpdG9yOjpG
cm9tTWVudU9yS2V5QmluZGluZzo6Tm8pOworICAgIHJldHVybiB0cnVlOworfQorCiBzdGF0aWMg
Ym9vbCBleGVjdXRlQ3JlYXRlTGluayhGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFu
ZFNvdXJjZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICAvLyBGSVhNRTogSWYgdXNlcklu
dGVyZmFjZSBpcyB0cnVlLCB3ZSBzaG91bGQgZGlzcGxheSBhIGRpYWxvZyBib3ggdG8gbGV0IHRo
ZSB1c2VyIGVudGVyIGEgVVJMLgpAQCAtOTA2LDYgKzkxMiwyMSBAQCBzdGF0aWMgYm9vbCBleGVj
dXRlUGFzdGUoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNl
LCBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgYm9vbCBleGVjdXRlUGFzdGVG
b250KEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29u
c3QgU3RyaW5nJikKK3sKKyAgICBpZiAoc291cmNlID09IENvbW1hbmRGcm9tTWVudU9yS2V5Qmlu
ZGluZykgeworICAgICAgICBVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvciB0eXBpbmdHZXN0dXJl
SW5kaWNhdG9yKGZyYW1lKTsKKyAgICAgICAgZnJhbWUuZWRpdG9yKCkucGFzdGVGb250KEVkaXRv
cjo6RnJvbU1lbnVPcktleUJpbmRpbmc6Olllcyk7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworICAgIGlmICghZnJhbWUucmVxdWVzdERPTVBhc3RlQWNjZXNzKERPTVBhc3RlQWNjZXNz
Q2F0ZWdvcnk6OkZvbnRzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZnJhbWUuZWRp
dG9yKCkucGFzdGVGb250KCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKICNpZiBQTEFURk9STShH
VEspCiAKIHN0YXRpYyBib29sIGV4ZWN1dGVQYXN0ZUdsb2JhbFNlbGVjdGlvbihGcmFtZSYgZnJh
bWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIGNvbnN0IFN0cmluZyYpCkBA
IC0xNjE0LDYgKzE2MzUsNyBAQCBzdGF0aWMgY29uc3QgQ29tbWFuZE1hcCYgY3JlYXRlQ29tbWFu
ZE1hcCgpCiAgICAgICAgIHsgIkJvbGQiX3MsIHsgZXhlY3V0ZVRvZ2dsZUJvbGQsIHN1cHBvcnRl
ZCwgZW5hYmxlZEluUmljaGx5RWRpdGFibGVUZXh0LCBzdGF0ZUJvbGQsIHZhbHVlTnVsbCwgbm90
VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAg
ICAgIHsgIkNsZWFyVGV4dCJfcywgeyBleGVjdXRlQ2xlYXJUZXh0LCBzdXBwb3J0ZWQsIGVuYWJs
ZWRDbGVhclRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBhbGxv
d0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIkNvcHkiX3MsIHsgZXhlY3V0
ZUNvcHksIHN1cHBvcnRlZENvcHlDdXQsIGVuYWJsZWRDb3B5LCBzdGF0ZU5vbmUsIHZhbHVlTnVs
bCwgbm90VGV4dEluc2VydGlvbiwgYWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWRDb3B5Q3V0IH0g
fSwKKyAgICAgICAgeyAiQ29weUZvbnQiX3MsIHsgZXhlY3V0ZUNvcHlGb250LCBzdXBwb3J0ZWRD
b3B5Q3V0LCBlbmFibGVkQ29weSwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRp
b24sIGFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkQ29weUN1dCB9IH0sCiAgICAgICAgIHsgIkNy
ZWF0ZUxpbmsiX3MsIHsgZXhlY3V0ZUNyZWF0ZUxpbmssIHN1cHBvcnRlZCwgZW5hYmxlZEluUmlj
aGx5RWRpdGFibGVUZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwg
ZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIkN1dCJfcywg
eyBleGVjdXRlQ3V0LCBzdXBwb3J0ZWRDb3B5Q3V0LCBlbmFibGVkQ3V0LCBzdGF0ZU5vbmUsIHZh
bHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgYWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWRDb3B5
Q3V0IH0gfSwKICAgICAgICAgeyAiRGVmYXVsdFBhcmFncmFwaFNlcGFyYXRvciJfcywgeyBleGVj
dXRlRGVmYXVsdFBhcmFncmFwaFNlcGFyYXRvciwgc3VwcG9ydGVkLCBlbmFibGVkLCBzdGF0ZU5v
bmUsIHZhbHVlRGVmYXVsdFBhcmFncmFwaFNlcGFyYXRvciwgbm90VGV4dEluc2VydGlvbiwgZG9O
b3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZH0gfSwKQEAgLTE3MTMsNiArMTczNSw3IEBAIHN0
YXRpYyBjb25zdCBDb21tYW5kTWFwJiBjcmVhdGVDb21tYW5kTWFwKCkKICAgICAgICAgeyAiUGFz
dGVBbmRNYXRjaFN0eWxlIl9zLCB7IGV4ZWN1dGVQYXN0ZUFuZE1hdGNoU3R5bGUsIHN1cHBvcnRl
ZFBhc3RlLCBlbmFibGVkUGFzdGUsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0
aW9uLCBhbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZFBhc3RlIH0gfSwKICAgICAgICAgeyAiUGFz
dGVBc1BsYWluVGV4dCJfcywgeyBleGVjdXRlUGFzdGVBc1BsYWluVGV4dCwgc3VwcG9ydGVkUGFz
dGUsIGVuYWJsZWRQYXN0ZSwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24s
IGFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkUGFzdGUgfSB9LAogICAgICAgICB7ICJQYXN0ZUFz
UXVvdGF0aW9uIl9zLCB7IGV4ZWN1dGVQYXN0ZUFzUXVvdGF0aW9uLCBzdXBwb3J0ZWRQYXN0ZSwg
ZW5hYmxlZFBhc3RlLCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgYWxs
b3dFeGVjdXRpb25XaGVuRGlzYWJsZWRQYXN0ZSB9IH0sCisgICAgICAgIHsgIlBhc3RlRm9udCJf
cywgeyBleGVjdXRlUGFzdGVGb250LCBzdXBwb3J0ZWRQYXN0ZSwgZW5hYmxlZFBhc3RlLCBzdGF0
ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgYWxsb3dFeGVjdXRpb25XaGVuRGlz
YWJsZWRQYXN0ZSB9IH0sCiAgICAgICAgIHsgIlByaW50Il9zLCB7IGV4ZWN1dGVQcmludCwgc3Vw
cG9ydGVkLCBlbmFibGVkLCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwg
ZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIlJlZG8iX3Ms
IHsgZXhlY3V0ZVJlZG8sIHN1cHBvcnRlZCwgZW5hYmxlZFJlZG8sIHN0YXRlTm9uZSwgdmFsdWVO
dWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0g
fSwKICAgICAgICAgeyAiUmVtb3ZlRm9ybWF0Il9zLCB7IGV4ZWN1dGVSZW1vdmVGb3JtYXQsIHN1
cHBvcnRlZCwgZW5hYmxlZFJhbmdlSW5FZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxs
LCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0VkaXRvckd0ay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0ay9FZGl0b3JHdGsuY3BwCmluZGV4IDYxYzU4MWEyZTg4
MjI5YmRhMTViOTNmMWNlZDNmZjZiNmU4OGI2MzguLjM2YzA0ZDYxMGQ4MmNjNmMwYTljMGQ2OWNl
MTM1ZDgzY2IwNmE2NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0Vk
aXRvckd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9ndGsvRWRpdG9yR3RrLmNw
cApAQCAtNjUsNiArNjUsMTQgQEAgdm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFz
dGVib2FyZCogcGFzdGVib2FyZCwgT3B0aW9uU2V0PFBhc3RlT3B0aW9uPgogICAgICAgICBwYXN0
ZUFzRnJhZ21lbnQoZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgY2FuU21hcnRSZXBsYWNlV2l0
aFBhc3RlYm9hcmQoKnBhc3RlYm9hcmQpLCBjaG9zZVBsYWluVGV4dCwgb3B0aW9ucy5jb250YWlu
cyhQYXN0ZU9wdGlvbjo6SWdub3JlTWFpbEJsb2NrcXVvdGUpID8gTWFpbEJsb2NrcXVvdGVIYW5k
bGluZzo6SWdub3JlQmxvY2txdW90ZSA6IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RC
bG9ja3F1b3RlKTsKIH0KIAordm9pZCBFZGl0b3I6OnBsYXRmb3JtQ29weUZvbnQoKQoreworfQor
Cit2b2lkIEVkaXRvcjo6cGxhdGZvcm1QYXN0ZUZvbnQoKQoreworfQorCiBzdGF0aWMgY29uc3Qg
QXRvbVN0cmluZyYgZWxlbWVudFVSTChFbGVtZW50JiBlbGVtZW50KQogewogICAgIGlmIChpczxI
VE1MSW1hZ2VFbGVtZW50PihlbGVtZW50KSB8fCBpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQppbmRleCA3MGYwYjcxMWE5
ZDM1Yjk2MjA1OGFmYjExYmE2OGZmYWZiNTVmYjE3Li44NTFmMjk1MGI5MWJhNDQwZDk5OTNhNTIy
ZjkxNTBmMDFhNTgxZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9F
ZGl0b3JJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1t
CkBAIC0yMzgsNiArMjM4LDE0IEBAIHZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBh
c3RlYm9hcmQqIHBhc3RlYm9hcmQsIE9wdGlvblNldDxQYXN0ZU9wdGlvbj4KICAgICAgICAgcGFz
dGVBc0ZyYWdtZW50KGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGNhblNtYXJ0UmVwbGFjZVdp
dGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgZmFsc2UsIG9wdGlvbnMuY29udGFpbnMoUGFzdGVP
cHRpb246Oklnbm9yZU1haWxCbG9ja3F1b3RlKSA/IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6Okln
bm9yZUJsb2NrcXVvdGUgOiBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0QmxvY2txdW90
ZSk7CiB9CiAKK3ZvaWQgRWRpdG9yOjpwbGF0Zm9ybUNvcHlGb250KCkKK3sKK30KKwordm9pZCBF
ZGl0b3I6OnBsYXRmb3JtUGFzdGVGb250KCkKK3sKK30KKwogdm9pZCBFZGl0b3I6Omluc2VydERp
Y3RhdGlvblBocmFzZXMoVmVjdG9yPFZlY3RvcjxTdHJpbmc+PiYmIGRpY3RhdGlvblBocmFzZXMs
IGlkIG1ldGFkYXRhKQogewogICAgIGlmIChtX2RvY3VtZW50LnNlbGVjdGlvbigpLmlzTm9uZSgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9saWJ3cGUvRWRpdG9yTGliV1BF
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbGlid3BlL0VkaXRvckxpYldQRS5jcHAKaW5k
ZXggOWRkNDFkNjM2NjUxMmZkMzg1OTM3YTc2MDhiZDNmYzliNWI5MGY2MC4uODU5NWVkMWRkZjM4
OTcxMTQyMmU0NTM5ODhkYmJjM2RlNWRlODcwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9saWJ3cGUvRWRpdG9yTGliV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2xpYndwZS9FZGl0b3JMaWJXUEUuY3BwCkBAIC05MSw2ICs5MSwxNCBAQCB2b2lkIEVkaXRv
cjo6cGFzdGVXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkLCBPcHRpb25TZXQ8
UGFzdGVPcHRpb24+CiAgICAgICAgIHBhc3RlQXNGcmFnbWVudCgqZnJhZ21lbnQsIGNhblNtYXJ0
UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hvc2VQbGFpblRleHQsIG9wdGlv
bnMuY29udGFpbnMoUGFzdGVPcHRpb246Oklnbm9yZU1haWxCbG9ja3F1b3RlKSA/IE1haWxCbG9j
a3F1b3RlSGFuZGxpbmc6Oklnbm9yZUJsb2NrcXVvdGUgOiBNYWlsQmxvY2txdW90ZUhhbmRsaW5n
OjpSZXNwZWN0QmxvY2txdW90ZSk7CiB9CiAKK3ZvaWQgRWRpdG9yOjpwbGF0Zm9ybUNvcHlGb250
KCkKK3sKK30KKwordm9pZCBFZGl0b3I6OnBsYXRmb3JtUGFzdGVGb250KCkKK3sKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKExJQldQRSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQppbmRleCAyZDE5YjljN2MyMmIzZWJjMjY3YzY3NjEw
NmM4OTJmMDliNzc3NTNkLi4zMDM2Y2QzMmQ2Y2Q4MzJjMjIwMjgzYTg0NDVhODk5YTVhNjZjYTNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCkBAIC0zMSwxMCArMzEs
MTUgQEAKICNpbXBvcnQgIkJsb2IuaCIKICNpbXBvcnQgIkNTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaCIKICNpbXBvcnQgIkNTU1ZhbHVlUG9vbC5oIgorI2ltcG9ydCAiQ29sb3IuaCIKKyNpbXBv
cnQgIkNvbG9yQ29jb2EuaCIKKyNpbXBvcnQgIkNvbG9yU2VyaWFsaXphdGlvbi5oIgogI2ltcG9y
dCAiRGF0YVRyYW5zZmVyLmgiCiAjaW1wb3J0ICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW1wb3J0
ICJFZGl0aW5nLmgiCiAjaW1wb3J0ICJFZGl0b3JDbGllbnQuaCIKKyNpbXBvcnQgIkZvbnRBdHRy
aWJ1dGVzLmgiCisjaW1wb3J0ICJGb250U2hhZG93LmgiCiAjaW1wb3J0ICJGcmFtZS5oIgogI2lt
cG9ydCAiRnJhbWVWaWV3LmgiCiAjaW1wb3J0ICJIVE1MQ29udmVydGVyLmgiCkBAIC01MCwxMSAr
NTUsMTMgQEAKICNpbXBvcnQgIlJlbmRlckltYWdlLmgiCiAjaW1wb3J0ICJSdW50aW1lQXBwbGlj
YXRpb25DaGVja3MuaCIKICNpbXBvcnQgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKKyNpbXBv
cnQgIlNoYXJlZEJ1ZmZlci5oIgogI2ltcG9ydCAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW1wb3J0
ICJXZWJDb250ZW50UmVhZGVyLmgiCiAjaW1wb3J0ICJXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRy
YXMuaCIKICNpbXBvcnQgIm1hcmt1cC5oIgogI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgorI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL2NvY29hL05TVVJMRXh0cmFzLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTk5LDYgKzEwNiw4MyBAQCB2b2lkIEVkaXRvcjo6
cGFzdGVXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkLCBPcHRpb25TZXQ8UGFz
dGVPcHRpb24+CiAgICAgY2xpZW50KCktPnNldEluc2VydGlvblBhc3RlYm9hcmQoU3RyaW5nKCkp
OwogfQogCit2b2lkIEVkaXRvcjo6cGxhdGZvcm1Db3B5Rm9udCgpCit7CisgICAgUGFzdGVib2Fy
ZCBwYXN0ZWJvYXJkKFBhZ2VQYXN0ZWJvYXJkQ29udGV4dDo6Y3JlYXRlKG1fZG9jdW1lbnQucGFn
ZUlEKCkpLCBOU1Bhc3RlYm9hcmROYW1lRm9udCk7CisKKyAgICBhdXRvIGZvbnRTYW1wbGVTdHJp
bmcgPSBhZG9wdE5TKFtbTlNBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0aFN0cmluZzpA
IngiIGF0dHJpYnV0ZXM6Zm9udEF0dHJpYnV0ZXNBdFNlbGVjdGlvblN0YXJ0KCkuY3JlYXRlRGlj
dGlvbmFyeSgpLmdldCgpXSk7CisgICAgYXV0byBmb250RGF0YSA9IFJldGFpblB0cihbZm9udFNh
bXBsZVN0cmluZyBSVEZGcm9tUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgW2ZvbnRTYW1wbGVTdHJpbmcg
bGVuZ3RoXSkgZG9jdW1lbnRBdHRyaWJ1dGVzOkB7IH1dKTsKKworICAgIFBhc3RlYm9hcmRCdWZm
ZXIgcGFzdGVib2FyZEJ1ZmZlcjsKKyAgICBwYXN0ZWJvYXJkQnVmZmVyLmNvbnRlbnRPcmlnaW4g
PSBtX2RvY3VtZW50Lm9yaWdpbklkZW50aWZpZXJGb3JQYXN0ZWJvYXJkKCk7CisgICAgcGFzdGVi
b2FyZEJ1ZmZlci50eXBlID0gbGVnYWN5Rm9udFBhc3RlYm9hcmRUeXBlKCk7CisgICAgcGFzdGVi
b2FyZEJ1ZmZlci5kYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZm9udERhdGEuZ2V0KCkpOwor
ICAgIHBhc3RlYm9hcmQud3JpdGUocGFzdGVib2FyZEJ1ZmZlcik7Cit9CisKK3ZvaWQgRWRpdG9y
OjpwbGF0Zm9ybVBhc3RlRm9udCgpCit7CisgICAgUGFzdGVib2FyZCBwYXN0ZWJvYXJkKFBhZ2VQ
YXN0ZWJvYXJkQ29udGV4dDo6Y3JlYXRlKG1fZG9jdW1lbnQucGFnZUlEKCkpLCBOU1Bhc3RlYm9h
cmROYW1lRm9udCk7CisKKyAgICBjbGllbnQoKS0+c2V0SW5zZXJ0aW9uUGFzdGVib2FyZChwYXN0
ZWJvYXJkLm5hbWUoKSk7CisKKyAgICBSZXRhaW5QdHI8TlNEYXRhPiBmb250RGF0YTsKKyAgICBp
ZiAoYXV0byBidWZmZXIgPSBwYXN0ZWJvYXJkLnJlYWRCdWZmZXIoc3RkOjpudWxsb3B0LCBsZWdh
Y3lGb250UGFzdGVib2FyZFR5cGUoKSkpCisgICAgICAgIGZvbnREYXRhID0gYnVmZmVyLT5jcmVh
dGVOU0RhdGEoKTsKKyAgICBhdXRvIGZvbnRTYW1wbGVTdHJpbmcgPSBhZG9wdE5TKFtbTlNBdHRy
aWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0aFJURjpmb250RGF0YS5nZXQoKSBkb2N1bWVudEF0
dHJpYnV0ZXM6bmlsXSk7CisgICAgYXV0byBmb250QXR0cmlidXRlcyA9IFJldGFpblB0cihbZm9u
dFNhbXBsZVN0cmluZyBmb250QXR0cmlidXRlc0luUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgMSldKTsK
KworICAgIGF1dG8gc3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpjcmVhdGUoKTsKKwor
ICAgIENvbG9yIGJhY2tncm91bmRDb2xvcjsKKyAgICBpZiAoTlNDb2xvciAqbnNCYWNrZ3JvdW5k
Q29sb3IgPSBkeW5hbWljX29iamNfY2FzdDxOU0NvbG9yPihbZm9udEF0dHJpYnV0ZXMgb2JqZWN0
Rm9yS2V5Ok5TQmFja2dyb3VuZENvbG9yQXR0cmlidXRlTmFtZV0pKQorICAgICAgICBiYWNrZ3Jv
dW5kQ29sb3IgPSBjb2xvckZyb21Db2NvYUNvbG9yKG5zQmFja2dyb3VuZENvbG9yKTsKKyAgICBp
ZiAoIWJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCisgICAgICAgIGJhY2tncm91bmRDb2xvciA9
IENvbG9yOjp0cmFuc3BhcmVudEJsYWNrOworICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUJhY2tncm91bmRDb2xvciwgQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShiYWNrZ3JvdW5k
Q29sb3IpKTsKKworICAgIGlmIChOU0ZvbnQgKmZvbnQgPSBkeW5hbWljX29iamNfY2FzdDxOU0Zv
bnQ+KFtmb250QXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNGb250QXR0cmlidXRlTmFtZV0pKSB7
CisgICAgICAgIC8vIEZJWE1FOiBOZWVkIG1vcmUgc29waGlzdGljYXRlZCBlc2NhcGluZyBjb2Rl
IGlmIHdlIHdhbnQgdG8gaGFuZGxlIGZhbWlseSBuYW1lcworICAgICAgICAvLyB3aXRoIGNoYXJh
Y3RlcnMgbGlrZSBzaW5nbGUgcXVvdGUgb3IgYmFja3NsYXNoIGluIHRoZWlyIG5hbWVzLgorICAg
ICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGb250RmFtaWx5LCBbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDpAIiclQCciLCBbZm9udCBmYW1pbHlOYW1lXV0pOworICAgICAgICBz
dHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGb250U2l6ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6
OmNyZWF0ZShbZm9udCBwb2ludFNpemVdLCBDU1NVbml0VHlwZTo6Q1NTX1BYKSk7CisgICAgICAg
IC8vIEZJWE1FOiBNYXAgdG8gdGhlIGVudGlyZSByYW5nZSBvZiBDU1Mgd2VpZ2h0IHZhbHVlcy4K
KyAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Rm9udFdlaWdodCwgKFtOU0Zv
bnRNYW5hZ2VyLnNoYXJlZEZvbnRNYW5hZ2VyIHdlaWdodE9mRm9udDpmb250XSA+PSA3KSA/IENT
U1ZhbHVlQm9sZCA6IENTU1ZhbHVlTm9ybWFsKTsKKyAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5
KENTU1Byb3BlcnR5Rm9udFN0eWxlLCAoW05TRm9udE1hbmFnZXIuc2hhcmVkRm9udE1hbmFnZXIg
dHJhaXRzT2ZGb250OmZvbnRdICYgTlNJdGFsaWNGb250TWFzaykgPyBDU1NWYWx1ZUl0YWxpYyA6
IENTU1ZhbHVlTm9ybWFsKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdHlsZS0+c2V0UHJvcGVy
dHkoQ1NTUHJvcGVydHlGb250RmFtaWx5LCAiSGVsdmV0aWNhIl9zKTsKKyAgICAgICAgc3R5bGUt
PnNldFByb3BlcnR5KENTU1Byb3BlcnR5Rm9udFNpemUsIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVh
dGUoMTIsIENTU1VuaXRUeXBlOjpDU1NfUFgpKTsKKyAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5
KENTU1Byb3BlcnR5Rm9udFdlaWdodCwgQ1NTVmFsdWVOb3JtYWwpOworICAgICAgICBzdHlsZS0+
c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGb250U3R5bGUsIENTU1ZhbHVlTm9ybWFsKTsKKyAgICB9
CisKKyAgICBDb2xvciBmb3JlZ3JvdW5kQ29sb3I7CisgICAgaWYgKE5TQ29sb3IgKm5zRm9yZWdy
b3VuZENvbG9yID0gZHluYW1pY19vYmpjX2Nhc3Q8TlNDb2xvcj4oW2ZvbnRBdHRyaWJ1dGVzIG9i
amVjdEZvcktleTpOU0ZvcmVncm91bmRDb2xvckF0dHJpYnV0ZU5hbWVdKSkgeworICAgICAgICBm
b3JlZ3JvdW5kQ29sb3IgPSBjb2xvckZyb21Db2NvYUNvbG9yKG5zRm9yZWdyb3VuZENvbG9yKTsK
KyAgICAgICAgaWYgKCFmb3JlZ3JvdW5kQ29sb3IuaXNWYWxpZCgpKQorICAgICAgICAgICAgZm9y
ZWdyb3VuZENvbG9yID0gQ29sb3I6OnRyYW5zcGFyZW50QmxhY2s7CisgICAgfSBlbHNlCisgICAg
ICAgIGZvcmVncm91bmRDb2xvciA9IENvbG9yOjpibGFjazsKKyAgICBzdHlsZS0+c2V0UHJvcGVy
dHkoQ1NTUHJvcGVydHlDb2xvciwgQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShmb3JlZ3JvdW5k
Q29sb3IpKTsKKworICAgIEZvbnRTaGFkb3cgZm9udFNoYWRvdzsKKyAgICBpZiAoTlNTaGFkb3cg
Km5zRm9udFNoYWRvdyA9IGR5bmFtaWNfb2JqY19jYXN0PE5TU2hhZG93PihbZm9udEF0dHJpYnV0
ZXMgb2JqZWN0Rm9yS2V5Ok5TU2hhZG93QXR0cmlidXRlTmFtZV0pKQorICAgICAgICBmb250U2hh
ZG93ID0gZm9udFNoYWRvd0Zyb21OU1NoYWRvdyhuc0ZvbnRTaGFkb3cpOworICAgIHN0eWxlLT5z
ZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVRleHRTaGFkb3csIHNlcmlhbGl6YXRpb25Gb3JDU1MoZm9u
dFNoYWRvdykpOworCisgICAgYXV0byBzdXBlcnNjcmlwdFN0eWxlID0gW1tmb250QXR0cmlidXRl
cyBvYmplY3RGb3JLZXk6TlNTdXBlcnNjcmlwdEF0dHJpYnV0ZU5hbWVdIGludFZhbHVlXTsKKyAg
ICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCAoc3VwZXJzY3Jp
cHRTdHlsZSA+IDApID8gQ1NTVmFsdWVTdXBlciA6ICgoc3VwZXJzY3JpcHRTdHlsZSA8IDApID8g
Q1NTVmFsdWVTdWIgOiBDU1NWYWx1ZUJhc2VsaW5lKSk7CisKKyAgICAvLyBGSVhNRTogVW5kZXJs
aW5lIHdpbnMgaGVyZSBpZiB3ZSBoYXZlIGJvdGggKHNlZSBidWcgMzc5MDQ0MykuCisgICAgYXV0
byB1bmRlcmxpbmVTdHlsZSA9IFtbZm9udEF0dHJpYnV0ZXMgb2JqZWN0Rm9yS2V5Ok5TVW5kZXJs
aW5lU3R5bGVBdHRyaWJ1dGVOYW1lXSBpbnRWYWx1ZV07CisgICAgYXV0byBzdHJpa2V0aHJvdWdo
U3R5bGUgPSBbW2ZvbnRBdHRyaWJ1dGVzIG9iamVjdEZvcktleTpOU1N0cmlrZXRocm91Z2hTdHls
ZUF0dHJpYnV0ZU5hbWVdIGludFZhbHVlXTsKKyAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJv
cGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCwgKHVuZGVybGluZVN0eWxlICE9IE5T
VW5kZXJsaW5lU3R5bGVOb25lKSA/IENTU1ZhbHVlVW5kZXJsaW5lIDogKChzdHJpa2V0aHJvdWdo
U3R5bGUgIT0gTlNVbmRlcmxpbmVTdHlsZU5vbmUpID8gQ1NTVmFsdWVMaW5lVGhyb3VnaCA6IENT
U1ZhbHVlTm9uZSkpOworCisgICAgYXBwbHlTdHlsZVRvU2VsZWN0aW9uKHN0eWxlLnB0cigpLCBF
ZGl0QWN0aW9uOjpQYXN0ZUZvbnQpOworCisgICAgY2xpZW50KCktPnNldEluc2VydGlvblBhc3Rl
Ym9hcmQoU3RyaW5nKCkpOworfQorCiB2b2lkIEVkaXRvcjo6cmVhZFNlbGVjdGlvbkZyb21QYXN0
ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCiB7CiAgICAgUGFzdGVib2FyZCBw
YXN0ZWJvYXJkKFBhZ2VQYXN0ZWJvYXJkQ29udGV4dDo6Y3JlYXRlKG1fZG9jdW1lbnQucGFnZUlE
KCkpLCBwYXN0ZWJvYXJkTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L3dpbi9FZGl0b3JXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy93aW4vRWRpdG9yV2lu
LmNwcAppbmRleCAzYjQwNTJkNDllNTU0MDBhYTMwYmJlN2VhNzE4M2M3YTQ2YjhjN2M0Li4xYjUx
OWUyNWYwNjNmY2MyODFhMTY4MDQ4MWYwMzdjOWM2YTQ1MGMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvd2luL0VkaXRvcldpbi5jcHAKQEAgLTUyLDYgKzUyLDE0IEBAIHZvaWQgRWRpdG9yOjpw
YXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIE9wdGlvblNldDxQYXN0
ZU9wdGlvbj4KICAgICAgICAgcGFzdGVBc0ZyYWdtZW50KGZyYWdtZW50LnJlbGVhc2VOb25OdWxs
KCksIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hvc2VQbGFp
blRleHQsIG9wdGlvbnMuY29udGFpbnMoUGFzdGVPcHRpb246Oklnbm9yZU1haWxCbG9ja3F1b3Rl
KSA/IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6Oklnbm9yZUJsb2NrcXVvdGUgOiBNYWlsQmxvY2tx
dW90ZUhhbmRsaW5nOjpSZXNwZWN0QmxvY2txdW90ZSk7CiB9CiAKK3ZvaWQgRWRpdG9yOjpwbGF0
Zm9ybUNvcHlGb250KCkKK3sKK30KKwordm9pZCBFZGl0b3I6OnBsYXRmb3JtUGFzdGVGb250KCkK
K3sKK30KKwogdGVtcGxhdGUgPHR5cGVuYW1lIFBsYXRmb3JtRHJhZ0RhdGE+CiBzdGF0aWMgUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVBsYXRmb3JtRGF0YShQbGF0
Zm9ybURyYWdEYXRhJiBwbGF0Zm9ybURyYWdEYXRhLCBGcmFtZSYgZnJhbWUpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDA5NzM0NDMwMzkwNjFiOGY5
OGIwYzA3MTc4ZTRhZjZhNTA0NDAwMGMuLjE3MjJmNzIzOGRhMjJkYWE0MzUyMDA0NTFhMzI1Nzcy
NmEwNDE2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBA
IC0yMDUsNiArMjA1LDcgQEAgV0VCQ09SRV9DT01NQU5EKGFsaWduSnVzdGlmaWVkKQogV0VCQ09S
RV9DT01NQU5EKGFsaWduTGVmdCkKIFdFQkNPUkVfQ09NTUFORChhbGlnblJpZ2h0KQogV0VCQ09S
RV9DT01NQU5EKGNvcHkpCitXRUJDT1JFX0NPTU1BTkQoY29weUZvbnQpCiBXRUJDT1JFX0NPTU1B
TkQoY3V0KQogV0VCQ09SRV9DT01NQU5EKGRlbGV0ZSkKIFdFQkNPUkVfQ09NTUFORChkZWxldGVC
YWNrd2FyZCkKQEAgLTI3OCw2ICsyNzksNyBAQCBXRUJDT1JFX0NPTU1BTkQocGFnZVVwKQogV0VC
Q09SRV9DT01NQU5EKHBhZ2VVcEFuZE1vZGlmeVNlbGVjdGlvbikKIFdFQkNPUkVfQ09NTUFORChw
YXN0ZSkKIFdFQkNPUkVfQ09NTUFORChwYXN0ZUFzUGxhaW5UZXh0KQorV0VCQ09SRV9DT01NQU5E
KHBhc3RlRm9udCkKIFdFQkNPUkVfQ09NTUFORChzY3JvbGxQYWdlRG93bikKIFdFQkNPUkVfQ09N
TUFORChzY3JvbGxQYWdlVXApCiBXRUJDT1JFX0NPTU1BTkQoc2Nyb2xsTGluZURvd24pCkBAIC0z
MzksMTEgKzM0MSw5IEBAIGluZGl2aWR1YWwgbWV0aG9kcyBoZXJlIHdpdGggTWFjLXNwZWNpZmlj
IGNvZGUuCiBFZGl0aW5nLXJlbGF0ZWQgbWV0aG9kcyBzdGlsbCB1bmltcGxlbWVudGVkIHRoYXQg
YXJlIGltcGxlbWVudGVkIGluIFdlYktpdDE6CiAKIC0gKHZvaWQpY29tcGxldGU6KGlkKXNlbmRl
cjsKLS0gKHZvaWQpY29weUZvbnQ6KGlkKXNlbmRlcjsKIC0gKHZvaWQpbWFrZUJhc2VXcml0aW5n
RGlyZWN0aW9uTGVmdFRvUmlnaHQ6KGlkKXNlbmRlcjsKIC0gKHZvaWQpbWFrZUJhc2VXcml0aW5n
RGlyZWN0aW9uTmF0dXJhbDooaWQpc2VuZGVyOwogLSAodm9pZCltYWtlQmFzZVdyaXRpbmdEaXJl
Y3Rpb25SaWdodFRvTGVmdDooaWQpc2VuZGVyOwotLSAodm9pZClwYXN0ZUZvbnQ6KGlkKXNlbmRl
cjsKIC0gKHZvaWQpc2Nyb2xsTGluZURvd246KGlkKXNlbmRlcjsKIC0gKHZvaWQpc2Nyb2xsTGlu
ZVVwOihpZClzZW5kZXI7CiAtICh2b2lkKXNob3dHdWVzc1BhbmVsOihpZClzZW5kZXI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCmluZGV4IDJk
MzA2OWNjZTI1MjQ0NzU5OWQxZDZiYWUzN2QwNmE5ZTJlYzY3MGIuLmQ2ZmFmNDg4MjFlMGEwZmFh
MDczYzE5ZTg1MThhN2I1MjI0MWExZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCkBAIC0xNjcsNiArMTY3LDcgQEAgV0VCQ09SRV9DT01N
QU5EKGFsaWduSnVzdGlmaWVkKQogV0VCQ09SRV9DT01NQU5EKGFsaWduTGVmdCkKIFdFQkNPUkVf
Q09NTUFORChhbGlnblJpZ2h0KQogV0VCQ09SRV9DT01NQU5EKGNvcHkpCitXRUJDT1JFX0NPTU1B
TkQoY29weUZvbnQpCiBXRUJDT1JFX0NPTU1BTkQoY3V0KQogV0VCQ09SRV9DT01NQU5EKGRlbGV0
ZSkKIFdFQkNPUkVfQ09NTUFORChkZWxldGVCYWNrd2FyZCkKQEAgLTI0MCw2ICsyNDEsNyBAQCBX
RUJDT1JFX0NPTU1BTkQocGFnZVVwKQogV0VCQ09SRV9DT01NQU5EKHBhZ2VVcEFuZE1vZGlmeVNl
bGVjdGlvbikKIFdFQkNPUkVfQ09NTUFORChwYXN0ZSkKIFdFQkNPUkVfQ09NTUFORChwYXN0ZUFz
UGxhaW5UZXh0KQorV0VCQ09SRV9DT01NQU5EKHBhc3RlRm9udCkKIFdFQkNPUkVfQ09NTUFORChz
Y3JvbGxMaW5lRG93bikKIFdFQkNPUkVfQ09NTUFORChzY3JvbGxMaW5lVXApCiBXRUJDT1JFX0NP
TU1BTkQoc2Nyb2xsVG9CZWdpbm5pbmdPZkRvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA4OGM1ZGQ4OWMxNGY3OWI1ZjUwOGNlMmE1
NDQ1YjdmNzUzMGI0YjVkLi4yZTEwZGE2NmFiZjY0ODcyZjkxM2MxMzA1M2EyZWI3ZGI3YTdmYzJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAt
NDU5MCw2ICs0NTkwLDkgQEAgc3RhdGljIE5TUGFzdGVib2FyZE5hbWUgcGFzdGVib2FyZE5hbWVG
b3JBY2Nlc3NDYXRlZ29yeShXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0MKICAgICBzd2l0Y2ggKHBh
c3RlQWNjZXNzQ2F0ZWdvcnkpIHsKICAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0
ZWdvcnk6OkdlbmVyYWw6CiAgICAgICAgIHJldHVybiBOU1Bhc3RlYm9hcmROYW1lR2VuZXJhbDsK
KworICAgIGNhc2UgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9udHM6CisgICAg
ICAgIHJldHVybiBOU1Bhc3RlYm9hcmROYW1lRm9udDsKICAgICB9CiB9CiAKQEAgLTQ1OTgsNiAr
NDYwMSw5IEBAIHN0YXRpYyBOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmRGb3JBY2Nlc3NDYXRlZ29y
eShXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5CiAgICAgc3dpdGNoIChwYXN0ZUFjY2Vz
c0NhdGVnb3J5KSB7CiAgICAgY2FzZSBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpH
ZW5lcmFsOgogICAgICAgICByZXR1cm4gTlNQYXN0ZWJvYXJkLmdlbmVyYWxQYXN0ZWJvYXJkOwor
CisgICAgY2FzZSBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250czoKKyAgICAg
ICAgcmV0dXJuIFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhOYW1lOk5TUGFzdGVib2FyZE5h
bWVGb250XTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCmluZGV4IDEzYzVkMjkyZWZkZjJiY2U4MDMzZDdjOTQwYWI5NWNmYjQ5ZmFkNjQuLmQ0MTEw
OWZhODQ3ZGUzZjBlMTUzOTk3N2Y4NDgwZDIxNDc2NjQxN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjUxNiw2ICsyNTE2LDcgQEAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeT4gcGFzdGVBY2Nlc3NDYXRlZ29yeUZvckNv
bW1hbmQoY29uc3QKICAgICAgICAgeyAiUGFzdGVBbmRNYXRjaFN0eWxlIiwgRE9NUGFzdGVBY2Nl
c3NDYXRlZ29yeTo6R2VuZXJhbCB9LAogICAgICAgICB7ICJQYXN0ZUFzUXVvdGF0aW9uIiwgRE9N
UGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbCB9LAogICAgICAgICB7ICJQYXN0ZUFzUGxhaW5U
ZXh0IiwgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbCB9LAorICAgICAgICB7ICJQYXN0
ZUZvbnQiLCBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250cyB9LAogICAgIH07CiAKICAgICBh
dXRvIGl0ID0gcGFzdGVDb21tYW5kTmFtZXMtPmZpbmQoY29tbWFuZE5hbWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KaW5kZXggNjJiNTA3YjcyNjg0MzY0MGM3NjQ1ODRmMmYwMGUwNGI2ZmNkN2E0My4uYzc3NDQ4
MzhmZDcwZDQwNjg3YmU0ODFmNDhlOGNkYzg5OWYyZDA2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC00
MTY4LDYgKzQxNjgsNyBAQCBzdGF0aWMgVUlQYXN0ZWJvYXJkTmFtZSBwYXN0ZWJvYXJkTmFtZUZv
ckFjY2Vzc0NhdGVnb3J5KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQwogewogICAgIHN3aXRjaCAo
cGFzdGVBY2Nlc3NDYXRlZ29yeSkgewogICAgIGNhc2UgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3ND
YXRlZ29yeTo6R2VuZXJhbDoKKyAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdv
cnk6OkZvbnRzOgogICAgICAgICByZXR1cm4gVUlQYXN0ZWJvYXJkTmFtZUdlbmVyYWw7CiAgICAg
fQogfQpAQCAtNDE3Niw2ICs0MTc3LDcgQEAgc3RhdGljIFVJUGFzdGVib2FyZCAqcGFzdGVib2Fy
ZEZvckFjY2Vzc0NhdGVnb3J5KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkKIHsKICAg
ICBzd2l0Y2ggKHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIHsKICAgICBjYXNlIFdlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWw6CisgICAgY2FzZSBXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc0NhdGVnb3J5OjpGb250czoKICAgICAgICAgcmV0dXJuIFVJUGFzdGVib2FyZC5nZW5lcmFs
UGFzdGVib2FyZDsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQppbmRleCAwZGRmYzNlNjkxZjI5ZDc5YTJmOWIzYWE2YjFjMDU5YWYz
N2MwMDBhLi5kZDgyOTUzYjkwZjRmMTNiZGI4Y2E3NmM0MjhkMGMwNzJjMGM1ZGI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTE1NDgs
NiArMTU0OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybVBhc3RlQ29tbWFuZChE
T01QYXN0ZUFjY2Vzc0NhdGVnb3J5IHBhc3RlQWNjZXNzQ2F0CiB7CiAgICAgc3dpdGNoIChwYXN0
ZUFjY2Vzc0NhdGVnb3J5KSB7CiAgICAgY2FzZSBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpHZW5l
cmFsOgorICAgIGNhc2UgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9udHM6CiAgICAgICAgIGdy
YW50QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEoVUlQYXN0ZWJvYXJkTmFtZUdlbmVyYWwp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XZWJQYWdlUHJveHlNYWMubW0KaW5kZXggYmExZjVkN2IzN2IxMTkyODExMWFmMDVmOGE2ZDBk
YjAwNjU5ODU2OC4uZTQ0MjdlMmMyMGRmMWVhY2FhNDFkMDIzNTdlODdmYjNhZWMxNzBlZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCkBAIC02
NTcsNiArNjU3LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybVBhc3RlQ29tbWFu
ZChET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IHBhc3RlQWNjZXNzQ2F0CiAgICAgY2FzZSBET01QYXN0
ZUFjY2Vzc0NhdGVnb3J5OjpHZW5lcmFsOgogICAgICAgICBncmFudEFjY2Vzc1RvQ3VycmVudFBh
c3RlYm9hcmREYXRhKE5TUGFzdGVib2FyZE5hbWVHZW5lcmFsKTsKICAgICAgICAgcmV0dXJuOwor
CisgICAgY2FzZSBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250czoKKyAgICAgICAgZ3JhbnRB
Y2Nlc3NUb0N1cnJlbnRQYXN0ZWJvYXJkRGF0YShOU1Bhc3RlYm9hcmROYW1lRm9udCk7CisgICAg
ICAgIHJldHVybjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjZjMyYTBjOGMyMjYyMjJhNjRjYzYwOTE5
MGI4ODMxZTliOTFiZTNhLi5jYzEzMDNiMzlkYTRmYzU5OWQ2ZjM5YzNlNjUwYTRmYmY2MzEwMGNm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMTItMTAgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgorCisgICAgICAgIFdLV2ViVmlldyBkb2VzbuKAmXQgcmVzcG9uZCB0byAt
Y29weUZvbnQ6IGFuZCAtcGFzdGVGb250OgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMzc5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTg3ODY1
OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGVk
aXRpbmcvZWRpdGluZy5qczoKKyAgICAgICAgKGV4ZWNDb3B5Rm9udENvbW1hbmQpOiBBZGRlZC4K
KyAgICAgICAgKGNvcHlGb250Q29tbWFuZCk6IEFkZGVkLgorICAgICAgICAoZXhlY1Bhc3RlRm9u
dENvbW1hbmQpOiBBZGRlZC4KKyAgICAgICAgKHBhc3RlRm9udENvbW1hbmQpOiBBZGRlZC4KKyAg
ICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL21hYy9jb3B5Rm9udC1wYXN0ZUZvbnQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9tYWMvY29weUZvbnQtcGFzdGVG
b250LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0xMi0xMCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEltcHJvdmUgPHR5cGU9
ImRhdGV0aW1lLWxvY2FsIj4gdmFsdWUgcGFyc2luZyBhbmQgc2FuaXRpemF0aW9uCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA0M2I0ZGVlNGUxMTliOTNkNzY4YzE5ZDMwM2VmNTNlOGVmOTZlYTJmLi4z
MDg3MjgwYTAzZGU4YTEzNDYyMjM5M2EyNGRlMmZjZTFiM2FhZmE2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTIwLDYgKzIwLDcgQEAgZWRpdGluZy9tYWMgWyBTa2lwIF0KIGVkaXRpbmcvY2FyZXQv
aW9zIFsgU2tpcCBdCiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbiBbIFNraXAgXQogZWRpdGluZy9l
eGVjQ29tbWFuZC9pb3MgWyBTa2lwIF0KK2VkaXRpbmcvZXhlY0NvbW1hbmQvbWFjIFsgU2tpcCBd
CiBlZGl0aW5nL2lucHV0L2NvY29hIFsgU2tpcCBdCiBlZGl0aW5nL2lucHV0L2lvcyBbIFNraXAg
XQogZWRpdGluZy9maW5kIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L2VkaXRpbmcuanMgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRpbmcuanMKaW5kZXggOTk4MTY0
ZWIwYjYxMWRmYmVjOGFiZWQ3YTYwMTMyOGE5NTNmZjI3MS4uODM2Y2JjNzdjNDY1NWZmODM4YTEx
NWM3YTM5MTRhYjJhYmZhNTlhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0
aW5nLmpzCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGluZy5qcwpAQCAtODExLDYgKzgx
MSwzNCBAQCBmdW5jdGlvbiBwYXN0ZUNvbW1hbmQoKSB7CiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCitmdW5jdGlvbiBleGVjQ29weUZvbnRDb21t
YW5kKCkgeworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJDb3B5Rm9udCIpOworICAgIGRlYnVn
Rm9yRHVtcEFzVGV4dCgiZXhlY0NvcHlGb250Q29tbWFuZCIpOworfQorZnVuY3Rpb24gY29weUZv
bnRDb21tYW5kKCkgeworICAgIGlmIChjb21tYW5kRGVsYXkgPiAwKSB7CisgICAgICAgIHF1ZXVl
Q29tbWFuZChleGVjQ29weUZvbnRDb21tYW5kLCBjb21tYW5kQ291bnQgKiBjb21tYW5kRGVsYXkp
OworICAgICAgICBjb21tYW5kQ291bnQrKzsKKyAgICB9IGVsc2UKKyAgICAgICAgZXhlY0NvcHlG
b250Q29tbWFuZCgpOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworZnVuY3Rpb24gZXhlY1Bhc3RlRm9udENvbW1hbmQoKSB7CisgICAgZG9j
dW1lbnQuZXhlY0NvbW1hbmQoIlBhc3RlRm9udCIpOworICAgIGRlYnVnRm9yRHVtcEFzVGV4dCgi
ZXhlY1Bhc3RlRm9udENvbW1hbmQiKTsKK30KK2Z1bmN0aW9uIHBhc3RlRm9udENvbW1hbmQoKSB7
CisgICAgaWYgKGNvbW1hbmREZWxheSA+IDApIHsKKyAgICAgICAgcXVldWVDb21tYW5kKGV4ZWNQ
YXN0ZUZvbnRDb21tYW5kLCBjb21tYW5kQ291bnQgKiBjb21tYW5kRGVsYXkpOworICAgICAgICBj
b21tYW5kQ291bnQrKzsKKyAgICB9IGVsc2UKKyAgICAgICAgZXhlY1Bhc3RlRm9udENvbW1hbmQo
KTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKIGZ1bmN0aW9uIGV4ZWNDcmVhdGVMaW5rQ29tbWFuZCh1cmwpIHsKICAgICBkb2N1bWVudC5l
eGVjQ29tbWFuZCgiQ3JlYXRlTGluayIsIGZhbHNlLCB1cmwpOwogICAgIGRlYnVnRm9yRHVtcEFz
VGV4dCgiZXhlY0NyZWF0ZUxpbmtDb21tYW5kIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL21hYy9jb3B5Rm9udC1wYXN0ZUZvbnQtZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvbWFjL2NvcHlGb250LXBhc3RlRm9udC1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxYjE4NTEzNzE3NjIwOWRjY2UwNTZjNzZmNTYzOTY3
ZTliZWE0ODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21t
YW5kL21hYy9jb3B5Rm9udC1wYXN0ZUZvbnQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDIwIEBA
Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyNjb3B5IHsKKyAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBncmVlbjsKKyAgICBmb250LWZhbWlseTogQXJpYWw7CisgICAgZm9udC1zaXplOiAyMHB4
OworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgICBj
b2xvcjogeWVsbG93OworICAgIHRleHQtc2hhZG93OiBibGFjayAxcHggMXB4OworICAgIHZlcnRp
Y2FsLWFsaWduOiBzdWI7Cit9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxk
aXYgaWQ9ImNvcHkiPmNvcHkgdGhpczwvZGl2PgorICAgIDxkaXYgaWQ9InBhc3RlIiBjb250ZW50
ZWRpdGFibGU9IiI+PGZvbnQgY29sb3I9IiNmZmZmMDAiIGZhY2U9IkFyaWFsIj48c3BhbiBzdHls
ZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDEyOCwgMCk7IGZvbnQtc2l6ZTogMjBweDsgdGV4
dC1zaGFkb3c6IHJnYigwLCAwLCAwKSAxcHggMXB4OyI+PGI+PGk+PHN1Yj5wYXN0ZSBoZXJlPC9z
dWI+PC9pPjwvYj48L3NwYW4+PC9mb250PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9tYWMvY29weUZvbnQtcGFzdGVG
b250Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL21hYy9jb3B5Rm9udC1w
YXN0ZUZvbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYTBkYmUxMjhkNGU2MDYzOTdiNTJjNTdmOGMwNzZm
Y2NlMzliNTYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29t
bWFuZC9tYWMvY29weUZvbnQtcGFzdGVGb250Lmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0uLi8uLi9lZGl0aW5nLmpzPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQ+CitmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKKyAgICBsZXQgc2VsZWN0aW9uID0g
d2luZG93LmdldFNlbGVjdGlvbigpOworCisgICAgbGV0IGNvcHlSYW5nZSA9IGRvY3VtZW50LmNy
ZWF0ZVJhbmdlKCk7CisgICAgY29weVJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29weSIpKTsKKyAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7
CisgICAgc2VsZWN0aW9uLmFkZFJhbmdlKGNvcHlSYW5nZSk7CisgICAgY29weUZvbnRDb21tYW5k
KCk7CisKKyAgICBsZXQgcGFzdGVSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CisgICAg
cGFzdGVSYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBh
c3RlIikpOworICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTsKKyAgICBzZWxlY3Rpb24u
YWRkUmFuZ2UocGFzdGVSYW5nZSk7CisgICAgcGFzdGVGb250Q29tbWFuZCgpOworCisgICAgc2Vs
ZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpOworfQorICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4K
KyNjb3B5IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICBmb250LWZhbWlseTog
QXJpYWw7CisgICAgZm9udC1zaXplOiAyMHB4OworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAg
IGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgICBjb2xvcjogeWVsbG93OworICAgIHRleHQtc2hhZG93
OiBibGFjayAxcHggMXB4OworICAgIHZlcnRpY2FsLWFsaWduOiBzdWI7Cit9CisjcGFzdGUgewor
ICAgIG91dGxpbmU6IG5vbmU7Cit9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAg
IDxkaXYgaWQ9ImNvcHkiPmNvcHkgdGhpczwvZGl2PgorICAgIDxkaXYgaWQ9InBhc3RlIiBjb250
ZW50ZWRpdGFibGU+cGFzdGUgaGVyZTwvZGl2PgorICAgIDxzY3JpcHQ+CitydW5FZGl0aW5nVGVz
dCgpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwZTNlN2JiN2Y1NzJjZjFiYjQ3M2YwMzUzNTdm
ZTE3OTE1YmQwY2I0Li5jNjcxMmEwMGIwODJjY2Y4ZjAyODkzMDdiYTIzOWU4NjMxMjA0NDRmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOSw2ICs5LDcg
QEAKIGFjY2Vzc2liaWxpdHkvbWFjIFsgUGFzcyBdCiBjb21wb3NpdGluZy9zY3JvbGxpbmcvYXN5
bmMtb3ZlcmZsb3ctc2Nyb2xsaW5nL21hYyBbIFBhc3MgXQogZGlzcGxheWxpc3RzIFsgUGFzcyBd
CitlZGl0aW5nL2V4ZWNDb21tYW5kL21hYyBbIFBhc3MgXQogZWRpdGluZy9pbnB1dC9jb2NvYSBb
IFBhc3MgXQogZWRpdGluZy9tYWMgWyBQYXNzIF0KIGVkaXRpbmcvcGFzdGVib2FyZC9tYWMgWyBQ
YXNzIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446842</attachid>
            <date>2021-12-10 16:24:28 -0800</date>
            <delta_ts>2021-12-10 18:08:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191379-20211210172427.patch</filename>
            <type>text/plain</type>
            <size>35116</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4Y2I0NmVkYWE5ZDRiYmFkMjA5MzhlNmQ1YmU5YjEyOGI0YjI1ZGE2Li44
MDkyZWJhOTgyYTI4NjA0OTdkODFkMGE3MjU4MmNjOGEwMTRiN2MyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTAgQEAKKzIwMjEtMTItMTAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdLV2ViVmlldyBkb2VzbuKAmXQgcmVzcG9uZCB0byAtY29weUZvbnQ6IGFu
ZCAtcGFzdGVGb250OgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkxMzc5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTg3ODY1OT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9leGVj
Q29tbWFuZC9tYWMvY29weUZvbnQtcGFzdGVGb250Lmh0bWwKKworICAgICAgICAqIGRvbS9ET01Q
YXN0ZUFjY2Vzcy5oOgorICAgICAgICBBZGQgYERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkZvbnRz
YCAod2hpY2ggY29ycmVzcG9uZHMgdG8gYE5TUGFzdGVib2FyZE5hbWVGb250YCBvbiBtYWNPUyku
CisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV2ZW50TmFtZUZvckNsaXBib2FyZEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZURhdGFUcmFuc2ZlckZvckNsaXBib2FyZEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y29weUZvbnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6cGFzdGVGb250KTogQWRkZWQuCisgICAgICAgIEFkZCBwbGF0Zm9ybS1hZ25v
c3RpYyBoYW5kbGluZyBmb3IgYCJDb3B5Rm9udCJgIGFuZCBgIlBhc3RlRm9udCJgIGVkaXRvciBj
b21tYW5kcy4KKworICAgICAgICAqIGVkaXRpbmcvbWFjL0VkaXRvck1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6cGxhdGZvcm1Db3B5Rm9udCk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpwbGF0Zm9ybVBhc3RlRm9udCk6IEFkZGVkLgorICAgICAgICBNaW1pYyB0
aGUgbG9naWMgaW4gYC1bV2ViSFRNTFZpZXcgY29weUZvbnQ6XWAvYC1bV2ViSFRNTFZpZXcgcGFz
dGVGb250Ol1gIHRvIGJlIGNvbXBhdGlibGUKKyAgICAgICAgd2l0aCBXSzEgKGkuZS4gdG8gbWFr
ZSBpdCBlYXNpZXIgZm9yIGNsaWVudHMgdG8gc3dpdGNoIHRvIFdLMikuCisKKyAgICAgICAgKiBl
ZGl0aW5nL2d0ay9FZGl0b3JHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwbGF0
Zm9ybUNvcHlGb250KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBsYXRmb3Jt
UGFzdGVGb250KTogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwbGF0Zm9ybUNvcHlGb250KTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnBsYXRmb3JtUGFzdGVGb250KTogQWRkZWQuCisgICAgICAg
ICogZWRpdGluZy9saWJ3cGUvRWRpdG9yTGliV1BFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6cGxhdGZvcm1Db3B5Rm9udCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
OjpwbGF0Zm9ybVBhc3RlRm9udCk6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvd2luL0VkaXRv
cldpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBsYXRmb3JtQ29weUZvbnQpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGxhdGZvcm1QYXN0ZUZvbnQpOiBBZGRl
ZC4KKyAgICAgICAgQWRkIHN0dWJzIGZvciBvdGhlciBwbGF0Zm9ybXMuCisKKyAgICAgICAgKiBl
ZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUNvcHlG
b250KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlUGFzdGVGb250KTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVDb21tYW5kTWFwKToKKyAgICAgICAgSG9vayBgIkNv
cHlGb250ImAgYW5kIGAiUGFzdGVGb250ImAgZWRpdG9yIGNvbW1hbmRzIHVwIHRvIGBkb2N1bWVu
dC5leGVjQ29tbWFuZGAuCisKIDIwMjEtMTItMTAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBw
bGUuY29tPgogCiAgICAgICAgIEFsbG93IGBQYXN0ZWJvYXJkOjpyZWFkQnVmZmVyYCB0byByZWFk
IGZyb20gdGhlIHBhc3RlYm9hcmQgYXMgYSB3aG9sZSBpbnN0ZWFkIG9mIGEgc3BlY2lmaWMgaXRl
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAzNTM1YzVkOTVmNzViNzQ2NTg0ODNjYmM2ZWQzYmE4NDY5OTJlZjIyLi43
Njc2ZmUzNjYwMDlmNWYxNzhmOWE0ODIwNzkzMmNiM2MyMWVhMjZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMzIEBACisyMDIxLTEyLTEwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
KworICAgICAgICBXS1dlYlZpZXcgZG9lc27igJl0IHJlc3BvbmQgdG8gLWNvcHlGb250OiBhbmQg
LXBhc3RlRm9udDoKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTM3OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDU4Nzg2NTk+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbToK
KyAgICAgICAgQWRkIGAtY29weUZvbnQ6YCBhbmQgYC1wYXN0ZUZvbnQ6YCBtZXRob2RzIHZpYSBg
V0VCQ09SRV9DT01NQU5EYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpwYXN0ZUFjY2Vzc0NhdGVnb3J5Rm9yQ29tbWFuZCk6CisgICAg
ICAgIFRoZSBgUGFzdGVGb250YCBjb21tYW5kIHNob3VsZCBiZSBjYXRlZ29yaXplZCBhcyBgRE9N
UGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9udHNgLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpwYXN0ZWJvYXJkTmFtZUZvckFjY2Vz
c0NhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6cGFzdGVib2FyZEZvckFjY2Vzc0NhdGVnb3J5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybVBhc3RlQ29tbWFuZCk6CisgICAgICAg
IENvcnJlbGF0ZSBgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9udHNgIHdpdGggYE5TUGFzdGVi
b2FyZE5hbWVGb250YC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tOgorICAgICAgICAocGFzdGVib2FyZE5hbWVGb3JBY2Nlc3NDYXRlZ29yeSk6
CisgICAgICAgIChwYXN0ZWJvYXJkRm9yQWNjZXNzQ2F0ZWdvcnkpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OndpbGxQZXJmb3JtUGFzdGVDb21tYW5kKToKKyAgICAgICAgQ29ycmVsYXRlIGBET01QYXN0
ZUFjY2Vzc0NhdGVnb3J5OjpGb250c2Agd2l0aCBgVUlQYXN0ZWJvYXJkTmFtZUdlbmVyYWxgLgor
CiAyMDIxLTEyLTEwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBbGxvdyBgUGFzdGVib2FyZDo6cmVhZEJ1ZmZlcmAgdG8gcmVhZCBmcm9tIHRoZSBwYXN0ZWJv
YXJkIGFzIGEgd2hvbGUgaW5zdGVhZCBvZiBhIHNwZWNpZmljIGl0ZW0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01QYXN0ZUFjY2Vzcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RP
TVBhc3RlQWNjZXNzLmgKaW5kZXggZGI1YTY0NGNhNjI0N2ZkOWJhMWUwMWIyZThiNzNhNzIwMzEy
MDI1ZC4uYzdlM2Y4YjlkYzgzMjU3NzA1Zjc1ZWZkMmRlMjkzMzVlNzQ2ODZmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBhc3RlQWNjZXNzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RPTVBhc3RlQWNjZXNzLmgKQEAgLTMxLDYgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgOiB1aW50OF90IHsKICAg
ICBHZW5lcmFsLAorICAgIEZvbnRzLAogfTsKIAogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Bv
bGljeSA6IHVpbnQ4X3QgewpAQCAtNTIsNyArNTMsOCBAQCBuYW1lc3BhY2UgV1RGIHsKIHRlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeT4g
ewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzQ2F0ZWdvcnksCi0gICAgICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdv
cnk6OkdlbmVyYWwKKyAgICAgICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2Vu
ZXJhbCwKKyAgICAgICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9udHMKICAg
ICA+OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDE3MjRjZjBlNTBiYWE1
YjliMjQxMzA0ODFlZTcyNGNiNzgyMDdhYTQuLjI4MzFjZDNmYTljNmE0ZjlmZjlhOWEwZTI1YzNi
NDJlNTJkMWI2NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTM3Miw4ICszNzIs
MTAgQEAgYm9vbCBFZGl0b3I6OmNhbkVkaXRSaWNobHkoKSBjb25zdAogCiBlbnVtIGNsYXNzIENs
aXBib2FyZEV2ZW50S2luZCB7CiAgICAgQ29weSwKKyAgICBDb3B5Rm9udCwKICAgICBDdXQsCiAg
ICAgUGFzdGUsCisgICAgUGFzdGVGb250LAogICAgIFBhc3RlQXNQbGFpblRleHQsCiAgICAgUGFz
dGVBc1F1b3RhdGlvbiwKICAgICBCZWZvcmVDb3B5LApAQCAtMzg1LDEyICszODcsMTQgQEAgc3Rh
dGljIEF0b21TdHJpbmcgZXZlbnROYW1lRm9yQ2xpcGJvYXJkRXZlbnQoQ2xpcGJvYXJkRXZlbnRL
aW5kIGtpbmQpCiB7CiAgICAgc3dpdGNoIChraW5kKSB7CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVu
dEtpbmQ6OkNvcHk6CisgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OkNvcHlGb250OgogICAg
ICAgICByZXR1cm4gZXZlbnROYW1lcygpLmNvcHlFdmVudDsKICAgICBjYXNlIENsaXBib2FyZEV2
ZW50S2luZDo6Q3V0OgogICAgICAgICByZXR1cm4gZXZlbnROYW1lcygpLmN1dEV2ZW50OwogICAg
IGNhc2UgQ2xpcGJvYXJkRXZlbnRLaW5kOjpQYXN0ZToKICAgICBjYXNlIENsaXBib2FyZEV2ZW50
S2luZDo6UGFzdGVBc1BsYWluVGV4dDoKICAgICBjYXNlIENsaXBib2FyZEV2ZW50S2luZDo6UGFz
dGVBc1F1b3RhdGlvbjoKKyAgICBjYXNlIENsaXBib2FyZEV2ZW50S2luZDo6UGFzdGVGb250Ogog
ICAgICAgICByZXR1cm4gZXZlbnROYW1lcygpLnBhc3RlRXZlbnQ7CiAgICAgY2FzZSBDbGlwYm9h
cmRFdmVudEtpbmQ6OkJlZm9yZUNvcHk6CiAgICAgICAgIHJldHVybiBldmVudE5hbWVzKCkuYmVm
b3JlY29weUV2ZW50OwpAQCAtNDA3LDYgKzQxMSw3IEBAIHN0YXRpYyBSZWY8RGF0YVRyYW5zZmVy
PiBjcmVhdGVEYXRhVHJhbnNmZXJGb3JDbGlwYm9hcmRFdmVudChEb2N1bWVudCYgZG9jdW1lbnQs
CiB7CiAgICAgc3dpdGNoIChraW5kKSB7CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OkNv
cHk6CisgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OkNvcHlGb250OgogICAgIGNhc2UgQ2xp
cGJvYXJkRXZlbnRLaW5kOjpDdXQ6CiAgICAgICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0
ZUZvckNvcHlBbmRQYXN0ZShkb2N1bWVudCwgRGF0YVRyYW5zZmVyOjpTdG9yZU1vZGU6OlJlYWRX
cml0ZSwgbWFrZVVuaXF1ZTxTdGF0aWNQYXN0ZWJvYXJkPigpKTsKICAgICBjYXNlIENsaXBib2Fy
ZEV2ZW50S2luZDo6UGFzdGVBc1BsYWluVGV4dDoKQEAgLTQyMCw2ICs0MjUsNyBAQCBzdGF0aWMg
UmVmPERhdGFUcmFuc2Zlcj4gY3JlYXRlRGF0YVRyYW5zZmVyRm9yQ2xpcGJvYXJkRXZlbnQoRG9j
dW1lbnQmIGRvY3VtZW50LAogICAgICAgICBGQUxMVEhST1VHSDsKICAgICBjYXNlIENsaXBib2Fy
ZEV2ZW50S2luZDo6UGFzdGU6CiAgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3RlQXNR
dW90YXRpb246CisgICAgY2FzZSBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3RlRm9udDoKICAgICAg
ICAgcmV0dXJuIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKGRvY3VtZW50LCBE
YXRhVHJhbnNmZXI6OlN0b3JlTW9kZTo6UmVhZG9ubHksIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNv
cHlBbmRQYXN0ZShQYWdlUGFzdGVib2FyZENvbnRleHQ6OmNyZWF0ZShkb2N1bWVudC5wYWdlSUQo
KSkpKTsKICAgICBjYXNlIENsaXBib2FyZEV2ZW50S2luZDo6QmVmb3JlQ29weToKICAgICBjYXNl
IENsaXBib2FyZEV2ZW50S2luZDo6QmVmb3JlQ3V0OgpAQCAtMTQwNCw2ICsxNDEwLDIxIEBAIHZv
aWQgRWRpdG9yOjpjb3B5KEZyb21NZW51T3JLZXlCaW5kaW5nIGZyb21NZW51T3JLZXlCaW5kaW5n
KQogICAgIHBlcmZvcm1DdXRPckNvcHkoQ29weUFjdGlvbik7CiB9CiAKK3ZvaWQgRWRpdG9yOjpj
b3B5Rm9udChGcm9tTWVudU9yS2V5QmluZGluZyBmcm9tTWVudU9yS2V5QmluZGluZykKK3sKKyAg
ICBTZXRGb3JTY29wZTxib29sPiBjb3B5U2NvcGUgeyBtX2NvcHlpbmdGcm9tTWVudU9yS2V5Qmlu
ZGluZywgZnJvbU1lbnVPcktleUJpbmRpbmcgPT0gRnJvbU1lbnVPcktleUJpbmRpbmc6OlllcyB9
OworICAgIGlmICh0cnlESFRNTENvcHkoKSkKKyAgICAgICAgcmV0dXJuOyAvLyBESFRNTCBkaWQg
dGhlIHdob2xlIG9wZXJhdGlvbgorICAgIGlmICghY2FuQ29weSgpKSB7CisgICAgICAgIFN5c3Rl
bVNvdW5kTWFuYWdlcjo6c2luZ2xldG9uKCkuc3lzdGVtQmVlcCgpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgd2lsbFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKHNlbGVjdGVkUmFu
Z2UoKSk7CisgICAgcGxhdGZvcm1Db3B5Rm9udCgpOworICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9Q
YXN0ZWJvYXJkKCk7Cit9CisKIHZvaWQgRWRpdG9yOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZp
Y2F0aW9uRm9yQ3V0KGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
c2VsZWN0aW9uKQogewogICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkKQEAgLTE1MTIsNiArMTUzMywxOSBAQCB2b2lkIEVkaXRvcjo6cGFzdGVBc1F1b3RhdGlv
bihGcm9tTWVudU9yS2V5QmluZGluZyBmcm9tTWVudU9yS2V5QmluZGluZykKICAgICAgICAgcGFz
dGVBc1BsYWluVGV4dFdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKTsKIH0KIAordm9pZCBFZGl0
b3I6OnBhc3RlRm9udChGcm9tTWVudU9yS2V5QmluZGluZyBmcm9tTWVudU9yS2V5QmluZGluZykK
K3sKKyAgICBTZXRGb3JTY29wZTxib29sPiBwYXN0ZVNjb3BlIHsgbV9wYXN0aW5nRnJvbU1lbnVP
cktleUJpbmRpbmcsIGZyb21NZW51T3JLZXlCaW5kaW5nID09IEZyb21NZW51T3JLZXlCaW5kaW5n
OjpZZXMgfTsKKworICAgIGlmICghZGlzcGF0Y2hDbGlwYm9hcmRFdmVudChmaW5kRXZlbnRUYXJn
ZXRGcm9tU2VsZWN0aW9uKCksIENsaXBib2FyZEV2ZW50S2luZDo6UGFzdGVGb250KSkKKyAgICAg
ICAgcmV0dXJuOworICAgIGlmICghY2FuUGFzdGUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHVw
ZGF0ZU1hcmtlcnNGb3JXb3Jkc0FmZmVjdGVkQnlFZGl0aW5nKGZhbHNlKTsKKyAgICBSZXNvdXJj
ZUNhY2hlVmFsaWRhdGlvblN1cHByZXNzb3IgdmFsaWRhdGlvblN1cHByZXNzb3IoZG9jdW1lbnQo
KS5jYWNoZWRSZXNvdXJjZUxvYWRlcigpKTsKKyAgICBwbGF0Zm9ybVBhc3RlRm9udCgpOworfQor
CiB2b2lkIEVkaXRvcjo6cXVvdGVGcmFnbWVudEZvclBhc3RpbmcoRG9jdW1lbnRGcmFnbWVudCYg
ZnJhZ21lbnQpCiB7CiAgICAgYXV0byBibG9ja1F1b3RlID0gSFRNTFF1b3RlRWxlbWVudDo6Y3Jl
YXRlKGJsb2NrcXVvdGVUYWcsIGRvY3VtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5k
ZXggMDFmZTBiNWUwNDRlZjYzZjI2YTcxYjQ3MmVmOThiMTFjMjI4YjkxYy4uYjAzMTM2ZmZjZjFm
NmIzN2U2YjA3YWI2MjMyZTYxZjY2ZGVlNzU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBA
IC0xOTcsMTEgKzE5NywxMyBAQCBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBGcm9tTWVudU9yS2V5
QmluZGluZyA6IGJvb2wgeyBObywgWWVzIH07CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjdXQo
RnJvbU1lbnVPcktleUJpbmRpbmcgPSBGcm9tTWVudU9yS2V5QmluZGluZzo6Tm8pOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgY29weShGcm9tTWVudU9yS2V5QmluZGluZyA9IEZyb21NZW51T3JL
ZXlCaW5kaW5nOjpObyk7CisgICAgdm9pZCBjb3B5Rm9udChGcm9tTWVudU9yS2V5QmluZGluZyA9
IEZyb21NZW51T3JLZXlCaW5kaW5nOjpObyk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBh
c3RlKEZyb21NZW51T3JLZXlCaW5kaW5nID0gRnJvbU1lbnVPcktleUJpbmRpbmc6Ok5vKTsKICAg
ICB2b2lkIHBhc3RlKFBhc3RlYm9hcmQmLCBGcm9tTWVudU9yS2V5QmluZGluZyA9IEZyb21NZW51
T3JLZXlCaW5kaW5nOjpObyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwYXN0ZUFzUGxhaW5U
ZXh0KEZyb21NZW51T3JLZXlCaW5kaW5nID0gRnJvbU1lbnVPcktleUJpbmRpbmc6Ok5vKTsKICAg
ICB2b2lkIHBhc3RlQXNRdW90YXRpb24oRnJvbU1lbnVPcktleUJpbmRpbmcgPSBGcm9tTWVudU9y
S2V5QmluZGluZzo6Tm8pOworICAgIHZvaWQgcGFzdGVGb250KEZyb21NZW51T3JLZXlCaW5kaW5n
ID0gRnJvbU1lbnVPcktleUJpbmRpbmc6Ok5vKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBl
cmZvcm1EZWxldGUoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29weVVSTChjb25zdCBV
UkwmLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKQEAgLTU5Miw2ICs1OTQsOSBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcGFzdGVXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkKiwgT3B0aW9uU2V0PFBhc3Rl
T3B0aW9uPik7CiAgICAgU3RyaW5nIHBsYWluVGV4dEZyb21QYXN0ZWJvYXJkKGNvbnN0IFBhc3Rl
Ym9hcmRQbGFpblRleHQmKTsKIAorICAgIHZvaWQgcGxhdGZvcm1Db3B5Rm9udCgpOworICAgIHZv
aWQgcGxhdGZvcm1QYXN0ZUZvbnQoKTsKKwogICAgIHZvaWQgcXVvdGVGcmFnbWVudEZvclBhc3Rp
bmcoRG9jdW1lbnRGcmFnbWVudCYpOwogCiAgICAgdm9pZCByZXZlYWxTZWxlY3Rpb25BZnRlckVk
aXRpbmdPcGVyYXRpb24oY29uc3QgU2Nyb2xsQWxpZ25tZW50JiA9IFNjcm9sbEFsaWdubWVudDo6
YWxpZ25DZW50ZXJJZk5lZWRlZCwgUmV2ZWFsRXh0ZW50T3B0aW9uID0gRG9Ob3RSZXZlYWxFeHRl
bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggZjE4NzU5
ZDA2MmRmNTk2Zjk0NTdkOTE5MGE1NzBhNzE0OTJlMzRmYy4uNjFhMWVhNmI5NzU3YzdiYjc1NWY5
NDJkZWFjODgwMTE1ZTdkNGRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1h
bmQuY3BwCkBAIC0yNDIsNiArMjQyLDEyIEBAIHN0YXRpYyBib29sIGV4ZWN1dGVDb3B5KEZyYW1l
JiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgZXhlY3V0ZUNvcHlGb250KEZyYW1lJiBmcmFt
ZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJikKK3sK
KyAgICBmcmFtZS5lZGl0b3IoKS5jb3B5Rm9udChzb3VyY2UgPT0gQ29tbWFuZEZyb21NZW51T3JL
ZXlCaW5kaW5nID8gRWRpdG9yOjpGcm9tTWVudU9yS2V5QmluZGluZzo6WWVzIDogRWRpdG9yOjpG
cm9tTWVudU9yS2V5QmluZGluZzo6Tm8pOworICAgIHJldHVybiB0cnVlOworfQorCiBzdGF0aWMg
Ym9vbCBleGVjdXRlQ3JlYXRlTGluayhGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFu
ZFNvdXJjZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICAvLyBGSVhNRTogSWYgdXNlcklu
dGVyZmFjZSBpcyB0cnVlLCB3ZSBzaG91bGQgZGlzcGxheSBhIGRpYWxvZyBib3ggdG8gbGV0IHRo
ZSB1c2VyIGVudGVyIGEgVVJMLgpAQCAtOTA2LDYgKzkxMiwyMSBAQCBzdGF0aWMgYm9vbCBleGVj
dXRlUGFzdGUoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNl
LCBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgYm9vbCBleGVjdXRlUGFzdGVG
b250KEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29u
c3QgU3RyaW5nJikKK3sKKyAgICBpZiAoc291cmNlID09IENvbW1hbmRGcm9tTWVudU9yS2V5Qmlu
ZGluZykgeworICAgICAgICBVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvciB0eXBpbmdHZXN0dXJl
SW5kaWNhdG9yKGZyYW1lKTsKKyAgICAgICAgZnJhbWUuZWRpdG9yKCkucGFzdGVGb250KEVkaXRv
cjo6RnJvbU1lbnVPcktleUJpbmRpbmc6Olllcyk7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworICAgIGlmICghZnJhbWUucmVxdWVzdERPTVBhc3RlQWNjZXNzKERPTVBhc3RlQWNjZXNz
Q2F0ZWdvcnk6OkZvbnRzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZnJhbWUuZWRp
dG9yKCkucGFzdGVGb250KCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKICNpZiBQTEFURk9STShH
VEspCiAKIHN0YXRpYyBib29sIGV4ZWN1dGVQYXN0ZUdsb2JhbFNlbGVjdGlvbihGcmFtZSYgZnJh
bWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIGNvbnN0IFN0cmluZyYpCkBA
IC0xNjE0LDYgKzE2MzUsNyBAQCBzdGF0aWMgY29uc3QgQ29tbWFuZE1hcCYgY3JlYXRlQ29tbWFu
ZE1hcCgpCiAgICAgICAgIHsgIkJvbGQiX3MsIHsgZXhlY3V0ZVRvZ2dsZUJvbGQsIHN1cHBvcnRl
ZCwgZW5hYmxlZEluUmljaGx5RWRpdGFibGVUZXh0LCBzdGF0ZUJvbGQsIHZhbHVlTnVsbCwgbm90
VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAg
ICAgIHsgIkNsZWFyVGV4dCJfcywgeyBleGVjdXRlQ2xlYXJUZXh0LCBzdXBwb3J0ZWQsIGVuYWJs
ZWRDbGVhclRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBhbGxv
d0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIkNvcHkiX3MsIHsgZXhlY3V0
ZUNvcHksIHN1cHBvcnRlZENvcHlDdXQsIGVuYWJsZWRDb3B5LCBzdGF0ZU5vbmUsIHZhbHVlTnVs
bCwgbm90VGV4dEluc2VydGlvbiwgYWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWRDb3B5Q3V0IH0g
fSwKKyAgICAgICAgeyAiQ29weUZvbnQiX3MsIHsgZXhlY3V0ZUNvcHlGb250LCBzdXBwb3J0ZWRD
b3B5Q3V0LCBlbmFibGVkQ29weSwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRp
b24sIGFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkQ29weUN1dCB9IH0sCiAgICAgICAgIHsgIkNy
ZWF0ZUxpbmsiX3MsIHsgZXhlY3V0ZUNyZWF0ZUxpbmssIHN1cHBvcnRlZCwgZW5hYmxlZEluUmlj
aGx5RWRpdGFibGVUZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwg
ZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIkN1dCJfcywg
eyBleGVjdXRlQ3V0LCBzdXBwb3J0ZWRDb3B5Q3V0LCBlbmFibGVkQ3V0LCBzdGF0ZU5vbmUsIHZh
bHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgYWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWRDb3B5
Q3V0IH0gfSwKICAgICAgICAgeyAiRGVmYXVsdFBhcmFncmFwaFNlcGFyYXRvciJfcywgeyBleGVj
dXRlRGVmYXVsdFBhcmFncmFwaFNlcGFyYXRvciwgc3VwcG9ydGVkLCBlbmFibGVkLCBzdGF0ZU5v
bmUsIHZhbHVlRGVmYXVsdFBhcmFncmFwaFNlcGFyYXRvciwgbm90VGV4dEluc2VydGlvbiwgZG9O
b3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZH0gfSwKQEAgLTE3MTMsNiArMTczNSw3IEBAIHN0
YXRpYyBjb25zdCBDb21tYW5kTWFwJiBjcmVhdGVDb21tYW5kTWFwKCkKICAgICAgICAgeyAiUGFz
dGVBbmRNYXRjaFN0eWxlIl9zLCB7IGV4ZWN1dGVQYXN0ZUFuZE1hdGNoU3R5bGUsIHN1cHBvcnRl
ZFBhc3RlLCBlbmFibGVkUGFzdGUsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0
aW9uLCBhbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZFBhc3RlIH0gfSwKICAgICAgICAgeyAiUGFz
dGVBc1BsYWluVGV4dCJfcywgeyBleGVjdXRlUGFzdGVBc1BsYWluVGV4dCwgc3VwcG9ydGVkUGFz
dGUsIGVuYWJsZWRQYXN0ZSwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24s
IGFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkUGFzdGUgfSB9LAogICAgICAgICB7ICJQYXN0ZUFz
UXVvdGF0aW9uIl9zLCB7IGV4ZWN1dGVQYXN0ZUFzUXVvdGF0aW9uLCBzdXBwb3J0ZWRQYXN0ZSwg
ZW5hYmxlZFBhc3RlLCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgYWxs
b3dFeGVjdXRpb25XaGVuRGlzYWJsZWRQYXN0ZSB9IH0sCisgICAgICAgIHsgIlBhc3RlRm9udCJf
cywgeyBleGVjdXRlUGFzdGVGb250LCBzdXBwb3J0ZWRQYXN0ZSwgZW5hYmxlZFBhc3RlLCBzdGF0
ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgYWxsb3dFeGVjdXRpb25XaGVuRGlz
YWJsZWRQYXN0ZSB9IH0sCiAgICAgICAgIHsgIlByaW50Il9zLCB7IGV4ZWN1dGVQcmludCwgc3Vw
cG9ydGVkLCBlbmFibGVkLCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwg
ZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIlJlZG8iX3Ms
IHsgZXhlY3V0ZVJlZG8sIHN1cHBvcnRlZCwgZW5hYmxlZFJlZG8sIHN0YXRlTm9uZSwgdmFsdWVO
dWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0g
fSwKICAgICAgICAgeyAiUmVtb3ZlRm9ybWF0Il9zLCB7IGV4ZWN1dGVSZW1vdmVGb3JtYXQsIHN1
cHBvcnRlZCwgZW5hYmxlZFJhbmdlSW5FZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxs
LCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0VkaXRvckd0ay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0ay9FZGl0b3JHdGsuY3BwCmluZGV4IDYxYzU4MWEyZTg4
MjI5YmRhMTViOTNmMWNlZDNmZjZiNmU4OGI2MzguLjM2YzA0ZDYxMGQ4MmNjNmMwYTljMGQ2OWNl
MTM1ZDgzY2IwNmE2NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0Vk
aXRvckd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9ndGsvRWRpdG9yR3RrLmNw
cApAQCAtNjUsNiArNjUsMTQgQEAgdm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFz
dGVib2FyZCogcGFzdGVib2FyZCwgT3B0aW9uU2V0PFBhc3RlT3B0aW9uPgogICAgICAgICBwYXN0
ZUFzRnJhZ21lbnQoZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgY2FuU21hcnRSZXBsYWNlV2l0
aFBhc3RlYm9hcmQoKnBhc3RlYm9hcmQpLCBjaG9zZVBsYWluVGV4dCwgb3B0aW9ucy5jb250YWlu
cyhQYXN0ZU9wdGlvbjo6SWdub3JlTWFpbEJsb2NrcXVvdGUpID8gTWFpbEJsb2NrcXVvdGVIYW5k
bGluZzo6SWdub3JlQmxvY2txdW90ZSA6IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RC
bG9ja3F1b3RlKTsKIH0KIAordm9pZCBFZGl0b3I6OnBsYXRmb3JtQ29weUZvbnQoKQoreworfQor
Cit2b2lkIEVkaXRvcjo6cGxhdGZvcm1QYXN0ZUZvbnQoKQoreworfQorCiBzdGF0aWMgY29uc3Qg
QXRvbVN0cmluZyYgZWxlbWVudFVSTChFbGVtZW50JiBlbGVtZW50KQogewogICAgIGlmIChpczxI
VE1MSW1hZ2VFbGVtZW50PihlbGVtZW50KSB8fCBpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQppbmRleCA3MGYwYjcxMWE5
ZDM1Yjk2MjA1OGFmYjExYmE2OGZmYWZiNTVmYjE3Li44NTFmMjk1MGI5MWJhNDQwZDk5OTNhNTIy
ZjkxNTBmMDFhNTgxZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9F
ZGl0b3JJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1t
CkBAIC0yMzgsNiArMjM4LDE0IEBAIHZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBh
c3RlYm9hcmQqIHBhc3RlYm9hcmQsIE9wdGlvblNldDxQYXN0ZU9wdGlvbj4KICAgICAgICAgcGFz
dGVBc0ZyYWdtZW50KGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGNhblNtYXJ0UmVwbGFjZVdp
dGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgZmFsc2UsIG9wdGlvbnMuY29udGFpbnMoUGFzdGVP
cHRpb246Oklnbm9yZU1haWxCbG9ja3F1b3RlKSA/IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6Okln
bm9yZUJsb2NrcXVvdGUgOiBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0QmxvY2txdW90
ZSk7CiB9CiAKK3ZvaWQgRWRpdG9yOjpwbGF0Zm9ybUNvcHlGb250KCkKK3sKK30KKwordm9pZCBF
ZGl0b3I6OnBsYXRmb3JtUGFzdGVGb250KCkKK3sKK30KKwogdm9pZCBFZGl0b3I6Omluc2VydERp
Y3RhdGlvblBocmFzZXMoVmVjdG9yPFZlY3RvcjxTdHJpbmc+PiYmIGRpY3RhdGlvblBocmFzZXMs
IGlkIG1ldGFkYXRhKQogewogICAgIGlmIChtX2RvY3VtZW50LnNlbGVjdGlvbigpLmlzTm9uZSgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9saWJ3cGUvRWRpdG9yTGliV1BF
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbGlid3BlL0VkaXRvckxpYldQRS5jcHAKaW5k
ZXggOWRkNDFkNjM2NjUxMmZkMzg1OTM3YTc2MDhiZDNmYzliNWI5MGY2MC4uODU5NWVkMWRkZjM4
OTcxMTQyMmU0NTM5ODhkYmJjM2RlNWRlODcwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9saWJ3cGUvRWRpdG9yTGliV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2xpYndwZS9FZGl0b3JMaWJXUEUuY3BwCkBAIC05MSw2ICs5MSwxNCBAQCB2b2lkIEVkaXRv
cjo6cGFzdGVXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkLCBPcHRpb25TZXQ8
UGFzdGVPcHRpb24+CiAgICAgICAgIHBhc3RlQXNGcmFnbWVudCgqZnJhZ21lbnQsIGNhblNtYXJ0
UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hvc2VQbGFpblRleHQsIG9wdGlv
bnMuY29udGFpbnMoUGFzdGVPcHRpb246Oklnbm9yZU1haWxCbG9ja3F1b3RlKSA/IE1haWxCbG9j
a3F1b3RlSGFuZGxpbmc6Oklnbm9yZUJsb2NrcXVvdGUgOiBNYWlsQmxvY2txdW90ZUhhbmRsaW5n
OjpSZXNwZWN0QmxvY2txdW90ZSk7CiB9CiAKK3ZvaWQgRWRpdG9yOjpwbGF0Zm9ybUNvcHlGb250
KCkKK3sKK30KKwordm9pZCBFZGl0b3I6OnBsYXRmb3JtUGFzdGVGb250KCkKK3sKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKExJQldQRSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQppbmRleCAyZDE5YjljN2MyMmIzZWJjMjY3YzY3NjEw
NmM4OTJmMDliNzc3NTNkLi4zMDM2Y2QzMmQ2Y2Q4MzJjMjIwMjgzYTg0NDVhODk5YTVhNjZjYTNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCkBAIC0zMSwxMCArMzEs
MTUgQEAKICNpbXBvcnQgIkJsb2IuaCIKICNpbXBvcnQgIkNTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaCIKICNpbXBvcnQgIkNTU1ZhbHVlUG9vbC5oIgorI2ltcG9ydCAiQ29sb3IuaCIKKyNpbXBv
cnQgIkNvbG9yQ29jb2EuaCIKKyNpbXBvcnQgIkNvbG9yU2VyaWFsaXphdGlvbi5oIgogI2ltcG9y
dCAiRGF0YVRyYW5zZmVyLmgiCiAjaW1wb3J0ICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW1wb3J0
ICJFZGl0aW5nLmgiCiAjaW1wb3J0ICJFZGl0b3JDbGllbnQuaCIKKyNpbXBvcnQgIkZvbnRBdHRy
aWJ1dGVzLmgiCisjaW1wb3J0ICJGb250U2hhZG93LmgiCiAjaW1wb3J0ICJGcmFtZS5oIgogI2lt
cG9ydCAiRnJhbWVWaWV3LmgiCiAjaW1wb3J0ICJIVE1MQ29udmVydGVyLmgiCkBAIC01MCwxMSAr
NTUsMTMgQEAKICNpbXBvcnQgIlJlbmRlckltYWdlLmgiCiAjaW1wb3J0ICJSdW50aW1lQXBwbGlj
YXRpb25DaGVja3MuaCIKICNpbXBvcnQgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKKyNpbXBv
cnQgIlNoYXJlZEJ1ZmZlci5oIgogI2ltcG9ydCAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW1wb3J0
ICJXZWJDb250ZW50UmVhZGVyLmgiCiAjaW1wb3J0ICJXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRy
YXMuaCIKICNpbXBvcnQgIm1hcmt1cC5oIgogI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgorI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL2NvY29hL05TVVJMRXh0cmFzLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTk5LDYgKzEwNiw4MyBAQCB2b2lkIEVkaXRvcjo6
cGFzdGVXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkLCBPcHRpb25TZXQ8UGFz
dGVPcHRpb24+CiAgICAgY2xpZW50KCktPnNldEluc2VydGlvblBhc3RlYm9hcmQoU3RyaW5nKCkp
OwogfQogCit2b2lkIEVkaXRvcjo6cGxhdGZvcm1Db3B5Rm9udCgpCit7CisgICAgUGFzdGVib2Fy
ZCBwYXN0ZWJvYXJkKFBhZ2VQYXN0ZWJvYXJkQ29udGV4dDo6Y3JlYXRlKG1fZG9jdW1lbnQucGFn
ZUlEKCkpLCBOU1Bhc3RlYm9hcmROYW1lRm9udCk7CisKKyAgICBhdXRvIGZvbnRTYW1wbGVTdHJp
bmcgPSBhZG9wdE5TKFtbTlNBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0aFN0cmluZzpA
IngiIGF0dHJpYnV0ZXM6Zm9udEF0dHJpYnV0ZXNBdFNlbGVjdGlvblN0YXJ0KCkuY3JlYXRlRGlj
dGlvbmFyeSgpLmdldCgpXSk7CisgICAgYXV0byBmb250RGF0YSA9IFJldGFpblB0cihbZm9udFNh
bXBsZVN0cmluZyBSVEZGcm9tUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgW2ZvbnRTYW1wbGVTdHJpbmcg
bGVuZ3RoXSkgZG9jdW1lbnRBdHRyaWJ1dGVzOkB7IH1dKTsKKworICAgIFBhc3RlYm9hcmRCdWZm
ZXIgcGFzdGVib2FyZEJ1ZmZlcjsKKyAgICBwYXN0ZWJvYXJkQnVmZmVyLmNvbnRlbnRPcmlnaW4g
PSBtX2RvY3VtZW50Lm9yaWdpbklkZW50aWZpZXJGb3JQYXN0ZWJvYXJkKCk7CisgICAgcGFzdGVi
b2FyZEJ1ZmZlci50eXBlID0gbGVnYWN5Rm9udFBhc3RlYm9hcmRUeXBlKCk7CisgICAgcGFzdGVi
b2FyZEJ1ZmZlci5kYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZm9udERhdGEuZ2V0KCkpOwor
ICAgIHBhc3RlYm9hcmQud3JpdGUocGFzdGVib2FyZEJ1ZmZlcik7Cit9CisKK3ZvaWQgRWRpdG9y
OjpwbGF0Zm9ybVBhc3RlRm9udCgpCit7CisgICAgUGFzdGVib2FyZCBwYXN0ZWJvYXJkKFBhZ2VQ
YXN0ZWJvYXJkQ29udGV4dDo6Y3JlYXRlKG1fZG9jdW1lbnQucGFnZUlEKCkpLCBOU1Bhc3RlYm9h
cmROYW1lRm9udCk7CisKKyAgICBjbGllbnQoKS0+c2V0SW5zZXJ0aW9uUGFzdGVib2FyZChwYXN0
ZWJvYXJkLm5hbWUoKSk7CisKKyAgICBSZXRhaW5QdHI8TlNEYXRhPiBmb250RGF0YTsKKyAgICBp
ZiAoYXV0byBidWZmZXIgPSBwYXN0ZWJvYXJkLnJlYWRCdWZmZXIoc3RkOjpudWxsb3B0LCBsZWdh
Y3lGb250UGFzdGVib2FyZFR5cGUoKSkpCisgICAgICAgIGZvbnREYXRhID0gYnVmZmVyLT5jcmVh
dGVOU0RhdGEoKTsKKyAgICBhdXRvIGZvbnRTYW1wbGVTdHJpbmcgPSBhZG9wdE5TKFtbTlNBdHRy
aWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0aFJURjpmb250RGF0YS5nZXQoKSBkb2N1bWVudEF0
dHJpYnV0ZXM6bmlsXSk7CisgICAgYXV0byBmb250QXR0cmlidXRlcyA9IFJldGFpblB0cihbZm9u
dFNhbXBsZVN0cmluZyBmb250QXR0cmlidXRlc0luUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgMSldKTsK
KworICAgIGF1dG8gc3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpjcmVhdGUoKTsKKwor
ICAgIENvbG9yIGJhY2tncm91bmRDb2xvcjsKKyAgICBpZiAoTlNDb2xvciAqbnNCYWNrZ3JvdW5k
Q29sb3IgPSBkeW5hbWljX29iamNfY2FzdDxOU0NvbG9yPihbZm9udEF0dHJpYnV0ZXMgb2JqZWN0
Rm9yS2V5Ok5TQmFja2dyb3VuZENvbG9yQXR0cmlidXRlTmFtZV0pKQorICAgICAgICBiYWNrZ3Jv
dW5kQ29sb3IgPSBjb2xvckZyb21Db2NvYUNvbG9yKG5zQmFja2dyb3VuZENvbG9yKTsKKyAgICBp
ZiAoIWJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkpCisgICAgICAgIGJhY2tncm91bmRDb2xvciA9
IENvbG9yOjp0cmFuc3BhcmVudEJsYWNrOworICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUJhY2tncm91bmRDb2xvciwgQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShiYWNrZ3JvdW5k
Q29sb3IpKTsKKworICAgIGlmIChOU0ZvbnQgKmZvbnQgPSBkeW5hbWljX29iamNfY2FzdDxOU0Zv
bnQ+KFtmb250QXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNGb250QXR0cmlidXRlTmFtZV0pKSB7
CisgICAgICAgIC8vIEZJWE1FOiBOZWVkIG1vcmUgc29waGlzdGljYXRlZCBlc2NhcGluZyBjb2Rl
IGlmIHdlIHdhbnQgdG8gaGFuZGxlIGZhbWlseSBuYW1lcworICAgICAgICAvLyB3aXRoIGNoYXJh
Y3RlcnMgbGlrZSBzaW5nbGUgcXVvdGUgb3IgYmFja3NsYXNoIGluIHRoZWlyIG5hbWVzLgorICAg
ICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGb250RmFtaWx5LCBbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDpAIiclQCciLCBbZm9udCBmYW1pbHlOYW1lXV0pOworICAgICAgICBz
dHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGb250U2l6ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6
OmNyZWF0ZShbZm9udCBwb2ludFNpemVdLCBDU1NVbml0VHlwZTo6Q1NTX1BYKSk7CisgICAgICAg
IC8vIEZJWE1FOiBNYXAgdG8gdGhlIGVudGlyZSByYW5nZSBvZiBDU1Mgd2VpZ2h0IHZhbHVlcy4K
KyAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Rm9udFdlaWdodCwgKFtOU0Zv
bnRNYW5hZ2VyLnNoYXJlZEZvbnRNYW5hZ2VyIHdlaWdodE9mRm9udDpmb250XSA+PSA3KSA/IENT
U1ZhbHVlQm9sZCA6IENTU1ZhbHVlTm9ybWFsKTsKKyAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5
KENTU1Byb3BlcnR5Rm9udFN0eWxlLCAoW05TRm9udE1hbmFnZXIuc2hhcmVkRm9udE1hbmFnZXIg
dHJhaXRzT2ZGb250OmZvbnRdICYgTlNJdGFsaWNGb250TWFzaykgPyBDU1NWYWx1ZUl0YWxpYyA6
IENTU1ZhbHVlTm9ybWFsKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdHlsZS0+c2V0UHJvcGVy
dHkoQ1NTUHJvcGVydHlGb250RmFtaWx5LCAiSGVsdmV0aWNhIl9zKTsKKyAgICAgICAgc3R5bGUt
PnNldFByb3BlcnR5KENTU1Byb3BlcnR5Rm9udFNpemUsIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVh
dGUoMTIsIENTU1VuaXRUeXBlOjpDU1NfUFgpKTsKKyAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5
KENTU1Byb3BlcnR5Rm9udFdlaWdodCwgQ1NTVmFsdWVOb3JtYWwpOworICAgICAgICBzdHlsZS0+
c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGb250U3R5bGUsIENTU1ZhbHVlTm9ybWFsKTsKKyAgICB9
CisKKyAgICBDb2xvciBmb3JlZ3JvdW5kQ29sb3I7CisgICAgaWYgKE5TQ29sb3IgKm5zRm9yZWdy
b3VuZENvbG9yID0gZHluYW1pY19vYmpjX2Nhc3Q8TlNDb2xvcj4oW2ZvbnRBdHRyaWJ1dGVzIG9i
amVjdEZvcktleTpOU0ZvcmVncm91bmRDb2xvckF0dHJpYnV0ZU5hbWVdKSkgeworICAgICAgICBm
b3JlZ3JvdW5kQ29sb3IgPSBjb2xvckZyb21Db2NvYUNvbG9yKG5zRm9yZWdyb3VuZENvbG9yKTsK
KyAgICAgICAgaWYgKCFmb3JlZ3JvdW5kQ29sb3IuaXNWYWxpZCgpKQorICAgICAgICAgICAgZm9y
ZWdyb3VuZENvbG9yID0gQ29sb3I6OnRyYW5zcGFyZW50QmxhY2s7CisgICAgfSBlbHNlCisgICAg
ICAgIGZvcmVncm91bmRDb2xvciA9IENvbG9yOjpibGFjazsKKyAgICBzdHlsZS0+c2V0UHJvcGVy
dHkoQ1NTUHJvcGVydHlDb2xvciwgQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShmb3JlZ3JvdW5k
Q29sb3IpKTsKKworICAgIEZvbnRTaGFkb3cgZm9udFNoYWRvdzsKKyAgICBpZiAoTlNTaGFkb3cg
Km5zRm9udFNoYWRvdyA9IGR5bmFtaWNfb2JqY19jYXN0PE5TU2hhZG93PihbZm9udEF0dHJpYnV0
ZXMgb2JqZWN0Rm9yS2V5Ok5TU2hhZG93QXR0cmlidXRlTmFtZV0pKQorICAgICAgICBmb250U2hh
ZG93ID0gZm9udFNoYWRvd0Zyb21OU1NoYWRvdyhuc0ZvbnRTaGFkb3cpOworICAgIHN0eWxlLT5z
ZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVRleHRTaGFkb3csIHNlcmlhbGl6YXRpb25Gb3JDU1MoZm9u
dFNoYWRvdykpOworCisgICAgYXV0byBzdXBlcnNjcmlwdFN0eWxlID0gW1tmb250QXR0cmlidXRl
cyBvYmplY3RGb3JLZXk6TlNTdXBlcnNjcmlwdEF0dHJpYnV0ZU5hbWVdIGludFZhbHVlXTsKKyAg
ICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCAoc3VwZXJzY3Jp
cHRTdHlsZSA+IDApID8gQ1NTVmFsdWVTdXBlciA6ICgoc3VwZXJzY3JpcHRTdHlsZSA8IDApID8g
Q1NTVmFsdWVTdWIgOiBDU1NWYWx1ZUJhc2VsaW5lKSk7CisKKyAgICAvLyBGSVhNRTogVW5kZXJs
aW5lIHdpbnMgaGVyZSBpZiB3ZSBoYXZlIGJvdGggKHNlZSBidWcgMzc5MDQ0MykuCisgICAgYXV0
byB1bmRlcmxpbmVTdHlsZSA9IFtbZm9udEF0dHJpYnV0ZXMgb2JqZWN0Rm9yS2V5Ok5TVW5kZXJs
aW5lU3R5bGVBdHRyaWJ1dGVOYW1lXSBpbnRWYWx1ZV07CisgICAgYXV0byBzdHJpa2V0aHJvdWdo
U3R5bGUgPSBbW2ZvbnRBdHRyaWJ1dGVzIG9iamVjdEZvcktleTpOU1N0cmlrZXRocm91Z2hTdHls
ZUF0dHJpYnV0ZU5hbWVdIGludFZhbHVlXTsKKyAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJv
cGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCwgKHVuZGVybGluZVN0eWxlICE9IE5T
VW5kZXJsaW5lU3R5bGVOb25lKSA/IENTU1ZhbHVlVW5kZXJsaW5lIDogKChzdHJpa2V0aHJvdWdo
U3R5bGUgIT0gTlNVbmRlcmxpbmVTdHlsZU5vbmUpID8gQ1NTVmFsdWVMaW5lVGhyb3VnaCA6IENT
U1ZhbHVlTm9uZSkpOworCisgICAgYXBwbHlTdHlsZVRvU2VsZWN0aW9uKHN0eWxlLnB0cigpLCBF
ZGl0QWN0aW9uOjpQYXN0ZUZvbnQpOworCisgICAgY2xpZW50KCktPnNldEluc2VydGlvblBhc3Rl
Ym9hcmQoU3RyaW5nKCkpOworfQorCiB2b2lkIEVkaXRvcjo6cmVhZFNlbGVjdGlvbkZyb21QYXN0
ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCiB7CiAgICAgUGFzdGVib2FyZCBw
YXN0ZWJvYXJkKFBhZ2VQYXN0ZWJvYXJkQ29udGV4dDo6Y3JlYXRlKG1fZG9jdW1lbnQucGFnZUlE
KCkpLCBwYXN0ZWJvYXJkTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L3dpbi9FZGl0b3JXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy93aW4vRWRpdG9yV2lu
LmNwcAppbmRleCAzYjQwNTJkNDllNTU0MDBhYTMwYmJlN2VhNzE4M2M3YTQ2YjhjN2M0Li4xYjUx
OWUyNWYwNjNmY2MyODFhMTY4MDQ4MWYwMzdjOWM2YTQ1MGMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvd2luL0VkaXRvcldpbi5jcHAKQEAgLTUyLDYgKzUyLDE0IEBAIHZvaWQgRWRpdG9yOjpw
YXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIE9wdGlvblNldDxQYXN0
ZU9wdGlvbj4KICAgICAgICAgcGFzdGVBc0ZyYWdtZW50KGZyYWdtZW50LnJlbGVhc2VOb25OdWxs
KCksIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hvc2VQbGFp
blRleHQsIG9wdGlvbnMuY29udGFpbnMoUGFzdGVPcHRpb246Oklnbm9yZU1haWxCbG9ja3F1b3Rl
KSA/IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6Oklnbm9yZUJsb2NrcXVvdGUgOiBNYWlsQmxvY2tx
dW90ZUhhbmRsaW5nOjpSZXNwZWN0QmxvY2txdW90ZSk7CiB9CiAKK3ZvaWQgRWRpdG9yOjpwbGF0
Zm9ybUNvcHlGb250KCkKK3sKK30KKwordm9pZCBFZGl0b3I6OnBsYXRmb3JtUGFzdGVGb250KCkK
K3sKK30KKwogdGVtcGxhdGUgPHR5cGVuYW1lIFBsYXRmb3JtRHJhZ0RhdGE+CiBzdGF0aWMgUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVBsYXRmb3JtRGF0YShQbGF0
Zm9ybURyYWdEYXRhJiBwbGF0Zm9ybURyYWdEYXRhLCBGcmFtZSYgZnJhbWUpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDA5NzM0NDMwMzkwNjFiOGY5
OGIwYzA3MTc4ZTRhZjZhNTA0NDAwMGMuLjE3MjJmNzIzOGRhMjJkYWE0MzUyMDA0NTFhMzI1Nzcy
NmEwNDE2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBA
IC0yMDUsNiArMjA1LDcgQEAgV0VCQ09SRV9DT01NQU5EKGFsaWduSnVzdGlmaWVkKQogV0VCQ09S
RV9DT01NQU5EKGFsaWduTGVmdCkKIFdFQkNPUkVfQ09NTUFORChhbGlnblJpZ2h0KQogV0VCQ09S
RV9DT01NQU5EKGNvcHkpCitXRUJDT1JFX0NPTU1BTkQoY29weUZvbnQpCiBXRUJDT1JFX0NPTU1B
TkQoY3V0KQogV0VCQ09SRV9DT01NQU5EKGRlbGV0ZSkKIFdFQkNPUkVfQ09NTUFORChkZWxldGVC
YWNrd2FyZCkKQEAgLTI3OCw2ICsyNzksNyBAQCBXRUJDT1JFX0NPTU1BTkQocGFnZVVwKQogV0VC
Q09SRV9DT01NQU5EKHBhZ2VVcEFuZE1vZGlmeVNlbGVjdGlvbikKIFdFQkNPUkVfQ09NTUFORChw
YXN0ZSkKIFdFQkNPUkVfQ09NTUFORChwYXN0ZUFzUGxhaW5UZXh0KQorV0VCQ09SRV9DT01NQU5E
KHBhc3RlRm9udCkKIFdFQkNPUkVfQ09NTUFORChzY3JvbGxQYWdlRG93bikKIFdFQkNPUkVfQ09N
TUFORChzY3JvbGxQYWdlVXApCiBXRUJDT1JFX0NPTU1BTkQoc2Nyb2xsTGluZURvd24pCkBAIC0z
MzksMTEgKzM0MSw5IEBAIGluZGl2aWR1YWwgbWV0aG9kcyBoZXJlIHdpdGggTWFjLXNwZWNpZmlj
IGNvZGUuCiBFZGl0aW5nLXJlbGF0ZWQgbWV0aG9kcyBzdGlsbCB1bmltcGxlbWVudGVkIHRoYXQg
YXJlIGltcGxlbWVudGVkIGluIFdlYktpdDE6CiAKIC0gKHZvaWQpY29tcGxldGU6KGlkKXNlbmRl
cjsKLS0gKHZvaWQpY29weUZvbnQ6KGlkKXNlbmRlcjsKIC0gKHZvaWQpbWFrZUJhc2VXcml0aW5n
RGlyZWN0aW9uTGVmdFRvUmlnaHQ6KGlkKXNlbmRlcjsKIC0gKHZvaWQpbWFrZUJhc2VXcml0aW5n
RGlyZWN0aW9uTmF0dXJhbDooaWQpc2VuZGVyOwogLSAodm9pZCltYWtlQmFzZVdyaXRpbmdEaXJl
Y3Rpb25SaWdodFRvTGVmdDooaWQpc2VuZGVyOwotLSAodm9pZClwYXN0ZUZvbnQ6KGlkKXNlbmRl
cjsKIC0gKHZvaWQpc2Nyb2xsTGluZURvd246KGlkKXNlbmRlcjsKIC0gKHZvaWQpc2Nyb2xsTGlu
ZVVwOihpZClzZW5kZXI7CiAtICh2b2lkKXNob3dHdWVzc1BhbmVsOihpZClzZW5kZXI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCmluZGV4IDJk
MzA2OWNjZTI1MjQ0NzU5OWQxZDZiYWUzN2QwNmE5ZTJlYzY3MGIuLmQ2ZmFmNDg4MjFlMGEwZmFh
MDczYzE5ZTg1MThhN2I1MjI0MWExZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCkBAIC0xNjcsNiArMTY3LDcgQEAgV0VCQ09SRV9DT01N
QU5EKGFsaWduSnVzdGlmaWVkKQogV0VCQ09SRV9DT01NQU5EKGFsaWduTGVmdCkKIFdFQkNPUkVf
Q09NTUFORChhbGlnblJpZ2h0KQogV0VCQ09SRV9DT01NQU5EKGNvcHkpCitXRUJDT1JFX0NPTU1B
TkQoY29weUZvbnQpCiBXRUJDT1JFX0NPTU1BTkQoY3V0KQogV0VCQ09SRV9DT01NQU5EKGRlbGV0
ZSkKIFdFQkNPUkVfQ09NTUFORChkZWxldGVCYWNrd2FyZCkKQEAgLTI0MCw2ICsyNDEsNyBAQCBX
RUJDT1JFX0NPTU1BTkQocGFnZVVwKQogV0VCQ09SRV9DT01NQU5EKHBhZ2VVcEFuZE1vZGlmeVNl
bGVjdGlvbikKIFdFQkNPUkVfQ09NTUFORChwYXN0ZSkKIFdFQkNPUkVfQ09NTUFORChwYXN0ZUFz
UGxhaW5UZXh0KQorV0VCQ09SRV9DT01NQU5EKHBhc3RlRm9udCkKIFdFQkNPUkVfQ09NTUFORChz
Y3JvbGxMaW5lRG93bikKIFdFQkNPUkVfQ09NTUFORChzY3JvbGxMaW5lVXApCiBXRUJDT1JFX0NP
TU1BTkQoc2Nyb2xsVG9CZWdpbm5pbmdPZkRvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA4OGM1ZGQ4OWMxNGY3OWI1ZjUwOGNlMmE1
NDQ1YjdmNzUzMGI0YjVkLi4yZTEwZGE2NmFiZjY0ODcyZjkxM2MxMzA1M2EyZWI3ZGI3YTdmYzJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAt
NDU5MCw2ICs0NTkwLDkgQEAgc3RhdGljIE5TUGFzdGVib2FyZE5hbWUgcGFzdGVib2FyZE5hbWVG
b3JBY2Nlc3NDYXRlZ29yeShXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0MKICAgICBzd2l0Y2ggKHBh
c3RlQWNjZXNzQ2F0ZWdvcnkpIHsKICAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0
ZWdvcnk6OkdlbmVyYWw6CiAgICAgICAgIHJldHVybiBOU1Bhc3RlYm9hcmROYW1lR2VuZXJhbDsK
KworICAgIGNhc2UgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9udHM6CisgICAg
ICAgIHJldHVybiBOU1Bhc3RlYm9hcmROYW1lRm9udDsKICAgICB9CiB9CiAKQEAgLTQ1OTgsNiAr
NDYwMSw5IEBAIHN0YXRpYyBOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmRGb3JBY2Nlc3NDYXRlZ29y
eShXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5CiAgICAgc3dpdGNoIChwYXN0ZUFjY2Vz
c0NhdGVnb3J5KSB7CiAgICAgY2FzZSBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpH
ZW5lcmFsOgogICAgICAgICByZXR1cm4gTlNQYXN0ZWJvYXJkLmdlbmVyYWxQYXN0ZWJvYXJkOwor
CisgICAgY2FzZSBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250czoKKyAgICAg
ICAgcmV0dXJuIFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhOYW1lOk5TUGFzdGVib2FyZE5h
bWVGb250XTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCmluZGV4IDEzYzVkMjkyZWZkZjJiY2U4MDMzZDdjOTQwYWI5NWNmYjQ5ZmFkNjQuLmQ0MTEw
OWZhODQ3ZGUzZjBlMTUzOTk3N2Y4NDgwZDIxNDc2NjQxN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjUxNiw2ICsyNTE2LDcgQEAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeT4gcGFzdGVBY2Nlc3NDYXRlZ29yeUZvckNv
bW1hbmQoY29uc3QKICAgICAgICAgeyAiUGFzdGVBbmRNYXRjaFN0eWxlIiwgRE9NUGFzdGVBY2Nl
c3NDYXRlZ29yeTo6R2VuZXJhbCB9LAogICAgICAgICB7ICJQYXN0ZUFzUXVvdGF0aW9uIiwgRE9N
UGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbCB9LAogICAgICAgICB7ICJQYXN0ZUFzUGxhaW5U
ZXh0IiwgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbCB9LAorICAgICAgICB7ICJQYXN0
ZUZvbnQiLCBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250cyB9LAogICAgIH07CiAKICAgICBh
dXRvIGl0ID0gcGFzdGVDb21tYW5kTmFtZXMtPmZpbmQoY29tbWFuZE5hbWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KaW5kZXggNjJiNTA3YjcyNjg0MzY0MGM3NjQ1ODRmMmYwMGUwNGI2ZmNkN2E0My4uYzc3NDQ4
MzhmZDcwZDQwNjg3YmU0ODFmNDhlOGNkYzg5OWYyZDA2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC00
MTY4LDYgKzQxNjgsNyBAQCBzdGF0aWMgVUlQYXN0ZWJvYXJkTmFtZSBwYXN0ZWJvYXJkTmFtZUZv
ckFjY2Vzc0NhdGVnb3J5KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQwogewogICAgIHN3aXRjaCAo
cGFzdGVBY2Nlc3NDYXRlZ29yeSkgewogICAgIGNhc2UgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3ND
YXRlZ29yeTo6R2VuZXJhbDoKKyAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdv
cnk6OkZvbnRzOgogICAgICAgICByZXR1cm4gVUlQYXN0ZWJvYXJkTmFtZUdlbmVyYWw7CiAgICAg
fQogfQpAQCAtNDE3Niw2ICs0MTc3LDcgQEAgc3RhdGljIFVJUGFzdGVib2FyZCAqcGFzdGVib2Fy
ZEZvckFjY2Vzc0NhdGVnb3J5KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkKIHsKICAg
ICBzd2l0Y2ggKHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIHsKICAgICBjYXNlIFdlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWw6CisgICAgY2FzZSBXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc0NhdGVnb3J5OjpGb250czoKICAgICAgICAgcmV0dXJuIFVJUGFzdGVib2FyZC5nZW5lcmFs
UGFzdGVib2FyZDsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQppbmRleCAwZGRmYzNlNjkxZjI5ZDc5YTJmOWIzYWE2YjFjMDU5YWYz
N2MwMDBhLi5kZDgyOTUzYjkwZjRmMTNiZGI4Y2E3NmM0MjhkMGMwNzJjMGM1ZGI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTE1NDgs
NiArMTU0OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybVBhc3RlQ29tbWFuZChE
T01QYXN0ZUFjY2Vzc0NhdGVnb3J5IHBhc3RlQWNjZXNzQ2F0CiB7CiAgICAgc3dpdGNoIChwYXN0
ZUFjY2Vzc0NhdGVnb3J5KSB7CiAgICAgY2FzZSBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpHZW5l
cmFsOgorICAgIGNhc2UgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6Rm9udHM6CiAgICAgICAgIGdy
YW50QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEoVUlQYXN0ZWJvYXJkTmFtZUdlbmVyYWwp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XZWJQYWdlUHJveHlNYWMubW0KaW5kZXggYmExZjVkN2IzN2IxMTkyODExMWFmMDVmOGE2ZDBk
YjAwNjU5ODU2OC4uZTQ0MjdlMmMyMGRmMWVhY2FhNDFkMDIzNTdlODdmYjNhZWMxNzBlZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCkBAIC02
NTcsNiArNjU3LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybVBhc3RlQ29tbWFu
ZChET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IHBhc3RlQWNjZXNzQ2F0CiAgICAgY2FzZSBET01QYXN0
ZUFjY2Vzc0NhdGVnb3J5OjpHZW5lcmFsOgogICAgICAgICBncmFudEFjY2Vzc1RvQ3VycmVudFBh
c3RlYm9hcmREYXRhKE5TUGFzdGVib2FyZE5hbWVHZW5lcmFsKTsKICAgICAgICAgcmV0dXJuOwor
CisgICAgY2FzZSBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpGb250czoKKyAgICAgICAgZ3JhbnRB
Y2Nlc3NUb0N1cnJlbnRQYXN0ZWJvYXJkRGF0YShOU1Bhc3RlYm9hcmROYW1lRm9udCk7CisgICAg
ICAgIHJldHVybjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjZjMyYTBjOGMyMjYyMjJhNjRjYzYwOTE5
MGI4ODMxZTliOTFiZTNhLi5jYjA5YjU0Mjg2MTJhN2RkZWY2MGQxZjY5M2FiZmRiZmJlOTk1YjNl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMTItMTAgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgorCisgICAgICAgIFdLV2ViVmlldyBkb2VzbuKAmXQgcmVzcG9uZCB0byAt
Y29weUZvbnQ6IGFuZCAtcGFzdGVGb250OgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMzc5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTg3ODY1
OT4KKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgKiBlZGl0
aW5nL2VkaXRpbmcuanM6CisgICAgICAgIChleGVjQ29weUZvbnRDb21tYW5kKTogQWRkZWQuCisg
ICAgICAgIChjb3B5Rm9udENvbW1hbmQpOiBBZGRlZC4KKyAgICAgICAgKGV4ZWNQYXN0ZUZvbnRD
b21tYW5kKTogQWRkZWQuCisgICAgICAgIChwYXN0ZUZvbnRDb21tYW5kKTogQWRkZWQuCisgICAg
ICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9tYWMvY29weUZvbnQtcGFzdGVGb250Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvbWFjL2NvcHlGb250LXBhc3RlRm9u
dC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMTItMTAgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXByb3ZlIDx0eXBlPSJk
YXRldGltZS1sb2NhbCI+IHZhbHVlIHBhcnNpbmcgYW5kIHNhbml0aXphdGlvbgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggNDNiNGRlZTRlMTE5YjkzZDc2OGMxOWQzMDNlZjUzZThlZjk2ZWEyZi4uMzA4
NzI4MGEwM2RlOGExMzQ2MjIzOTNhMjRkZTJmY2UxYjNhYWZhNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CkBAIC0yMCw2ICsyMCw3IEBAIGVkaXRpbmcvbWFjIFsgU2tpcCBdCiBlZGl0aW5nL2NhcmV0L2lv
cyBbIFNraXAgXQogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24gWyBTa2lwIF0KIGVkaXRpbmcvZXhl
Y0NvbW1hbmQvaW9zIFsgU2tpcCBdCitlZGl0aW5nL2V4ZWNDb21tYW5kL21hYyBbIFNraXAgXQog
ZWRpdGluZy9pbnB1dC9jb2NvYSBbIFNraXAgXQogZWRpdGluZy9pbnB1dC9pb3MgWyBTa2lwIF0K
IGVkaXRpbmcvZmluZCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9l
ZGl0aW5nLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0aW5nLmpzCmluZGV4IDk5ODE2NGVi
MGI2MTFkZmJlYzhhYmVkN2E2MDEzMjhhOTUzZmYyNzEuLjgzNmNiYzc3YzQ2NTVmZjgzOGExMTVj
N2EzOTE0YWIyYWJmYTU5YTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGlu
Zy5qcworKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRpbmcuanMKQEAgLTgxMSw2ICs4MTEs
MzQgQEAgZnVuY3Rpb24gcGFzdGVDb21tYW5kKCkgewogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorZnVuY3Rpb24gZXhlY0NvcHlGb250Q29tbWFu
ZCgpIHsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiQ29weUZvbnQiKTsKKyAgICBkZWJ1Z0Zv
ckR1bXBBc1RleHQoImV4ZWNDb3B5Rm9udENvbW1hbmQiKTsKK30KK2Z1bmN0aW9uIGNvcHlGb250
Q29tbWFuZCgpIHsKKyAgICBpZiAoY29tbWFuZERlbGF5ID4gMCkgeworICAgICAgICBxdWV1ZUNv
bW1hbmQoZXhlY0NvcHlGb250Q29tbWFuZCwgY29tbWFuZENvdW50ICogY29tbWFuZERlbGF5KTsK
KyAgICAgICAgY29tbWFuZENvdW50Kys7CisgICAgfSBlbHNlCisgICAgICAgIGV4ZWNDb3B5Rm9u
dENvbW1hbmQoKTsKK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKK2Z1bmN0aW9uIGV4ZWNQYXN0ZUZvbnRDb21tYW5kKCkgeworICAgIGRvY3Vt
ZW50LmV4ZWNDb21tYW5kKCJQYXN0ZUZvbnQiKTsKKyAgICBkZWJ1Z0ZvckR1bXBBc1RleHQoImV4
ZWNQYXN0ZUZvbnRDb21tYW5kIik7Cit9CitmdW5jdGlvbiBwYXN0ZUZvbnRDb21tYW5kKCkgewor
ICAgIGlmIChjb21tYW5kRGVsYXkgPiAwKSB7CisgICAgICAgIHF1ZXVlQ29tbWFuZChleGVjUGFz
dGVGb250Q29tbWFuZCwgY29tbWFuZENvdW50ICogY29tbWFuZERlbGF5KTsKKyAgICAgICAgY29t
bWFuZENvdW50Kys7CisgICAgfSBlbHNlCisgICAgICAgIGV4ZWNQYXN0ZUZvbnRDb21tYW5kKCk7
Cit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CiBmdW5jdGlvbiBleGVjQ3JlYXRlTGlua0NvbW1hbmQodXJsKSB7CiAgICAgZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoIkNyZWF0ZUxpbmsiLCBmYWxzZSwgdXJsKTsKICAgICBkZWJ1Z0ZvckR1bXBBc1Rl
eHQoImV4ZWNDcmVhdGVMaW5rQ29tbWFuZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9leGVjQ29tbWFuZC9tYWMvY29weUZvbnQtcGFzdGVGb250LWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL21hYy9jb3B5Rm9udC1wYXN0ZUZvbnQtZXhw
ZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MWIxODUxMzcxNzYyMDlkY2NlMDU2Yzc2ZjU2Mzk2N2U5
YmVhNDg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFu
ZC9tYWMvY29weUZvbnQtcGFzdGVGb250LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyMCBAQAor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisjY29weSB7CisgICAgYmFja2dyb3VuZC1jb2xv
cjogZ3JlZW47CisgICAgZm9udC1mYW1pbHk6IEFyaWFsOworICAgIGZvbnQtc2l6ZTogMjBweDsK
KyAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICBmb250LXN0eWxlOiBpdGFsaWM7CisgICAgY29s
b3I6IHllbGxvdzsKKyAgICB0ZXh0LXNoYWRvdzogYmxhY2sgMXB4IDFweDsKKyAgICB2ZXJ0aWNh
bC1hbGlnbjogc3ViOworfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2
IGlkPSJjb3B5Ij5jb3B5IHRoaXM8L2Rpdj4KKyAgICA8ZGl2IGlkPSJwYXN0ZSIgY29udGVudGVk
aXRhYmxlPSIiPjxmb250IGNvbG9yPSIjZmZmZjAwIiBmYWNlPSJBcmlhbCI+PHNwYW4gc3R5bGU9
ImJhY2tncm91bmQtY29sb3I6IHJnYigwLCAxMjgsIDApOyBmb250LXNpemU6IDIwcHg7IHRleHQt
c2hhZG93OiByZ2IoMCwgMCwgMCkgMXB4IDFweDsiPjxiPjxpPjxzdWI+cGFzdGUgaGVyZTwvc3Vi
PjwvaT48L2I+PC9zcGFuPjwvZm9udD48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvbWFjL2NvcHlGb250LXBhc3RlRm9u
dC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9tYWMvY29weUZvbnQtcGFz
dGVGb250Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmEwZGJlMTI4ZDRlNjA2Mzk3YjUyYzU3ZjhjMDc2ZmNj
ZTM5YjU2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1h
bmQvbWFjL2NvcHlGb250LXBhc3RlRm9udC5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzxodG1sPgor
PGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Li4vLi4vZWRpdGluZy5qcz48L3NjcmlwdD4KKyAgICA8
c2NyaXB0PgorZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7CisgICAgbGV0IHNlbGVjdGlvbiA9IHdp
bmRvdy5nZXRTZWxlY3Rpb24oKTsKKworICAgIGxldCBjb3B5UmFuZ2UgPSBkb2N1bWVudC5jcmVh
dGVSYW5nZSgpOworICAgIGNvcHlSYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNvcHkiKSk7CisgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpOwor
ICAgIHNlbGVjdGlvbi5hZGRSYW5nZShjb3B5UmFuZ2UpOworICAgIGNvcHlGb250Q29tbWFuZCgp
OworCisgICAgbGV0IHBhc3RlUmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOworICAgIHBh
c3RlUmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYXN0
ZSIpKTsKKyAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7CisgICAgc2VsZWN0aW9uLmFk
ZFJhbmdlKHBhc3RlUmFuZ2UpOworICAgIHBhc3RlRm9udENvbW1hbmQoKTsKKworICAgIHNlbGVj
dGlvbi5yZW1vdmVBbGxSYW5nZXMoKTsKK30KKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+Cisj
Y29weSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgZm9udC1mYW1pbHk6IEFy
aWFsOworICAgIGZvbnQtc2l6ZTogMjBweDsKKyAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICBm
b250LXN0eWxlOiBpdGFsaWM7CisgICAgY29sb3I6IHllbGxvdzsKKyAgICB0ZXh0LXNoYWRvdzog
YmxhY2sgMXB4IDFweDsKKyAgICB2ZXJ0aWNhbC1hbGlnbjogc3ViOworfQorI3Bhc3RlIHsKKyAg
ICBvdXRsaW5lOiBub25lOworfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8
ZGl2IGlkPSJjb3B5Ij5jb3B5IHRoaXM8L2Rpdj4KKyAgICA8ZGl2IGlkPSJwYXN0ZSIgY29udGVu
dGVkaXRhYmxlPnBhc3RlIGhlcmU8L2Rpdj4KKyAgICA8c2NyaXB0PgorcnVuRWRpdGluZ1Rlc3Qo
KTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMGUzZTdiYjdmNTcyY2YxYmI0NzNmMDM1MzU3ZmUx
NzkxNWJkMGNiNC4uYzY3MTJhMDBiMDgyY2NmOGYwMjg5MzA3YmEyMzllODYzMTIwNDQ0ZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTksNiArOSw3IEBA
CiBhY2Nlc3NpYmlsaXR5L21hYyBbIFBhc3MgXQogY29tcG9zaXRpbmcvc2Nyb2xsaW5nL2FzeW5j
LW92ZXJmbG93LXNjcm9sbGluZy9tYWMgWyBQYXNzIF0KIGRpc3BsYXlsaXN0cyBbIFBhc3MgXQor
ZWRpdGluZy9leGVjQ29tbWFuZC9tYWMgWyBQYXNzIF0KIGVkaXRpbmcvaW5wdXQvY29jb2EgWyBQ
YXNzIF0KIGVkaXRpbmcvbWFjIFsgUGFzcyBdCiBlZGl0aW5nL3Bhc3RlYm9hcmQvbWFjIFsgUGFz
cyBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>