<?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>119743</bug_id>
          
          <creation_ts>2013-08-13 06:30:31 -0700</creation_ts>
          <short_desc>[GTK] Expose WebKitFrame in WebKit2GTK+ web extensions API</short_desc>
          <delta_ts>2013-08-25 12:09:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>103377</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abecsi</cc>
    
    <cc>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>rego+ews</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>svillar</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>916681</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-08-13 06:30:31 -0700</bug_when>
    <thetext>This is required for the javascript injection and isolated worlds API. See https://lists.webkit.org/pipermail/webkit-gtk/2013-August/001535.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916683</commentid>
    <comment_count>1</comment_count>
      <attachid>208624</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-08-13 06:44:27 -0700</bug_when>
    <thetext>Created attachment 208624
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916684</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-13 06:46:20 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916697</commentid>
    <comment_count>3</comment_count>
      <attachid>208624</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-08-13 07:44:15 -0700</bug_when>
    <thetext>Comment on attachment 208624
Patch

Attachment 208624 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/1452440</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916707</commentid>
    <comment_count>4</comment_count>
      <attachid>208634</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-08-13 08:06:40 -0700</bug_when>
    <thetext>Created attachment 208634
Updated patch

I forgot to git add some new files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916734</commentid>
    <comment_count>5</comment_count>
      <attachid>208638</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-08-13 09:05:39 -0700</bug_when>
    <thetext>Created attachment 208638
Another update

Sorry, I forgot to git add two more files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916739</commentid>
    <comment_count>6</comment_count>
      <attachid>208638</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2013-08-13 09:14:51 -0700</bug_when>
    <thetext>Comment on attachment 208638
Another update

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

Changes (informally) look awesome to me

&gt; Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt:1064
&gt; +webkit_frame_get_javascript_global_context

nit: should we have these properly sorted?

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:305
&gt; +        kWKBundlePageLoaderClientCurrentVersion,

wow this probably deserved a separate fix :), good catch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917320</commentid>
    <comment_count>7</comment_count>
      <attachid>208638</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-08-14 16:07:07 -0700</bug_when>
    <thetext>Comment on attachment 208638
Another update

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

LGTM, r=me, just need to get a wk2 owner to approve, I guess.

&gt;&gt; Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:305
&gt;&gt; +        kWKBundlePageLoaderClientCurrentVersion,
&gt; 
&gt; wow this probably deserved a separate fix :), good catch

Indeed, r=me for landing this separately!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920125</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-08-22 23:29:09 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 208638 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=208638&amp;action=review
&gt; 
&gt; LGTM, r=me, just need to get a wk2 owner to approve, I guess.
&gt; 
&gt; &gt;&gt; Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:305
&gt; &gt;&gt; +        kWKBundlePageLoaderClientCurrentVersion,
&gt; &gt; 
&gt; &gt; wow this probably deserved a separate fix :), good catch
&gt; 
&gt; Indeed, r=me for landing this separately!

Fixed in http://trac.webkit.org/changeset/154474</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920204</commentid>
    <comment_count>9</comment_count>
      <attachid>208638</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-08-23 05:51:04 -0700</bug_when>
    <thetext>Comment on attachment 208638
Another update

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

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:74
&gt; +    DEFINE_STATIC_LOCAL(WebFrameMap, map, ());

Can use NeverDestroyed here!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920557</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-08-24 01:43:46 -0700</bug_when>
    <thetext>Committed r154540: &lt;http://trac.webkit.org/changeset/154540&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920804</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-08-25 10:50:49 -0700</bug_when>
    <thetext>This has caused 6 unit tests to fail:
http://build.webkit.org/builders/Apple%20MountainLion%20Debug%20WK2%20%28Tests%29/builds/11911/steps/run-api-tests/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920813</commentid>
    <comment_count>12</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-08-25 12:09:38 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; This has caused 6 unit tests to fail:
&gt; http://build.webkit.org/builders/Apple%20MountainLion%20Debug%20WK2%20%28Tests%29/builds/11911/steps/run-api-tests/logs/stdio

Fix is up for review in bug #120268.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208624</attachid>
            <date>2013-08-13 06:44:27 -0700</date>
            <delta_ts>2013-08-13 08:06:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-frame.diff</filename>
            <type>text/plain</type>
            <size>18907</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBlMWFkMjdmLi41NDc4ZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYg
QEAKKzIwMTMtMDgtMTMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEV4cG9zZSBXZWJLaXRGcmFtZSBpbiBXZWJLaXQyR1RLKyB3ZWIg
ZXh0ZW5zaW9ucyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExOTc0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogQWRkIG5ldyBmaWxlcyB0byBjb21waWxhdGlv
bi4KKyAgICAgICAgKiBTaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcDogVXBkYXRlIGZvciBuZXcg
aW50ZXJmYWNlIHZlcnNpb24uCisgICAgICAgICogU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oOiBE
aXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5z
Z21sOiBBZGQgV2ViS2l0RnJhbWUKKyAgICAgICAgc2VjdGlvbi4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0OiBBZGQgbmV3IHB1YmxpYwor
ICAgICAgICBzeW1ib2xzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay50eXBlczogQWRkIHdlYmtpdF9mcmFtZV9nZXRfdHlwZS4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay90ZXN0cy9HTlVtYWtlZmlsZS5hbTogQWRkIG5ldyB0ZXN0IGZpbGVzLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmg6IEFk
ZAorICAgICAgICB3aWxsRGVzdHJveUZyYW1lIGNhbGxiYWNrIHRvIHRoZSBpbmplY3RlZCBidW5k
bGUgbG9hZGVyIGNsaWVudCwgdG8KKyAgICAgICAgbm90aWZ5IHRoZSBjbGllbnQgd2hlbiBhIGZy
YW1lIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5jcHA6CisgICAgICAgICh3ZWJraXRGcmFt
ZUdldE9yQ3JlYXRlKTogSGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIFdlYktpdEZyYW1lCisg
ICAgICAgIHdyYXBwaW5nIHRoZSBnaXZlbiBXZWJGcmFtZSBvciByZXR1cm5pbmcgdGhlIHdyYXBw
ZXIgaWYgaXQgYWxyZWFkeQorICAgICAgICBleGlzdHMuCisgICAgICAgICh3aWxsRGVzdHJveUZy
YW1lKTogUmVtb3ZlIHRoZSBXZWJLaXRGcmFtZSB3cmFwcGluZyB0aGUgZ2l2ZW4KKyAgICAgICAg
V2ViRnJhbWUgaWYgaXQgZXhpc3RzLgorICAgICAgICAod2Via2l0V2ViUGFnZUNyZWF0ZSk6IEFk
ZCB3aWxsRGVzdHJveUZyYW1lIGltcGxlbWVudGF0aW9uIHRvCisgICAgICAgIGluamVjdGVkIGJ1
bmRsZSBsb2FkZXIgY2xpZW50LgorICAgICAgICAod2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2Zy
YW1lKTogUmV0dXJuIHRoZSBtYWluIGZyYW1lIG9mIHRoZQorICAgICAgICBwYWdlLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13ZWItZXh0
ZW5zaW9uLmg6CisgICAgICAgIEluY2x1ZGUgV2ViS2l0RnJhbWUuaC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6d2lsbERl
c3Ryb3lGcmFtZSk6IE5ldworICAgICAgICBjYWxsYmFjayB0byBiZSBjYWxsZWQgd2hlbiBhIGZy
YW1lIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVMb2FkZXJEZXN0cm95ZWQpOiBD
YWxsCisgICAgICAgIHdpbGxEZXN0cm95RnJhbWUgY2FsbGJhY2sgb2YgaW5qZWN0ZWQgYnVuZGxl
IGxvYWRlciBjbGllbnQuCisgICAgICAgICogV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5kbGVQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UXRCdWlsdGluQnVuZGxlUGFnZTo6UXRCdWlsdGlu
QnVuZGxlUGFnZSk6IEFkZAorICAgICAgICB3aWxsRGVzdHJveUZyYW1lIGNhbGxiYWNrLgorCiAy
MDEzLTA4LTEyICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgRml4
ZWQgYW4gb2ZmLWJ5LShzaXplb2YoY2hhciopIC0gMSkgYnVnLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KaW5kZXggNjI2Y2VkMy4uNzhjMzRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5s
aXN0LmFtCkBAIC0xMzgsNiArMTM4LDcgQEAgd2Via2l0Mmd0a19oX2FwaSArPSBcCiAKIHdlYmtp
dDJfd2ViX2V4dGVuc2lvbl9oX2FwaSArPSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uLmggXAorCSQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmggXAogCSQoV2ViS2l0
MikvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuaCBcCiAJ
JChXZWJLaXQyKS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvd2Via2l0LXdlYi1l
eHRlbnNpb24uaAogCkBAIC0xMDU5LDYgKzEwNjAsOSBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVS
YW5nZUhhbmRsZVByaXZhdGUuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmNwcCBcCiAJU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmggXAor
CVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRG
cmFtZS5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9XZWJLaXRGcmFtZS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWVQcml2YXRlLmggXAogCVNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb24uY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0
V2ViRXh0ZW5zaW9uLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb25Qcml2YXRlLmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcAppbmRleCBmZTY4ZDY5Li4wNDI2MTY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcApAQCAtNDMsNiArNDMsNyBAQCBj
b25zdCBzaXplX3QgQVBJQ2xpZW50VHJhaXRzPFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudD46Omlu
dGVyZmFjZVNpemVzQnlWZXJzaW9uWwogICAgIG9mZnNldG9mKFdLQnVuZGxlUGFnZUxvYWRlckNs
aWVudCwgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWVfdW5hdmFpbGFibGUpLAogICAgIG9m
ZnNldG9mKFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudCwgZGlkTGF5b3V0KSwKICAgICBvZmZzZXRv
ZihXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQsIGZlYXR1cmVzVXNlZEluUGFnZSksCisgICAgb2Zm
c2V0b2YoV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LCB3aWxsTG9hZERhdGFSZXF1ZXN0KSwKICAg
ICBzaXplb2YoV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50KQogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSUNsaWVudFRyYWl0cy5oCmluZGV4IDQ2MjI5NzguLmRmM2FhYmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgQVBJQ2xpZW50VHJhaXRzPFdLQnVuZGxlQ2xpZW50PiB7CiB9OwogCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBBUElDbGllbnRUcmFpdHM8V0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50PiB7Ci0g
ICAgc3RhdGljIGNvbnN0IHNpemVfdCBpbnRlcmZhY2VTaXplc0J5VmVyc2lvbls3XTsKKyAgICBz
dGF0aWMgY29uc3Qgc2l6ZV90IGludGVyZmFjZVNpemVzQnlWZXJzaW9uWzhdOwogfTsKIAogdGVt
cGxhdGU8PiBzdHJ1Y3QgQVBJQ2xpZW50VHJhaXRzPFdLQnVuZGxlUGFnZVJlc291cmNlTG9hZENs
aWVudD4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9j
cy93ZWJraXQyZ3RrLWRvY3Muc2dtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKaW5kZXggZDc2OWUyYS4uNGZhMWQyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRv
Y3Muc2dtbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtp
dDJndGstZG9jcy5zZ21sCkBAIC00OSw2ICs0OSw3IEBACiAgICAgPHRpdGxlPldlYiBFeHRlbnNp
b25zPC90aXRsZT4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0V2ViRXh0ZW5zaW9u
LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRXZWJQYWdlLnhtbCIvPgor
ICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRGcmFtZS54bWwiLz4KICAgPC9jaGFwdGVy
PgogCiAgIDxpbmRleCBpZD0iaW5kZXgtYWxsIj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0Cmlu
ZGV4IDI3MDRkNjMuLjI5MDc4ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dApAQCAtMTA0
MCw2ICsxMDQwLDcgQEAgV2ViS2l0V2ViUGFnZQogd2Via2l0X3dlYl9wYWdlX2dldF9kb21fZG9j
dW1lbnQKIHdlYmtpdF93ZWJfcGFnZV9nZXRfaWQKIHdlYmtpdF93ZWJfcGFnZV9nZXRfdXJpCit3
ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUKIAogPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CiBX
ZWJLaXRXZWJQYWdlQ2xhc3MKQEAgLTEwNTQsMyArMTA1NSwyNCBAQCBXRUJLSVRfV0VCX1BBR0Vf
R0VUX0NMQVNTCiBXZWJLaXRXZWJQYWdlUHJpdmF0ZQogd2Via2l0X3dlYl9wYWdlX2dldF90eXBl
CiA8L1NFQ1RJT04+CisKKzxTRUNUSU9OPgorPEZJTEU+V2ViS2l0RnJhbWU8L0ZJTEU+CitXZWJL
aXRGcmFtZQord2Via2l0X2ZyYW1lX2lzX21haW5fZnJhbWUKK3dlYmtpdF9mcmFtZV9nZXRfdXJp
Cit3ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfZ2xvYmFsX2NvbnRleHQKKworPFNVQlNFQ1RJ
T04gU3RhbmRhcmQ+CitXZWJLaXRGcmFtZUNsYXNzCitXRUJLSVRfVFlQRV9GUkFNRQorV0VCS0lU
X0ZSQU1FCitXRUJLSVRfSVNfRlJBTUUKK1dFQktJVF9GUkFNRV9DTEFTUworV0VCS0lUX0lTX0ZS
QU1FX0NMQVNTCitXRUJLSVRfRlJBTUVfR0VUX0NMQVNTCisKKzxTVUJTRUNUSU9OIFByaXZhdGU+
CitXZWJLaXRGcmFtZVByaXZhdGUKK3dlYmtpdF9mcmFtZV9nZXRfdHlwZQorPC9TRUNUSU9OPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQy
Z3RrLnR5cGVzIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQy
Z3RrLnR5cGVzCmluZGV4IGFiNjIwZjAuLjViMWVhM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay50eXBlcworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGsudHlwZXMKQEAgLTI1LDQg
KzI1LDUgQEAgd2Via2l0X3dlYl92aWV3X2dyb3VwX2dldF90eXBlCiB3ZWJraXRfd2ViX2V4dGVu
c2lvbl9nZXRfdHlwZQogd2Via2l0X3dlYl9wYWdlX2dldF90eXBlCiB3ZWJraXRfYXV0aGVudGlj
YXRpb25fcmVxdWVzdF9nZXRfdHlwZQotd2Via2l0X2NyZWRlbnRpYWxfZ2V0X3R5cGUKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit3ZWJraXRfY3JlZGVudGlhbF9nZXRfdHlwZQord2Via2l0
X2ZyYW1lX2dldF90eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay90ZXN0cy9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL3Rlc3RzL0dOVW1ha2VmaWxlLmFtCmluZGV4IGZmMmQ1MzQuLmFiZGEwZWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL0dOVW1ha2VmaWxlLmFt
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL0dOVW1ha2VmaWxl
LmFtCkBAIC03LDYgKzcsNyBAQCBURVNUX1BST0dTICs9IFwKIAlQcm9ncmFtcy9XZWJLaXQyQVBJ
VGVzdHMvVGVzdENvb2tpZU1hbmFnZXIgXAogCVByb2dyYW1zL1dlYktpdDJBUElUZXN0cy9UZXN0
RE9NTm9kZSBcCiAJUHJvZ3JhbXMvV2ViS2l0MkFQSVRlc3RzL1Rlc3REb3dubG9hZHMgXAorCVBy
b2dyYW1zL1dlYktpdDJBUElUZXN0cy9UZXN0RnJhbWUgXAogCVByb2dyYW1zL1dlYktpdDJBUElU
ZXN0cy9UZXN0SW5zcGVjdG9yIFwKIAlQcm9ncmFtcy9XZWJLaXQyQVBJVGVzdHMvVGVzdEluc3Bl
Y3RvclNlcnZlciBcCiAJUHJvZ3JhbXMvV2ViS2l0MkFQSVRlc3RzL1Rlc3RMb2FkZXJDbGllbnQg
XApAQCAtMTI2LDYgKzEyNyw3IEBAIExpYnJhcmllc19XZWJFeHRlbnNpb25zX2xpYldlYkV4dGVu
c2lvblRlc3RfbGFfQ0ZMQUdTID0gXAogbm9pbnN0X0xUTElCUkFSSUVTICs9IExpYnJhcmllcy9X
ZWJFeHRlbnNpb25zL2xpYldlYlByb2Nlc3NUZXN0LmxhCiBMaWJyYXJpZXNfV2ViRXh0ZW5zaW9u
c19saWJXZWJQcm9jZXNzVGVzdF9sYV9TT1VSQ0VTID0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL3Rlc3RzL0RPTU5vZGVUZXN0LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvdGVzdHMvRnJhbWVUZXN0LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViUHJvY2Vzc1Rlc3QuY3BwIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJQcm9jZXNzVGVzdC5oCiAKQEAgLTMwMyw0ICsz
MDUsMTAgQEAgUHJvZ3JhbXNfV2ViS2l0MkFQSVRlc3RzX1Rlc3RET01Ob2RlX0NQUEZMQUdTID0g
JCh3ZWJraXQyX3Rlc3RzX2NwcGZsYWdzKQogUHJvZ3JhbXNfV2ViS2l0MkFQSVRlc3RzX1Rlc3RE
T01Ob2RlX0xEQUREID0gJCh3ZWJraXQyX3Rlc3RzX2xkYWRkKQogUHJvZ3JhbXNfV2ViS2l0MkFQ
SVRlc3RzX1Rlc3RET01Ob2RlX0xERkxBR1MgPSAkKHdlYmtpdDJfdGVzdHNfbGRmbGFncykKIAor
UHJvZ3JhbXNfV2ViS2l0MkFQSVRlc3RzX1Rlc3RGcmFtZV9TT1VSQ0VTID0gXAorICAgICAgICBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0RnJhbWUuY3BwCitQcm9n
cmFtc19XZWJLaXQyQVBJVGVzdHNfVGVzdEZyYW1lX0NQUEZMQUdTID0gJCh3ZWJraXQyX3Rlc3Rz
X2NwcGZsYWdzKQorUHJvZ3JhbXNfV2ViS2l0MkFQSVRlc3RzX1Rlc3RGcmFtZV9MREFERCA9ICQo
d2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX1dlYktpdDJBUElUZXN0c19UZXN0RnJhbWVf
TERGTEFHUyA9ICQod2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCiBlbmRpZiAjIEVOQUJMRV9XRUJL
SVQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCBhN2JjNmRmLi42NTVhMjIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKQEAgLTExMiw2ICsxMTIsNyBAQCB0eXBlZGVmIHZvaWQg
KCpXS0J1bmRsZVBhZ2VEaWRMYXlvdXRDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
TGF5b3V0TWlsZQogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRmVhdHVyZXNVc2VkSW5QYWdl
Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0FycmF5UmVmIGZlYXR1cmVTdHJpbmdz
LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdp
bGxMb2FkVVJMUmVxdWVzdENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tVUkxSZXF1
ZXN0UmVmIHJlcXVlc3QsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
byk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VXaWxsTG9hZERhdGFSZXF1ZXN0Q2FsbGJh
Y2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tEYXRh
UmVmIGRhdGEsIFdLU3RyaW5nUmVmIE1JTUVUeXBlLCBXS1N0cmluZ1JlZiBlbmNvZGluZ05hbWUs
IFdLVVJMUmVmIHVucmVhY2hhYmxlVVJMLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbERlc3Ryb3lGcmFt
ZSkoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwogCiBzdHJ1Y3QgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50IHsKICAg
ICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2ZXJzaW9uOwpAQCAtMTY0LDEwICsxNjUsMTMgQEAgc3RydWN0IFdL
QnVuZGxlUGFnZUxvYWRlckNsaWVudCB7CiAgICAgLy8gVmVyc2lvbiA2CiAgICAgV0tCdW5kbGVQ
YWdlV2lsbExvYWRVUkxSZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2lsbExvYWRVUkxSZXF1ZXN0OwogICAgIFdLQnVuZGxlUGFnZVdpbGxMb2FkRGF0YVJl
cXVlc3RDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxMb2FkRGF0
YVJlcXVlc3Q7CisKKyAgICAvLyBWZXJzaW9uIDcKKyAgICBXS0J1bmRsZVBhZ2VXaWxsRGVzdHJv
eUZyYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsRGVz
dHJveUZyYW1lOwogfTsKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudCBX
S0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQ7CiAKLWVudW0geyBrV0tCdW5kbGVQYWdlTG9hZGVyQ2xp
ZW50Q3VycmVudFZlcnNpb24gPSA2IH07CitlbnVtIHsga1dLQnVuZGxlUGFnZUxvYWRlckNsaWVu
dEN1cnJlbnRWZXJzaW9uID0gNyB9OwogCiBlbnVtIHsKICAgICBXS0J1bmRsZVBhZ2VQb2xpY3lB
Y3Rpb25QYXNzVGhyb3VnaCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmNwcAppbmRl
eCA2M2ZlMmE5Li5kOWE5NjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3Bw
CkBAIC0yNSw5ICsyNSw5IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCIKICNpbmNsdWRl
ICJXS0J1bmRsZUFQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUZyYW1lLmgiCi0jaW5jbHVk
ZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldlYktpdERP
TURvY3VtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdEZyYW1lUHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIldlYktpdE1hcnNoYWwuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0VVJJUmVxdWVzdFByaXZhdGUuaCIKQEAgLTY3LDYgKzY3LDI2IEBAIHN0YXRp
YyBndWludCBzaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKIAogV0VCS0lUX0RFRklORV9U
WVBFKFdlYktpdFdlYlBhZ2UsIHdlYmtpdF93ZWJfcGFnZSwgR19UWVBFX09CSkVDVCkKIAordHlw
ZWRlZiBIYXNoTWFwPFdlYkZyYW1lKiwgR1JlZlB0cjxXZWJLaXRGcmFtZT4+IFdlYkZyYW1lTWFw
OworCitzdGF0aWMgV2ViRnJhbWVNYXAmIHdlYkZyYW1lTWFwKCkKK3sKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFdlYkZyYW1lTWFwLCBtYXAsICgpKTsKKyAgICByZXR1cm4gbWFwOworfQorCitz
dGF0aWMgV2ViS2l0RnJhbWUqIHdlYmtpdEZyYW1lR2V0T3JDcmVhdGUoV2ViRnJhbWUqIHdlYkZy
YW1lKQoreworICAgIEdSZWZQdHI8V2ViS2l0RnJhbWU+IGZyYW1lID0gd2ViRnJhbWVNYXAoKS5n
ZXQod2ViRnJhbWUpOworICAgIGlmIChmcmFtZSkKKyAgICAgICAgcmV0dXJuIGZyYW1lLmdldCgp
OworCisgICAgZnJhbWUgPSBhZG9wdEdSZWYod2Via2l0RnJhbWVDcmVhdGUod2ViRnJhbWUpKTsK
KyAgICB3ZWJGcmFtZU1hcCgpLnNldCh3ZWJGcmFtZSwgZnJhbWUpOworCisgICAgcmV0dXJuIGZy
YW1lLmdldCgpOworfQorCiBzdGF0aWMgQ1N0cmluZyBnZXRQcm92aXNpb25hbFVSTEZvckZyYW1l
KFdlYkZyYW1lKiB3ZWJGcmFtZSkKIHsKICAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2Fk
ZXIgPSB3ZWJGcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5wcm92aXNpb25hbERvY3VtZW50
TG9hZGVyKCk7CkBAIC0xMTcsNiArMTM3LDExIEBAIHN0YXRpYyB2b2lkIGRpZEZpbmlzaERvY3Vt
ZW50TG9hZEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtCiAg
ICAgZ19zaWduYWxfZW1pdChXRUJLSVRfV0VCX1BBR0UoY2xpZW50SW5mbyksIHNpZ25hbHNbRE9D
VU1FTlRfTE9BREVEXSwgMCk7CiB9CiAKK3N0YXRpYyB2b2lkIHdpbGxEZXN0cm95RnJhbWUoV0tC
dW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKQoreworICAgIHdlYkZyYW1lTWFwKCkucmVtb3ZlKHRvSW1wbChmcmFtZSkpOworfQorCiBz
dGF0aWMgdm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgdWludDY0X3QgaWRlbnRpZmllciwgV0tVUkxSZXF1
ZXN0UmVmIHJlcXVlc3QsIGJvb2wgcGFnZUxvYWRJc1Byb3Zpc2lvbmFsLCBjb25zdCB2b2lkKikK
IHsKICAgICBJbW11dGFibGVEaWN0aW9uYXJ5OjpNYXBUeXBlIG1lc3NhZ2U7CkBAIC0yNzcsNyAr
MzAyLDcgQEAgV2ViS2l0V2ViUGFnZSogd2Via2l0V2ViUGFnZUNyZWF0ZShXZWJQYWdlKiB3ZWJQ
YWdlKQogICAgIHBhZ2UtPnByaXYtPndlYlBhZ2UgPSB3ZWJQYWdlOwogCiAgICAgV0tCdW5kbGVQ
YWdlTG9hZGVyQ2xpZW50IGxvYWRlckNsaWVudCA9IHsKLSAgICAgICAga1dLQnVuZGxlUGFnZVJl
c291cmNlTG9hZENsaWVudEN1cnJlbnRWZXJzaW9uLAorICAgICAgICBrV0tCdW5kbGVQYWdlTG9h
ZGVyQ2xpZW50Q3VycmVudFZlcnNpb24sCiAgICAgICAgIHBhZ2UsCiAgICAgICAgIGRpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUsCiAgICAgICAgIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lLApAQCAtMzExLDggKzMzNiw5IEBAIFdlYktpdFdl
YlBhZ2UqIHdlYmtpdFdlYlBhZ2VDcmVhdGUoV2ViUGFnZSogd2ViUGFnZSkKICAgICAgICAgMCwg
Ly8gcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWVfdW5hdmFpbGFibGUKICAgICAgICAgMCwg
Ly8gZGlkTGF5b3V0CiAgICAgICAgIDAsIC8vIGZlYXR1cmVzVXNlZEluUGFnZQotICAgICAgICAw
LCAvLyB3aWxsTG9hZFVSTFJlcXVlc3Q7Ci0gICAgICAgIDAsIC8vIHdpbGxMb2FkRGF0YVJlcXVl
c3Q7CisgICAgICAgIDAsIC8vIHdpbGxMb2FkVVJMUmVxdWVzdAorICAgICAgICAwLCAvLyB3aWxs
TG9hZERhdGFSZXF1ZXN0CisgICAgICAgIHdpbGxEZXN0cm95RnJhbWUKICAgICB9OwogICAgIFdL
QnVuZGxlUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQodG9BUEkod2ViUGFnZSksICZsb2FkZXJDbGll
bnQpOwogCkBAIC00MjAsMyArNDQ2LDEwIEBAIGNvbnN0IGdjaGFyKiB3ZWJraXRfd2ViX3BhZ2Vf
Z2V0X3VyaShXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlKQogCiAgICAgcmV0dXJuIHdlYlBhZ2UtPnBy
aXYtPnVyaS5kYXRhKCk7CiB9CisKK1dlYktpdEZyYW1lKiB3ZWJraXRfd2ViX3BhZ2VfZ2V0X21h
aW5fZnJhbWUoV2ViS2l0V2ViUGFnZSogd2ViUGFnZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfSVNfV0VCX1BBR0Uod2ViUGFnZSksIDApOworCisgICAgcmV0dXJuIHdlYmtp
dEZyYW1lR2V0T3JDcmVhdGUod2ViUGFnZS0+cHJpdi0+d2ViUGFnZS0+bWFpbldlYkZyYW1lKCkp
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmgKaW5kZXggZmY2ZTAwZC4uMzc0NTUy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL1dlYktpdFdlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAK
ICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5l
cy5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RnJhbWUuaD4KICNpbmNsdWRlIDx3ZWJraXRk
b20vd2Via2l0ZG9tLmg+CiAKIEdfQkVHSU5fREVDTFMKQEAgLTYxLDcgKzYyLDEwIEBAIFdFQktJ
VF9BUEkgZ3VpbnQ2NAogd2Via2l0X3dlYl9wYWdlX2dldF9pZCAgICAgICAgICAgKFdlYktpdFdl
YlBhZ2UgKndlYl9wYWdlKTsKIAogV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCi13ZWJraXRfd2Vi
X3BhZ2VfZ2V0X3VyaSAoV2ViS2l0V2ViUGFnZSAqd2ViX3BhZ2UpOword2Via2l0X3dlYl9wYWdl
X2dldF91cmkgICAgICAgICAgKFdlYktpdFdlYlBhZ2UgKndlYl9wYWdlKTsKKworV0VCS0lUX0FQ
SSBXZWJLaXRGcmFtZSAqCit3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUgICAoV2ViS2l0
V2ViUGFnZSAqd2ViX3BhZ2UpOwogCiBHX0VORF9ERUNMUwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvd2Via2l0LXdlYi1leHRl
bnNpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCmluZGV4IGZmYmI1NTcuLjFkZTk3NWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay93ZWJr
aXQtd2ViLWV4dGVuc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCkBAIC0yMiw2ICsyMiw3IEBA
CiAKICNkZWZpbmUgX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fCiAKKyNpbmNsdWRl
IDx3ZWJraXQyL1dlYktpdEZyYW1lLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklSZXF1
ZXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklSZXNwb25zZS5oPgogI2luY2x1ZGUg
PHdlYmtpdDIvV2ViS2l0V2ViRXh0ZW5zaW9uLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKaW5kZXggOTVmNmMwMC4uMWY4MGIyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcApAQCAtMzUy
LDQgKzM1MiwxMiBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6ZmVhdHVy
ZXNVc2VkSW5QYWdlKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFZlYwogICAgIHJldHVybiBtX2NsaWVu
dC5mZWF0dXJlc1VzZWRJblBhZ2UodG9BUEkocGFnZSksIHRvQVBJKGZlYXR1cmVTdHJpbmdPYmpl
Y3RzQXJyYXkuZ2V0KCkpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKIH0KIAordm9pZCBJbmplY3Rl
ZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OndpbGxEZXN0cm95RnJhbWUoV2ViUGFnZSogcGFnZSwg
V2ViRnJhbWUqIGZyYW1lKQoreworICAgIGlmICghbV9jbGllbnQud2lsbERlc3Ryb3lGcmFtZSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQud2lsbERlc3Ryb3lGcmFtZSh0b0FQSShw
YWdlKSwgdG9BUEkoZnJhbWUpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGll
bnQuaAppbmRleCBjODlkYjU5Li42ODJhYWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKQEAgLTkwLDYgKzkwLDggQEAgcHVibGljOgogICAgIGJv
b2wgc2hvdWxkRm9yY2VVbml2ZXJzYWxBY2Nlc3NGcm9tTG9jYWxVUkwoV2ViUGFnZSosIGNvbnN0
IFN0cmluZyYgdXJsKTsKIAogICAgIHZvaWQgZmVhdHVyZXNVc2VkSW5QYWdlKFdlYlBhZ2UqLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYpOworCisgICAgdm9pZCB3aWxsRGVzdHJveUZyYW1lKFdlYlBh
Z2UqLCBXZWJGcmFtZSopOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDg0NGEwMTAuLjFhYjNlZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC05NSw2ICs5NSw5IEBAIFdlYkZyYW1lTG9hZGVy
Q2xpZW50Ojp+V2ViRnJhbWVMb2FkZXJDbGllbnQoKQogICAgIAogdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZnJhbWVMb2FkZXJEZXN0cm95ZWQoKQogeworICAgIGlmIChXZWJQYWdlKiB3ZWJQ
YWdlID0gbV9mcmFtZS0+cGFnZSgpKQorICAgICAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZUxv
YWRlckNsaWVudCgpLndpbGxEZXN0cm95RnJhbWUod2ViUGFnZSwgbV9mcmFtZSk7CisKICAgICBt
X2ZyYW1lLT5pbnZhbGlkYXRlKCk7CiAKICAgICAvLyBCYWxhbmNlcyBleHBsaWNpdCByZWYoKSBp
biBXZWJGcmFtZTo6Y3JlYXRlTWFpbkZyYW1lIGFuZCBXZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRs
ZVBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5kbGVQ
YWdlLmNwcAppbmRleCBiMzJmZWRmLi5mNzZjMDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvcXQvUXRCdWlsdGluQnVuZGxlUGFnZS5jcHAKQEAgLTgyLDYgKzgyLDcg
QEAgUXRCdWlsdGluQnVuZGxlUGFnZTo6UXRCdWlsdGluQnVuZGxlUGFnZShRdEJ1aWx0aW5CdW5k
bGUqIGJ1bmRsZSwgV0tCdW5kbGVQYWdlUmUKICAgICAgICAgMCwgLy8gZmVhdHVyZXNVc2VkSW5Q
YWdlCiAgICAgICAgIDAsIC8vIHdpbGxMb2FkVVJMUmVxdWVzdAogICAgICAgICAwLCAvLyB3aWxs
TG9hZERhdGFSZXF1ZXN0CisgICAgICAgIDAsIC8vIHdpbGxEZXN0cm95RnJhbWUKICAgICB9Owog
ICAgIFdLQnVuZGxlUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQobV9wYWdlLCAmbG9hZGVyQ2xpZW50
KTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA3M2Y0YjdkLi4wZTY4NDBhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDgtMTMgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEV4cG9zZSBXZWJL
aXRGcmFtZSBpbiBXZWJLaXQyR1RLKyB3ZWIgZXh0ZW5zaW9ucyBBUEkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTc0MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZSk6IEFkZAorICAgICAgICB3aWxsRGVzdHJv
eUZyYW1lLgorCiAyMDEzLTA4LTEyICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAK
ICAgICAgICAgZXh0cmFjdC1sb2NhbGl6YWJsZS1zdHJpbmdzIG91dHB1dCBpcyBub3Qgc3VpdGVk
IGZvciBwYXJzaW5nIGJ5IFhjb2RlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggNDFiODhl
Ny4uMzBmNmU4NCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtMzA5LDYgKzMwOSw3IEBA
IEluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKFdLQnVuZGxlUGFnZVJlZiBw
YWdlKQogICAgICAgICAwLCAvLyBmZWF0dXJlc1VzZWRJblBhZ2UKICAgICAgICAgMCwgLy8gd2ls
bExvYWRVUkxSZXF1ZXN0CiAgICAgICAgIDAsIC8vIHdpbGxMb2FkRGF0YVJlcXVlc3QKKyAgICAg
ICAgMCwgLy8gd2lsbERlc3Ryb3lGcmFtZQogICAgIH07CiAgICAgV0tCdW5kbGVQYWdlU2V0UGFn
ZUxvYWRlckNsaWVudChtX3BhZ2UsICZsb2FkZXJDbGllbnQpOwogCg==
</data>
<flag name="commit-queue"
          id="230551"
          type_id="3"
          status="-"
          setter="gtk-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208634</attachid>
            <date>2013-08-13 08:06:40 -0700</date>
            <delta_ts>2013-08-13 09:05:39 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk2-frame2.diff</filename>
            <type>text/plain</type>
            <size>26502</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBlMWFkMjdmLi5iOTdiYTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQg
QEAKKzIwMTMtMDgtMTMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEV4cG9zZSBXZWJLaXRGcmFtZSBpbiBXZWJLaXQyR1RLKyB3ZWIg
ZXh0ZW5zaW9ucyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExOTc0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogQWRkIG5ldyBmaWxlcyB0byBjb21waWxhdGlv
bi4KKyAgICAgICAgKiBTaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcDogVXBkYXRlIGZvciBuZXcg
aW50ZXJmYWNlIHZlcnNpb24uCisgICAgICAgICogU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oOiBE
aXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5z
Z21sOiBBZGQgV2ViS2l0RnJhbWUKKyAgICAgICAgc2VjdGlvbi4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0OiBBZGQgbmV3IHB1YmxpYwor
ICAgICAgICBzeW1ib2xzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay50eXBlczogQWRkIHdlYmtpdF9mcmFtZV9nZXRfdHlwZS4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay90ZXN0cy9HTlVtYWtlZmlsZS5hbTogQWRkIG5ldyB0ZXN0IGZpbGVzLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmg6IEFk
ZAorICAgICAgICB3aWxsRGVzdHJveUZyYW1lIGNhbGxiYWNrIHRvIHRoZSBpbmplY3RlZCBidW5k
bGUgbG9hZGVyIGNsaWVudCwgdG8KKyAgICAgICAgbm90aWZ5IHRoZSBjbGllbnQgd2hlbiBhIGZy
YW1lIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKHdlYmtp
dF9mcmFtZV9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdEZyYW1lQ3JlYXRlKToKKyAgICAg
ICAgKHdlYmtpdF9mcmFtZV9pc19tYWluX2ZyYW1lKToKKyAgICAgICAgKHdlYmtpdF9mcmFtZV9n
ZXRfdXJpKToKKyAgICAgICAgKHdlYmtpdF9mcmFtZV9nZXRfamF2YXNjcmlwdF9nbG9iYWxfY29u
dGV4dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktp
dEZyYW1lLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9XZWJLaXRGcmFtZVByaXZhdGUuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwOgorICAgICAgICAod2Via2l0
RnJhbWVHZXRPckNyZWF0ZSk6IEhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgYSBXZWJLaXRGcmFt
ZQorICAgICAgICB3cmFwcGluZyB0aGUgZ2l2ZW4gV2ViRnJhbWUgb3IgcmV0dXJuaW5nIHRoZSB3
cmFwcGVyIGlmIGl0IGFscmVhZHkKKyAgICAgICAgZXhpc3RzLgorICAgICAgICAod2lsbERlc3Ry
b3lGcmFtZSk6IFJlbW92ZSB0aGUgV2ViS2l0RnJhbWUgd3JhcHBpbmcgdGhlIGdpdmVuCisgICAg
ICAgIFdlYkZyYW1lIGlmIGl0IGV4aXN0cy4KKyAgICAgICAgKHdlYmtpdFdlYlBhZ2VDcmVhdGUp
OiBBZGQgd2lsbERlc3Ryb3lGcmFtZSBpbXBsZW1lbnRhdGlvbiB0bworICAgICAgICBpbmplY3Rl
ZCBidW5kbGUgbG9hZGVyIGNsaWVudC4KKyAgICAgICAgKHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFp
bl9mcmFtZSk6IFJldHVybiB0aGUgbWFpbiBmcmFtZSBvZiB0aGUKKyAgICAgICAgcGFnZS4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay93ZWJraXQtd2Vi
LWV4dGVuc2lvbi5oOgorICAgICAgICBJbmNsdWRlIFdlYktpdEZyYW1lLmguCisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6Ondp
bGxEZXN0cm95RnJhbWUpOiBOZXcKKyAgICAgICAgY2FsbGJhY2sgdG8gYmUgY2FsbGVkIHdoZW4g
YSBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lTG9hZGVyRGVzdHJveWVk
KTogQ2FsbAorICAgICAgICB3aWxsRGVzdHJveUZyYW1lIGNhbGxiYWNrIG9mIGluamVjdGVkIGJ1
bmRsZSBsb2FkZXIgY2xpZW50LgorICAgICAgICAqIFdlYlByb2Nlc3MvcXQvUXRCdWlsdGluQnVu
ZGxlUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0QnVpbHRpbkJ1bmRsZVBhZ2U6OlF0QnVp
bHRpbkJ1bmRsZVBhZ2UpOiBBZGQKKyAgICAgICAgd2lsbERlc3Ryb3lGcmFtZSBjYWxsYmFjay4K
KwogMjAxMy0wOC0xMiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAg
IEZpeGVkIGFuIG9mZi1ieS0oc2l6ZW9mKGNoYXIqKSAtIDEpIGJ1Zy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IDYyNmNlZDMuLjc4YzM0YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtMTM4LDYgKzEzOCw3IEBAIHdlYmtpdDJndGtfaF9hcGkgKz0gXAogCiB3
ZWJraXQyX3dlYl9leHRlbnNpb25faF9hcGkgKz0gXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5oIFwKKwkkKFdlYktpdDIp
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5oIFwKIAkkKFdl
YktpdDIpL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmgg
XAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13
ZWItZXh0ZW5zaW9uLmgKIApAQCAtMTA1OSw2ICsxMDYwLDkgQEAgd2Via2l0Ml9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUmFuZ2VIYW5kbGVQcml2YXRlLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5jcHAgXAogCVNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5o
IFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2Vi
S2l0RnJhbWUuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvV2ViS2l0RnJhbWUuaCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lUHJpdmF0ZS5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uLmNw
cCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dl
YktpdFdlYkV4dGVuc2lvbi5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uUHJpdmF0ZS5oIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAKaW5kZXggZmU2OGQ2OS4uMDQyNjE2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAKQEAgLTQzLDYgKzQzLDcg
QEAgY29uc3Qgc2l6ZV90IEFQSUNsaWVudFRyYWl0czxXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQ+
OjppbnRlcmZhY2VTaXplc0J5VmVyc2lvblsKICAgICBvZmZzZXRvZihXS0J1bmRsZVBhZ2VMb2Fk
ZXJDbGllbnQsIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lX3VuYXZhaWxhYmxlKSwKICAg
ICBvZmZzZXRvZihXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQsIGRpZExheW91dCksCiAgICAgb2Zm
c2V0b2YoV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LCBmZWF0dXJlc1VzZWRJblBhZ2UpLAorICAg
IG9mZnNldG9mKFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudCwgd2lsbExvYWREYXRhUmVxdWVzdCks
CiAgICAgc2l6ZW9mKFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudCkKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaAppbmRleCA0NjIyOTc4Li5kZjNhYWJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oCkBAIC00NCw3ICs0NCw3IEBAIHRlbXBs
YXRlPD4gc3RydWN0IEFQSUNsaWVudFRyYWl0czxXS0J1bmRsZUNsaWVudD4gewogfTsKIAogdGVt
cGxhdGU8PiBzdHJ1Y3QgQVBJQ2xpZW50VHJhaXRzPFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudD4g
ewotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgaW50ZXJmYWNlU2l6ZXNCeVZlcnNpb25bN107Cisg
ICAgc3RhdGljIGNvbnN0IHNpemVfdCBpbnRlcmZhY2VTaXplc0J5VmVyc2lvbls4XTsKIH07CiAK
IHRlbXBsYXRlPD4gc3RydWN0IEFQSUNsaWVudFRyYWl0czxXS0J1bmRsZVBhZ2VSZXNvdXJjZUxv
YWRDbGllbnQ+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sCmluZGV4IGQ3NjllMmEuLjRmYTFkMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay1kb2NzLnNnbWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93
ZWJraXQyZ3RrLWRvY3Muc2dtbApAQCAtNDksNiArNDksNyBAQAogICAgIDx0aXRsZT5XZWIgRXh0
ZW5zaW9uczwvdGl0bGU+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFdlYkV4dGVu
c2lvbi54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0V2ViUGFnZS54bWwi
Lz4KKyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0RnJhbWUueG1sIi8+CiAgIDwvY2hh
cHRlcj4KIAogICA8aW5kZXggaWQ9ImluZGV4LWFsbCI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4
dAppbmRleCAyNzA0ZDYzLi4yOTA3OGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKQEAg
LTEwNDAsNiArMTA0MCw3IEBAIFdlYktpdFdlYlBhZ2UKIHdlYmtpdF93ZWJfcGFnZV9nZXRfZG9t
X2RvY3VtZW50CiB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2lkCiB3ZWJraXRfd2ViX3BhZ2VfZ2V0X3Vy
aQord2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2ZyYW1lCiAKIDxTVUJTRUNUSU9OIFN0YW5kYXJk
PgogV2ViS2l0V2ViUGFnZUNsYXNzCkBAIC0xMDU0LDMgKzEwNTUsMjQgQEAgV0VCS0lUX1dFQl9Q
QUdFX0dFVF9DTEFTUwogV2ViS2l0V2ViUGFnZVByaXZhdGUKIHdlYmtpdF93ZWJfcGFnZV9nZXRf
dHlwZQogPC9TRUNUSU9OPgorCis8U0VDVElPTj4KKzxGSUxFPldlYktpdEZyYW1lPC9GSUxFPgor
V2ViS2l0RnJhbWUKK3dlYmtpdF9mcmFtZV9pc19tYWluX2ZyYW1lCit3ZWJraXRfZnJhbWVfZ2V0
X3VyaQord2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2dsb2JhbF9jb250ZXh0CisKKzxTVUJT
RUNUSU9OIFN0YW5kYXJkPgorV2ViS2l0RnJhbWVDbGFzcworV0VCS0lUX1RZUEVfRlJBTUUKK1dF
QktJVF9GUkFNRQorV0VCS0lUX0lTX0ZSQU1FCitXRUJLSVRfRlJBTUVfQ0xBU1MKK1dFQktJVF9J
U19GUkFNRV9DTEFTUworV0VCS0lUX0ZSQU1FX0dFVF9DTEFTUworCis8U1VCU0VDVElPTiBQcml2
YXRlPgorV2ViS2l0RnJhbWVQcml2YXRlCit3ZWJraXRfZnJhbWVfZ2V0X3R5cGUKKzwvU0VDVElP
Tj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Vi
a2l0Mmd0ay50eXBlcyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Vi
a2l0Mmd0ay50eXBlcwppbmRleCBhYjYyMGYwLi41YjFlYTNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGsudHlwZXMKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLnR5cGVzCkBAIC0y
NSw0ICsyNSw1IEBAIHdlYmtpdF93ZWJfdmlld19ncm91cF9nZXRfdHlwZQogd2Via2l0X3dlYl9l
eHRlbnNpb25fZ2V0X3R5cGUKIHdlYmtpdF93ZWJfcGFnZV9nZXRfdHlwZQogd2Via2l0X2F1dGhl
bnRpY2F0aW9uX3JlcXVlc3RfZ2V0X3R5cGUKLXdlYmtpdF9jcmVkZW50aWFsX2dldF90eXBlClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQord2Via2l0X2NyZWRlbnRpYWxfZ2V0X3R5cGUKK3dl
YmtpdF9mcmFtZV9nZXRfdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvdGVzdHMvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay90ZXN0cy9HTlVtYWtlZmlsZS5hbQppbmRleCBmZjJkNTM0Li5hYmRhMGVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9HTlVtYWtlZmls
ZS5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9HTlVtYWtl
ZmlsZS5hbQpAQCAtNyw2ICs3LDcgQEAgVEVTVF9QUk9HUyArPSBcCiAJUHJvZ3JhbXMvV2ViS2l0
MkFQSVRlc3RzL1Rlc3RDb29raWVNYW5hZ2VyIFwKIAlQcm9ncmFtcy9XZWJLaXQyQVBJVGVzdHMv
VGVzdERPTU5vZGUgXAogCVByb2dyYW1zL1dlYktpdDJBUElUZXN0cy9UZXN0RG93bmxvYWRzIFwK
KwlQcm9ncmFtcy9XZWJLaXQyQVBJVGVzdHMvVGVzdEZyYW1lIFwKIAlQcm9ncmFtcy9XZWJLaXQy
QVBJVGVzdHMvVGVzdEluc3BlY3RvciBcCiAJUHJvZ3JhbXMvV2ViS2l0MkFQSVRlc3RzL1Rlc3RJ
bnNwZWN0b3JTZXJ2ZXIgXAogCVByb2dyYW1zL1dlYktpdDJBUElUZXN0cy9UZXN0TG9hZGVyQ2xp
ZW50IFwKQEAgLTEyNiw2ICsxMjcsNyBAQCBMaWJyYXJpZXNfV2ViRXh0ZW5zaW9uc19saWJXZWJF
eHRlbnNpb25UZXN0X2xhX0NGTEFHUyA9IFwKIG5vaW5zdF9MVExJQlJBUklFUyArPSBMaWJyYXJp
ZXMvV2ViRXh0ZW5zaW9ucy9saWJXZWJQcm9jZXNzVGVzdC5sYQogTGlicmFyaWVzX1dlYkV4dGVu
c2lvbnNfbGliV2ViUHJvY2Vzc1Rlc3RfbGFfU09VUkNFUyA9IFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9ET01Ob2RlVGVzdC5jcHAgXAorCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL0ZyYW1lVGVzdC5jcHAgXAogCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYlByb2Nlc3NUZXN0LmNwcCBcCiAJU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViUHJvY2Vzc1Rlc3QuaAogCkBAIC0zMDMs
NCArMzA1LDEwIEBAIFByb2dyYW1zX1dlYktpdDJBUElUZXN0c19UZXN0RE9NTm9kZV9DUFBGTEFH
UyA9ICQod2Via2l0Ml90ZXN0c19jcHBmbGFncykKIFByb2dyYW1zX1dlYktpdDJBUElUZXN0c19U
ZXN0RE9NTm9kZV9MREFERCA9ICQod2Via2l0Ml90ZXN0c19sZGFkZCkKIFByb2dyYW1zX1dlYktp
dDJBUElUZXN0c19UZXN0RE9NTm9kZV9MREZMQUdTID0gJCh3ZWJraXQyX3Rlc3RzX2xkZmxhZ3Mp
CiAKK1Byb2dyYW1zX1dlYktpdDJBUElUZXN0c19UZXN0RnJhbWVfU09VUkNFUyA9IFwKKyAgICAg
ICAgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdEZyYW1lLmNwcAor
UHJvZ3JhbXNfV2ViS2l0MkFQSVRlc3RzX1Rlc3RGcmFtZV9DUFBGTEFHUyA9ICQod2Via2l0Ml90
ZXN0c19jcHBmbGFncykKK1Byb2dyYW1zX1dlYktpdDJBUElUZXN0c19UZXN0RnJhbWVfTERBREQg
PSAkKHdlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFtc19XZWJLaXQyQVBJVGVzdHNfVGVzdEZy
YW1lX0xERkxBR1MgPSAkKHdlYmtpdDJfdGVzdHNfbGRmbGFncykKKwogZW5kaWYgIyBFTkFCTEVf
V0VCS0lUMgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKaW5kZXggYTdiYzZkZi4uNjU1YTIyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCkBAIC0xMTIsNiArMTEyLDcgQEAgdHlwZWRlZiB2
b2lkICgqV0tCdW5kbGVQYWdlRGlkTGF5b3V0Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdl
LCBXS0xheW91dE1pbGUKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUZlYXR1cmVzVXNlZElu
UGFnZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tBcnJheVJlZiBmZWF0dXJlU3Ry
aW5ncywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBh
Z2VXaWxsTG9hZFVSTFJlcXVlc3RDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLVVJM
UmVxdWVzdFJlZiByZXF1ZXN0LCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbExvYWREYXRhUmVxdWVzdENh
bGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdL
RGF0YVJlZiBkYXRhLCBXS1N0cmluZ1JlZiBNSU1FVHlwZSwgV0tTdHJpbmdSZWYgZW5jb2RpbmdO
YW1lLCBXS1VSTFJlZiB1bnJlYWNoYWJsZVVSTCwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2
b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdpbGxEZXN0cm95
RnJhbWUpKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKTsKIAogc3RydWN0IFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudCB7
CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKQEAgLTE2NCwxMCArMTY1LDEzIEBAIHN0cnVj
dCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQgewogICAgIC8vIFZlcnNpb24gNgogICAgIFdLQnVu
ZGxlUGFnZVdpbGxMb2FkVVJMUmVxdWVzdENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdpbGxMb2FkVVJMUmVxdWVzdDsKICAgICBXS0J1bmRsZVBhZ2VXaWxsTG9hZERh
dGFSZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsTG9h
ZERhdGFSZXF1ZXN0OworCisgICAgLy8gVmVyc2lvbiA3CisgICAgV0tCdW5kbGVQYWdlV2lsbERl
c3Ryb3lGcmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2ls
bERlc3Ryb3lGcmFtZTsKIH07CiB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGll
bnQgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OwogCi1lbnVtIHsga1dLQnVuZGxlUGFnZUxvYWRl
ckNsaWVudEN1cnJlbnRWZXJzaW9uID0gNiB9OworZW51bSB7IGtXS0J1bmRsZVBhZ2VMb2FkZXJD
bGllbnRDdXJyZW50VmVyc2lvbiA9IDcgfTsKIAogZW51bSB7CiAgICAgV0tCdW5kbGVQYWdlUG9s
aWN5QWN0aW9uUGFzc1Rocm91Z2gsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWUuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOGIyMWY3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktp
dEZyYW1lLmNwcApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJ
Z2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLDEgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdEZyYW1lLmgi
CisKKyNpbmNsdWRlICJXZWJLaXRGcmFtZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRQcml2
YXRlLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3N0cnVjdCBfV2ViS2l0RnJhbWVQ
cml2YXRlIHsKKyAgICBSZWZQdHI8V2ViRnJhbWU+IHdlYkZyYW1lOworCisgICAgQ1N0cmluZyB1
cmk7Cit9OworCitXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0RnJhbWUsIHdlYmtpdF9mcmFtZSwg
R19UWVBFX09CSkVDVCkKKworc3RhdGljIHZvaWQgd2Via2l0X2ZyYW1lX2NsYXNzX2luaXQoV2Vi
S2l0RnJhbWVDbGFzcyoga2xhc3MpCit7Cit9CisKK1dlYktpdEZyYW1lKiB3ZWJraXRGcmFtZUNy
ZWF0ZShXZWJGcmFtZSogd2ViRnJhbWUpCit7CisgICAgV2ViS2l0RnJhbWUqIGZyYW1lID0gV0VC
S0lUX0ZSQU1FKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9GUkFNRSwgTlVMTCkpOworICAgIGZy
YW1lLT5wcml2LT53ZWJGcmFtZSA9IHdlYkZyYW1lOworICAgIHJldHVybiBmcmFtZTsKK30KKwor
LyoqCisgKiB3ZWJraXRfZnJhbWVfaXNfbWFpbl9mcmFtZToKKyAqIEBmcmFtZTogYSAjV2ViS2l0
RnJhbWUKKyAqCisgKiBHZXRzIHdoZXRoZXIgQGZyYW1lIGlzIHRoZSBhIG1haW4gZnJhbWUgb2Yg
YSAjV2ViS2l0V2ViUGFnZQorICoKKyAqIFJldHVybnM6ICVUUlVFIGlmIEBmcmFtZSBpcyBhIG1h
aW4gZnJhbWUgb3IgJUZBTFNFIG90aGVyd2lzZQorICoKKyAqIFNpbmNlOiAyLjIKKyAqLworZ2Jv
b2xlYW4gd2Via2l0X2ZyYW1lX2lzX21haW5fZnJhbWUoV2ViS2l0RnJhbWUqIGZyYW1lKQorewor
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19GUkFNRShmcmFtZSksIEZBTFNFKTsK
KworICAgIHJldHVybiBmcmFtZS0+cHJpdi0+d2ViRnJhbWUtPmlzTWFpbkZyYW1lKCk7Cit9CisK
Ky8qKgorICogd2Via2l0X2ZyYW1lX2dldF91cmk6CisgKiBAZnJhbWU6IGEgI1dlYktpdEZyYW1l
CisgKgorICogR2V0cyB0aGUgY3VycmVudCBhY3RpdmUgVVJJIG9mIEBmcmFtZS4KKyAqCisgKiBS
ZXR1cm5zOiB0aGUgY3VycmVudCBhY3RpdmUgVVJJIG9mIEBmcmFtZSBvciAlTlVMTCBpZiBub3Ro
aW5nIGhhcyBiZWVuCisgKiAgICBsb2FkZWQgeWV0LgorICoKKyAqIFNpbmNlOiAyLjIKKyAqLwor
Y29uc3QgZ2NoYXIqIHdlYmtpdF9mcmFtZV9nZXRfdXJpKFdlYktpdEZyYW1lKiBmcmFtZSkKK3sK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfRlJBTUUoZnJhbWUpLCAwKTsKKwor
ICAgIGlmIChmcmFtZS0+cHJpdi0+dXJpLmlzTnVsbCgpKQorICAgICAgICBmcmFtZS0+cHJpdi0+
dXJpID0gZnJhbWUtPnByaXYtPndlYkZyYW1lLT51cmwoKS51dGY4KCk7CisKKyAgICByZXR1cm4g
ZnJhbWUtPnByaXYtPnVyaS5kYXRhKCk7Cit9CisKKy8qKgorICogd2Via2l0X2ZyYW1lX2dldF9q
YXZhc2NyaXB0X2dsb2JhbF9jb250ZXh0OgorICogQGZyYW1lOiBhICNXZWJLaXRGcmFtZQorICoK
KyAqIEdldHMgdGhlIGdsb2JhbCBKYXZhU2NyaXB0IGV4ZWN1dGlvbiBjb250ZXh0LiBVc2UgdGhp
cyBmdW5jdGlvbiB0byBicmlkZ2UKKyAqIGJldHdlZW4gdGhlIFdlYktpdCBhbmQgSmF2YVNjcmlw
dENvcmUgQVBJcy4KKyAqCisgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IHRoZSBnbG9iYWwg
SmF2YVNjcmlwdCBjb250ZXh0IG9mIEBmcmFtZQorICoKKyAqIFNpbmNlOiAyLjIKKyAqLworSlNH
bG9iYWxDb250ZXh0UmVmIHdlYmtpdF9mcmFtZV9nZXRfamF2YXNjcmlwdF9nbG9iYWxfY29udGV4
dChXZWJLaXRGcmFtZSogZnJhbWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lU
X0lTX0ZSQU1FKGZyYW1lKSwgMCk7CisKKyAgICByZXR1cm4gZnJhbWUtPnByaXYtPndlYkZyYW1l
LT5qc0NvbnRleHQoKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTM0NWM1YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5o
CkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiwxIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpZiAhZGVmaW5lZChfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hfSU5TSURFX18pICYmICFkZWZp
bmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0LXdl
Yi1leHRlbnNpb24uaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZu
ZGVmIFdlYktpdEZyYW1lX2gKKyNkZWZpbmUgV2ViS2l0RnJhbWVfaAorCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNCYXNlLmg+CisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRl
IDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdF
QktJVF9UWVBFX0ZSQU1FICAgICAgICAgICAgKHdlYmtpdF9mcmFtZV9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBXRUJLSVRfRlJBTUUob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0Vf
Q0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfRlJBTUUsIFdlYktpdEZyYW1lKSkKKyNkZWZpbmUgV0VC
S0lUX0lTX0ZSQU1FKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9i
aiksIFdFQktJVF9UWVBFX0ZSQU1FKSkKKyNkZWZpbmUgV0VCS0lUX0ZSQU1FX0NMQVNTKGtsYXNz
KSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0ZSQU1F
LCBXZWJLaXRGcmFtZUNsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lTX0ZSQU1FX0NMQVNTKGtsYXNz
KSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0ZSQU1FKSkK
KyNkZWZpbmUgV0VCS0lUX0ZSQU1FX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dF
VF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX0ZSQU1FLCBXZWJLaXRGcmFtZUNsYXNzKSkKKwor
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEZyYW1lICAgICAgICBXZWJLaXRGcmFtZTsKK3R5cGVkZWYg
c3RydWN0IF9XZWJLaXRGcmFtZUNsYXNzICAgV2ViS2l0RnJhbWVDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9XZWJLaXRGcmFtZVByaXZhdGUgV2ViS2l0RnJhbWVQcml2YXRlOworCitzdHJ1Y3QgX1dl
YktpdEZyYW1lIHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIFdlYktpdEZyYW1lUHJpdmF0
ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0RnJhbWVDbGFzcyB7CisgICAgR09iamVjdENs
YXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9mcmFtZV9n
ZXRfdHlwZSAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgZ2Jvb2xl
YW4KK3dlYmtpdF9mcmFtZV9pc19tYWluX2ZyYW1lICAgICAgICAgICAgICAgICAoV2ViS2l0RnJh
bWUgKmZyYW1lKTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfZnJhbWVfZ2V0
X3VyaSAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICpmcmFtZSk7CisKK1dFQktJ
VF9BUEkgSlNHbG9iYWxDb250ZXh0UmVmCit3ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfZ2xv
YmFsX2NvbnRleHQgKFdlYktpdEZyYW1lICpmcmFtZSk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL1dlYktpdEZyYW1lUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lUHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjN2ZhYjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWVQcml2
YXRlLmgKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEg
Uy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaWZuZGVmIFdlYktpdEZyYW1lUHJpdmF0ZV9oCisjZGVmaW5lIFdlYktpdEZyYW1lUHJp
dmF0ZV9oCisKKyNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYktpdEZyYW1lLmgi
CisKK1dlYktpdEZyYW1lKiB3ZWJraXRGcmFtZUNyZWF0ZShXZWJLaXQ6OldlYkZyYW1lKik7CisK
KyNlbmRpZiAvLyBXZWJLaXRGcmFtZVByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdl
YlBhZ2UuY3BwCmluZGV4IDYzZmUyYTkuLmQ5YTk2MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2Vi
S2l0V2ViUGFnZS5jcHAKQEAgLTI1LDkgKzI1LDkgQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRs
ZS5oIgogI2luY2x1ZGUgIldLQnVuZGxlQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLQnVuZGxlRnJh
bWUuaCIKLSNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkltYWdlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RnJhbWVQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0TWFyc2hhbC5oIgogI2luY2x1ZGUgIldlYktpdFBy
aXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRVUklSZXF1ZXN0UHJpdmF0ZS5oIgpAQCAtNjcsNiAr
NjcsMjYgQEAgc3RhdGljIGd1aW50IHNpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwogCiBX
RUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0V2ViUGFnZSwgd2Via2l0X3dlYl9wYWdlLCBHX1RZUEVf
T0JKRUNUKQogCit0eXBlZGVmIEhhc2hNYXA8V2ViRnJhbWUqLCBHUmVmUHRyPFdlYktpdEZyYW1l
Pj4gV2ViRnJhbWVNYXA7CisKK3N0YXRpYyBXZWJGcmFtZU1hcCYgd2ViRnJhbWVNYXAoKQorewor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoV2ViRnJhbWVNYXAsIG1hcCwgKCkpOworICAgIHJldHVy
biBtYXA7Cit9CisKK3N0YXRpYyBXZWJLaXRGcmFtZSogd2Via2l0RnJhbWVHZXRPckNyZWF0ZShX
ZWJGcmFtZSogd2ViRnJhbWUpCit7CisgICAgR1JlZlB0cjxXZWJLaXRGcmFtZT4gZnJhbWUgPSB3
ZWJGcmFtZU1hcCgpLmdldCh3ZWJGcmFtZSk7CisgICAgaWYgKGZyYW1lKQorICAgICAgICByZXR1
cm4gZnJhbWUuZ2V0KCk7CisKKyAgICBmcmFtZSA9IGFkb3B0R1JlZih3ZWJraXRGcmFtZUNyZWF0
ZSh3ZWJGcmFtZSkpOworICAgIHdlYkZyYW1lTWFwKCkuc2V0KHdlYkZyYW1lLCBmcmFtZSk7CisK
KyAgICByZXR1cm4gZnJhbWUuZ2V0KCk7Cit9CisKIHN0YXRpYyBDU3RyaW5nIGdldFByb3Zpc2lv
bmFsVVJMRm9yRnJhbWUoV2ViRnJhbWUqIHdlYkZyYW1lKQogewogICAgIERvY3VtZW50TG9hZGVy
KiBkb2N1bWVudExvYWRlciA9IHdlYkZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCktPnByb3Zp
c2lvbmFsRG9jdW1lbnRMb2FkZXIoKTsKQEAgLTExNyw2ICsxMzcsMTEgQEAgc3RhdGljIHZvaWQg
ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZy
YW1lUmVmIGZyYW0KICAgICBnX3NpZ25hbF9lbWl0KFdFQktJVF9XRUJfUEFHRShjbGllbnRJbmZv
KSwgc2lnbmFsc1tET0NVTUVOVF9MT0FERURdLCAwKTsKIH0KIAorc3RhdGljIHZvaWQgd2lsbERl
c3Ryb3lGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pCit7CisgICAgd2ViRnJhbWVNYXAoKS5yZW1vdmUodG9JbXBsKGZy
YW1lKSk7Cit9CisKIHN0YXRpYyB2b2lkIGRpZEluaXRpYXRlTG9hZEZvclJlc291cmNlKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCB1aW50NjRfdCBpZGVudGlm
aWVyLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgYm9vbCBwYWdlTG9hZElzUHJvdmlzaW9uYWws
IGNvbnN0IHZvaWQqKQogewogICAgIEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2Fn
ZTsKQEAgLTI3Nyw3ICszMDIsNyBAQCBXZWJLaXRXZWJQYWdlKiB3ZWJraXRXZWJQYWdlQ3JlYXRl
KFdlYlBhZ2UqIHdlYlBhZ2UpCiAgICAgcGFnZS0+cHJpdi0+d2ViUGFnZSA9IHdlYlBhZ2U7CiAK
ICAgICBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQgbG9hZGVyQ2xpZW50ID0gewotICAgICAgICBr
V0tCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50Q3VycmVudFZlcnNpb24sCisgICAgICAgIGtX
S0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRDdXJyZW50VmVyc2lvbiwKICAgICAgICAgcGFnZSwKICAg
ICAgICAgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSwKICAgICAgICAgZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUsCkBAIC0zMTEsOCArMzM2
LDkgQEAgV2ViS2l0V2ViUGFnZSogd2Via2l0V2ViUGFnZUNyZWF0ZShXZWJQYWdlKiB3ZWJQYWdl
KQogICAgICAgICAwLCAvLyByZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZV91bmF2YWlsYWJs
ZQogICAgICAgICAwLCAvLyBkaWRMYXlvdXQKICAgICAgICAgMCwgLy8gZmVhdHVyZXNVc2VkSW5Q
YWdlCi0gICAgICAgIDAsIC8vIHdpbGxMb2FkVVJMUmVxdWVzdDsKLSAgICAgICAgMCwgLy8gd2ls
bExvYWREYXRhUmVxdWVzdDsKKyAgICAgICAgMCwgLy8gd2lsbExvYWRVUkxSZXF1ZXN0CisgICAg
ICAgIDAsIC8vIHdpbGxMb2FkRGF0YVJlcXVlc3QKKyAgICAgICAgd2lsbERlc3Ryb3lGcmFtZQog
ICAgIH07CiAgICAgV0tCdW5kbGVQYWdlU2V0UGFnZUxvYWRlckNsaWVudCh0b0FQSSh3ZWJQYWdl
KSwgJmxvYWRlckNsaWVudCk7CiAKQEAgLTQyMCwzICs0NDYsMTAgQEAgY29uc3QgZ2NoYXIqIHdl
YmtpdF93ZWJfcGFnZV9nZXRfdXJpKFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UpCiAKICAgICByZXR1
cm4gd2ViUGFnZS0+cHJpdi0+dXJpLmRhdGEoKTsKIH0KKworV2ViS2l0RnJhbWUqIHdlYmtpdF93
ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZShXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlKQoreworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfUEFHRSh3ZWJQYWdlKSwgMCk7CisKKyAg
ICByZXR1cm4gd2Via2l0RnJhbWVHZXRPckNyZWF0ZSh3ZWJQYWdlLT5wcml2LT53ZWJQYWdlLT5t
YWluV2ViRnJhbWUoKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuaAppbmRleCBm
ZjZlMDBkLi4zNzQ1NTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmgKQEAgLTI2
LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0
Mi9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGcmFtZS5oPgogI2lu
Y2x1ZGUgPHdlYmtpdGRvbS93ZWJraXRkb20uaD4KIAogR19CRUdJTl9ERUNMUwpAQCAtNjEsNyAr
NjIsMTAgQEAgV0VCS0lUX0FQSSBndWludDY0CiB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2lkICAgICAg
ICAgICAoV2ViS2l0V2ViUGFnZSAqd2ViX3BhZ2UpOwogCiBXRUJLSVRfQVBJIGNvbnN0IGdjaGFy
ICoKLXdlYmtpdF93ZWJfcGFnZV9nZXRfdXJpIChXZWJLaXRXZWJQYWdlICp3ZWJfcGFnZSk7Cit3
ZWJraXRfd2ViX3BhZ2VfZ2V0X3VyaSAgICAgICAgICAoV2ViS2l0V2ViUGFnZSAqd2ViX3BhZ2Up
OworCitXRUJLSVRfQVBJIFdlYktpdEZyYW1lICoKK3dlYmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9m
cmFtZSAgIChXZWJLaXRXZWJQYWdlICp3ZWJfcGFnZSk7CiAKIEdfRU5EX0RFQ0xTCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay93
ZWJraXQtd2ViLWV4dGVuc2lvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgKaW5kZXggZmZiYjU1Ny4uMWRl
OTc1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgKQEAg
LTIyLDYgKzIyLDcgQEAKIAogI2RlZmluZSBfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hfSU5TSURF
X18KIAorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RnJhbWUuaD4KICNpbmNsdWRlIDx3ZWJraXQy
L1dlYktpdFVSSVJlcXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlc3BvbnNl
Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJFeHRlbnNpb24uaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcAppbmRleCA5NWY2YzAwLi4x
ZjgwYjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGll
bnQuY3BwCkBAIC0zNTIsNCArMzUyLDEyIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVy
Q2xpZW50OjpmZWF0dXJlc1VzZWRJblBhZ2UoV2ViUGFnZSogcGFnZSwgY29uc3QgVmVjCiAgICAg
cmV0dXJuIG1fY2xpZW50LmZlYXR1cmVzVXNlZEluUGFnZSh0b0FQSShwYWdlKSwgdG9BUEkoZmVh
dHVyZVN0cmluZ09iamVjdHNBcnJheS5nZXQoKSksIG1fY2xpZW50LmNsaWVudEluZm8pOwogfQog
Cit2b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6d2lsbERlc3Ryb3lGcmFtZShX
ZWJQYWdlKiBwYWdlLCBXZWJGcmFtZSogZnJhbWUpCit7CisgICAgaWYgKCFtX2NsaWVudC53aWxs
RGVzdHJveUZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC53aWxsRGVzdHJv
eUZyYW1lKHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIG1fY2xpZW50LmNsaWVudEluZm8pOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZUxvYWRlckNsaWVudC5oCmluZGV4IGM4OWRiNTkuLjY4MmFhZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
TG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaApAQCAtOTAsNiArOTAsOCBAQCBw
dWJsaWM6CiAgICAgYm9vbCBzaG91bGRGb3JjZVVuaXZlcnNhbEFjY2Vzc0Zyb21Mb2NhbFVSTChX
ZWJQYWdlKiwgY29uc3QgU3RyaW5nJiB1cmwpOwogCiAgICAgdm9pZCBmZWF0dXJlc1VzZWRJblBh
Z2UoV2ViUGFnZSosIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisKKyAgICB2b2lkIHdpbGxEZXN0
cm95RnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggODQ0YTAxMC4uMWFiM2Vl
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTk1LDYgKzk1LDkgQEAg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6On5XZWJGcmFtZUxvYWRlckNsaWVudCgpCiAgICAgCiB2b2lk
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUxvYWRlckRlc3Ryb3llZCgpCiB7CisgICAgaWYg
KFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAgIHdlYlBhZ2UtPmlu
amVjdGVkQnVuZGxlTG9hZGVyQ2xpZW50KCkud2lsbERlc3Ryb3lGcmFtZSh3ZWJQYWdlLCBtX2Zy
YW1lKTsKKwogICAgIG1fZnJhbWUtPmludmFsaWRhdGUoKTsKIAogICAgIC8vIEJhbGFuY2VzIGV4
cGxpY2l0IHJlZigpIGluIFdlYkZyYW1lOjpjcmVhdGVNYWluRnJhbWUgYW5kIFdlYkZyYW1lOjpj
cmVhdGVTdWJmcmFtZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQv
UXRCdWlsdGluQnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0
QnVpbHRpbkJ1bmRsZVBhZ2UuY3BwCmluZGV4IGIzMmZlZGYuLmY3NmMwMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXRCdWlsdGluQnVuZGxlUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5kbGVQYWdlLmNwcApA
QCAtODIsNiArODIsNyBAQCBRdEJ1aWx0aW5CdW5kbGVQYWdlOjpRdEJ1aWx0aW5CdW5kbGVQYWdl
KFF0QnVpbHRpbkJ1bmRsZSogYnVuZGxlLCBXS0J1bmRsZVBhZ2VSZQogICAgICAgICAwLCAvLyBm
ZWF0dXJlc1VzZWRJblBhZ2UKICAgICAgICAgMCwgLy8gd2lsbExvYWRVUkxSZXF1ZXN0CiAgICAg
ICAgIDAsIC8vIHdpbGxMb2FkRGF0YVJlcXVlc3QKKyAgICAgICAgMCwgLy8gd2lsbERlc3Ryb3lG
cmFtZQogICAgIH07CiAgICAgV0tCdW5kbGVQYWdlU2V0UGFnZUxvYWRlckNsaWVudChtX3BhZ2Us
ICZsb2FkZXJDbGllbnQpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDczZjRiN2QuLjBlNjg0MGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wOC0xMyAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dU
S10gRXhwb3NlIFdlYktpdEZyYW1lIGluIFdlYktpdDJHVEsrIHdlYiBleHRlbnNpb25zIEFQSQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5NzQzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAg
IChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKTogQWRkCisgICAg
ICAgIHdpbGxEZXN0cm95RnJhbWUuCisKIDIwMTMtMDgtMTIgIERhbiBCZXJuc3RlaW4gIDxtaXR6
QGFwcGxlLmNvbT4KIAogICAgICAgICBleHRyYWN0LWxvY2FsaXphYmxlLXN0cmluZ3Mgb3V0cHV0
IGlzIG5vdCBzdWl0ZWQgZm9yIHBhcnNpbmcgYnkgWGNvZGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNw
cAppbmRleCA0MWI4OGU3Li4zMGY2ZTg0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC0z
MDksNiArMzA5LDcgQEAgSW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UpCiAgICAgICAgIDAsIC8vIGZlYXR1cmVzVXNlZEluUGFnZQogICAg
ICAgICAwLCAvLyB3aWxsTG9hZFVSTFJlcXVlc3QKICAgICAgICAgMCwgLy8gd2lsbExvYWREYXRh
UmVxdWVzdAorICAgICAgICAwLCAvLyB3aWxsRGVzdHJveUZyYW1lCiAgICAgfTsKICAgICBXS0J1
bmRsZVBhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KG1fcGFnZSwgJmxvYWRlckNsaWVudCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208638</attachid>
            <date>2013-08-13 09:05:39 -0700</date>
            <delta_ts>2013-08-23 05:51:04 -0700</delta_ts>
            <desc>Another update</desc>
            <filename>wk2-frame3.diff</filename>
            <type>text/plain</type>
            <size>33623</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBlMWFkMjdmLi5iYzc0ZjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAg
QEAKKzIwMTMtMDgtMTMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEV4cG9zZSBXZWJLaXRGcmFtZSBpbiBXZWJLaXQyR1RLKyB3ZWIg
ZXh0ZW5zaW9ucyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExOTc0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogQWRkIG5ldyBmaWxlcyB0byBjb21waWxhdGlv
bi4KKyAgICAgICAgKiBTaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcDogVXBkYXRlIGZvciBuZXcg
aW50ZXJmYWNlIHZlcnNpb24uCisgICAgICAgICogU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oOiBE
aXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5z
Z21sOiBBZGQgV2ViS2l0RnJhbWUKKyAgICAgICAgc2VjdGlvbi4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0OiBBZGQgbmV3IHB1YmxpYwor
ICAgICAgICBzeW1ib2xzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay50eXBlczogQWRkCisgICAgICAgIHdlYmtpdF9mcmFtZV9nZXRfdHlwZS4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9GcmFtZVRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdEZyYW1lVGVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdEZyYW1lVGVzdDo6d2Vi
UGFnZUZyb21BcmdzKToKKyAgICAgICAgKFdlYktpdEZyYW1lVGVzdDo6dGVzdE1haW5GcmFtZSk6
CisgICAgICAgIChXZWJLaXRGcmFtZVRlc3Q6OnRlc3RVUkkpOgorICAgICAgICAoV2ViS2l0RnJh
bWVUZXN0Ojp0ZXN0SmF2YVNjcmlwdENvbnRleHQpOgorICAgICAgICAoV2ViS2l0RnJhbWVUZXN0
OjpydW5UZXN0KToKKyAgICAgICAgKHJlZ2lzdGVyVGVzdHMpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL3Rlc3RzL0dOVW1ha2VmaWxlLmFtOiBBZGQgbmV3IHRlc3QgZmlsZXMuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdEZyYW1lLmNwcDogQWRkZWQuCisgICAg
ICAgICh3ZWJraXRGcmFtZVRlc3RSdW4pOgorICAgICAgICAodGVzdFdlYktpdEZyYW1lTWFpbkZy
YW1lKToKKyAgICAgICAgKHRlc3RXZWJLaXRGcmFtZVVSSSk6CisgICAgICAgICh0ZXN0V2ViS2l0
RnJhbWVKYXZhU2NyaXB0Q29udGV4dCk6CisgICAgICAgIChiZWZvcmVBbGwpOgorICAgICAgICAo
YWZ0ZXJBbGwpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlLmg6IEFkZAorICAgICAgICB3aWxsRGVzdHJveUZyYW1lIGNhbGxiYWNrIHRvIHRo
ZSBpbmplY3RlZCBidW5kbGUgbG9hZGVyIGNsaWVudCwgdG8KKyAgICAgICAgbm90aWZ5IHRoZSBj
bGllbnQgd2hlbiBhIGZyYW1lIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKHdlYmtpdF9mcmFtZV9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdEZyYW1l
Q3JlYXRlKToKKyAgICAgICAgKHdlYmtpdF9mcmFtZV9pc19tYWluX2ZyYW1lKToKKyAgICAgICAg
KHdlYmtpdF9mcmFtZV9nZXRfdXJpKToKKyAgICAgICAgKHdlYmtpdF9mcmFtZV9nZXRfamF2YXNj
cmlwdF9nbG9iYWxfY29udGV4dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRGcmFtZVByaXZhdGUuaDogQWRkZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwOgor
ICAgICAgICAod2Via2l0RnJhbWVHZXRPckNyZWF0ZSk6IEhlbHBlciBmdW5jdGlvbiB0byBjcmVh
dGUgYSBXZWJLaXRGcmFtZQorICAgICAgICB3cmFwcGluZyB0aGUgZ2l2ZW4gV2ViRnJhbWUgb3Ig
cmV0dXJuaW5nIHRoZSB3cmFwcGVyIGlmIGl0IGFscmVhZHkKKyAgICAgICAgZXhpc3RzLgorICAg
ICAgICAod2lsbERlc3Ryb3lGcmFtZSk6IFJlbW92ZSB0aGUgV2ViS2l0RnJhbWUgd3JhcHBpbmcg
dGhlIGdpdmVuCisgICAgICAgIFdlYkZyYW1lIGlmIGl0IGV4aXN0cy4KKyAgICAgICAgKHdlYmtp
dFdlYlBhZ2VDcmVhdGUpOiBBZGQgd2lsbERlc3Ryb3lGcmFtZSBpbXBsZW1lbnRhdGlvbiB0bwor
ICAgICAgICBpbmplY3RlZCBidW5kbGUgbG9hZGVyIGNsaWVudC4KKyAgICAgICAgKHdlYmtpdF93
ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZSk6IFJldHVybiB0aGUgbWFpbiBmcmFtZSBvZiB0aGUKKyAg
ICAgICAgcGFnZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
V2ViS2l0V2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5oOgorICAgICAgICBJbmNsdWRlIFdlYktpdEZyYW1l
LmguCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VM
b2FkZXJDbGllbnQ6OndpbGxEZXN0cm95RnJhbWUpOiBOZXcKKyAgICAgICAgY2FsbGJhY2sgdG8g
YmUgY2FsbGVkIHdoZW4gYSBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGll
bnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1l
TG9hZGVyRGVzdHJveWVkKTogQ2FsbAorICAgICAgICB3aWxsRGVzdHJveUZyYW1lIGNhbGxiYWNr
IG9mIGluamVjdGVkIGJ1bmRsZSBsb2FkZXIgY2xpZW50LgorICAgICAgICAqIFdlYlByb2Nlc3Mv
cXQvUXRCdWlsdGluQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0QnVpbHRpbkJ1
bmRsZVBhZ2U6OlF0QnVpbHRpbkJ1bmRsZVBhZ2UpOiBBZGQKKyAgICAgICAgd2lsbERlc3Ryb3lG
cmFtZSBjYWxsYmFjay4KKwogMjAxMy0wOC0xMiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUu
Y29tPgogCiAgICAgICAgIEZpeGVkIGFuIG9mZi1ieS0oc2l6ZW9mKGNoYXIqKSAtIDEpIGJ1Zy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDYyNmNlZDMuLjc4YzM0YWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dl
YktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTM4LDYgKzEzOCw3IEBAIHdlYmtpdDJndGtf
aF9hcGkgKz0gXAogCiB3ZWJraXQyX3dlYl9leHRlbnNpb25faF9hcGkgKz0gXAogCSQoV2ViS2l0
MikvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5o
IFwKKwkkKFdlYktpdDIpL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRG
cmFtZS5oIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9X
ZWJLaXRXZWJQYWdlLmggXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgKIApAQCAtMTA1OSw2ICsxMDYwLDkgQEAgd2Vi
a2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUmFuZ2VIYW5kbGVQcml2YXRlLmggXAogCVNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVTY3JpcHRXb3JsZC5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWUuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWUuaCBcCisJU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lUHJpdmF0ZS5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0
V2ViRXh0ZW5zaW9uLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uUHJpdmF0ZS5o
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAKaW5kZXggZmU2OGQ2
OS4uMDQyNjE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRy
YWl0cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAK
QEAgLTQzLDYgKzQzLDcgQEAgY29uc3Qgc2l6ZV90IEFQSUNsaWVudFRyYWl0czxXS0J1bmRsZVBh
Z2VMb2FkZXJDbGllbnQ+OjppbnRlcmZhY2VTaXplc0J5VmVyc2lvblsKICAgICBvZmZzZXRvZihX
S0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQsIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lX3Vu
YXZhaWxhYmxlKSwKICAgICBvZmZzZXRvZihXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQsIGRpZExh
eW91dCksCiAgICAgb2Zmc2V0b2YoV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LCBmZWF0dXJlc1Vz
ZWRJblBhZ2UpLAorICAgIG9mZnNldG9mKFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudCwgd2lsbExv
YWREYXRhUmVxdWVzdCksCiAgICAgc2l6ZW9mKFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudCkKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaAppbmRleCA0NjIyOTc4Li5k
ZjNhYWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRz
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oCkBAIC00NCw3
ICs0NCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFQSUNsaWVudFRyYWl0czxXS0J1bmRsZUNsaWVu
dD4gewogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJQ2xpZW50VHJhaXRzPFdLQnVuZGxlUGFn
ZUxvYWRlckNsaWVudD4gewotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgaW50ZXJmYWNlU2l6ZXNC
eVZlcnNpb25bN107CisgICAgc3RhdGljIGNvbnN0IHNpemVfdCBpbnRlcmZhY2VTaXplc0J5VmVy
c2lvbls4XTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFQSUNsaWVudFRyYWl0czxXS0J1bmRs
ZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQ+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sCmluZGV4IGQ3Njll
MmEuLjRmYTFkMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbApAQCAtNDksNiArNDksNyBAQAogICAg
IDx0aXRsZT5XZWIgRXh0ZW5zaW9uczwvdGl0bGU+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1s
L1dlYktpdFdlYkV4dGVuc2lvbi54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2Vi
S2l0V2ViUGFnZS54bWwiLz4KKyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0RnJhbWUu
eG1sIi8+CiAgIDwvY2hhcHRlcj4KIAogICA8aW5kZXggaWQ9ImluZGV4LWFsbCI+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2Vj
dGlvbnMudHh0IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQy
Z3RrLXNlY3Rpb25zLnR4dAppbmRleCAyNzA0ZDYzLi4yOTA3OGRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1z
ZWN0aW9ucy50eHQKQEAgLTEwNDAsNiArMTA0MCw3IEBAIFdlYktpdFdlYlBhZ2UKIHdlYmtpdF93
ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50CiB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2lkCiB3ZWJraXRf
d2ViX3BhZ2VfZ2V0X3VyaQord2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2ZyYW1lCiAKIDxTVUJT
RUNUSU9OIFN0YW5kYXJkPgogV2ViS2l0V2ViUGFnZUNsYXNzCkBAIC0xMDU0LDMgKzEwNTUsMjQg
QEAgV0VCS0lUX1dFQl9QQUdFX0dFVF9DTEFTUwogV2ViS2l0V2ViUGFnZVByaXZhdGUKIHdlYmtp
dF93ZWJfcGFnZV9nZXRfdHlwZQogPC9TRUNUSU9OPgorCis8U0VDVElPTj4KKzxGSUxFPldlYktp
dEZyYW1lPC9GSUxFPgorV2ViS2l0RnJhbWUKK3dlYmtpdF9mcmFtZV9pc19tYWluX2ZyYW1lCit3
ZWJraXRfZnJhbWVfZ2V0X3VyaQord2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2dsb2JhbF9j
b250ZXh0CisKKzxTVUJTRUNUSU9OIFN0YW5kYXJkPgorV2ViS2l0RnJhbWVDbGFzcworV0VCS0lU
X1RZUEVfRlJBTUUKK1dFQktJVF9GUkFNRQorV0VCS0lUX0lTX0ZSQU1FCitXRUJLSVRfRlJBTUVf
Q0xBU1MKK1dFQktJVF9JU19GUkFNRV9DTEFTUworV0VCS0lUX0ZSQU1FX0dFVF9DTEFTUworCis8
U1VCU0VDVElPTiBQcml2YXRlPgorV2ViS2l0RnJhbWVQcml2YXRlCit3ZWJraXRfZnJhbWVfZ2V0
X3R5cGUKKzwvU0VDVElPTj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay50eXBlcyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay50eXBlcwppbmRleCBhYjYyMGYwLi41YjFlYTNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGsu
dHlwZXMKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQy
Z3RrLnR5cGVzCkBAIC0yNSw0ICsyNSw1IEBAIHdlYmtpdF93ZWJfdmlld19ncm91cF9nZXRfdHlw
ZQogd2Via2l0X3dlYl9leHRlbnNpb25fZ2V0X3R5cGUKIHdlYmtpdF93ZWJfcGFnZV9nZXRfdHlw
ZQogd2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3RfZ2V0X3R5cGUKLXdlYmtpdF9jcmVkZW50
aWFsX2dldF90eXBlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQord2Via2l0X2NyZWRlbnRp
YWxfZ2V0X3R5cGUKK3dlYmtpdF9mcmFtZV9nZXRfdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvRnJhbWVUZXN0LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL0ZyYW1lVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNGQ0ODUwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL0ZyYW1lVGVzdC5jcHAKQEAgLTAsMCArMSwx
MDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Rlc3QuaCIKKyNpbmNsdWRlIDxnaW8vZ2lv
Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPgorCitjbGFzcyBX
ZWJLaXRGcmFtZVRlc3QgOiBwdWJsaWMgV2ViUHJvY2Vzc1Rlc3QgeworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzT3duUHRyPFdlYlByb2Nlc3NUZXN0PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFB0
cihuZXcgV2ViS2l0RnJhbWVUZXN0KCkpOyB9CisKK3ByaXZhdGU6CisgICAgZ3VpbnQ2NCB3ZWJQ
YWdlRnJvbUFyZ3MoR1ZhcmlhbnQqIGFyZ3MpCisgICAgeworICAgICAgICBHVmFyaWFudEl0ZXIg
aXRlcjsKKyAgICAgICAgZ192YXJpYW50X2l0ZXJfaW5pdCgmaXRlciwgYXJncyk7CisKKyAgICAg
ICAgY29uc3QgY2hhcioga2V5OworICAgICAgICBHVmFyaWFudCogdmFsdWU7CisgICAgICAgIHdo
aWxlIChnX3ZhcmlhbnRfaXRlcl9sb29wKCZpdGVyLCAieyZzdn0iLCAma2V5LCAmdmFsdWUpKSB7
CisgICAgICAgICAgICBpZiAoIXN0cmNtcChrZXksICJwYWdlSUQiKSAmJiBnX3ZhcmlhbnRfY2xh
c3NpZnkodmFsdWUpID09IEdfVkFSSUFOVF9DTEFTU19VSU5UNjQpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGdfdmFyaWFudF9nZXRfdWludDY0KHZhbHVlKTsKKyAgICAgICAgfQorCisgICAgICAg
IGdfYXNzZXJ0X25vdF9yZWFjaGVkKCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAg
IGJvb2wgdGVzdE1haW5GcmFtZShXZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbiwgR1Zhcmlh
bnQqIGFyZ3MpCisgICAgeworICAgICAgICBXZWJLaXRXZWJQYWdlKiBwYWdlID0gd2Via2l0X3dl
Yl9leHRlbnNpb25fZ2V0X3BhZ2UoZXh0ZW5zaW9uLCB3ZWJQYWdlRnJvbUFyZ3MoYXJncykpOwor
ICAgICAgICBnX2Fzc2VydChXRUJLSVRfSVNfV0VCX1BBR0UocGFnZSkpOworCisgICAgICAgIFdl
YktpdEZyYW1lKiBmcmFtZSA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZShwYWdlKTsK
KyAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0lTX0ZSQU1FKGZyYW1lKSk7CisgICAgICAgIGdfYXNz
ZXJ0KHdlYmtpdF9mcmFtZV9pc19tYWluX2ZyYW1lKGZyYW1lKSk7CisKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgYm9vbCB0ZXN0VVJJKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0
ZW5zaW9uLCBHVmFyaWFudCogYXJncykKKyAgICB7CisgICAgICAgIFdlYktpdFdlYlBhZ2UqIHBh
Z2UgPSB3ZWJraXRfd2ViX2V4dGVuc2lvbl9nZXRfcGFnZShleHRlbnNpb24sIHdlYlBhZ2VGcm9t
QXJncyhhcmdzKSk7CisgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9JU19XRUJfUEFHRShwYWdlKSk7
CisKKyAgICAgICAgV2ViS2l0RnJhbWUqIGZyYW1lID0gd2Via2l0X3dlYl9wYWdlX2dldF9tYWlu
X2ZyYW1lKHBhZ2UpOworICAgICAgICBnX2Fzc2VydChXRUJLSVRfSVNfRlJBTUUoZnJhbWUpKTsK
KyAgICAgICAgZ19hc3NlcnRfY21wc3RyKHdlYmtpdF93ZWJfcGFnZV9nZXRfdXJpKHBhZ2UpLCA9
PSwgd2Via2l0X2ZyYW1lX2dldF91cmkoZnJhbWUpKTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKKyAgICBib29sIHRlc3RKYXZhU2NyaXB0Q29udGV4dChXZWJLaXRXZWJFeHRlbnNp
b24qIGV4dGVuc2lvbiwgR1ZhcmlhbnQqIGFyZ3MpCisgICAgeworICAgICAgICBXZWJLaXRXZWJQ
YWdlKiBwYWdlID0gd2Via2l0X3dlYl9leHRlbnNpb25fZ2V0X3BhZ2UoZXh0ZW5zaW9uLCB3ZWJQ
YWdlRnJvbUFyZ3MoYXJncykpOworICAgICAgICBnX2Fzc2VydChXRUJLSVRfSVNfV0VCX1BBR0Uo
cGFnZSkpOworCisgICAgICAgIFdlYktpdEZyYW1lKiBmcmFtZSA9IHdlYmtpdF93ZWJfcGFnZV9n
ZXRfbWFpbl9mcmFtZShwYWdlKTsKKyAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0lTX0ZSQU1FKGZy
YW1lKSk7CisgICAgICAgIGdfYXNzZXJ0KHdlYmtpdF9mcmFtZV9nZXRfamF2YXNjcmlwdF9nbG9i
YWxfY29udGV4dChmcmFtZSkpOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAg
IHZpcnR1YWwgYm9vbCBydW5UZXN0KGNvbnN0IGNoYXIqIHRlc3ROYW1lLCBXZWJLaXRXZWJFeHRl
bnNpb24qIGV4dGVuc2lvbiwgR1ZhcmlhbnQqIGFyZ3MpCisgICAgeworICAgICAgICBpZiAoIXN0
cmNtcCh0ZXN0TmFtZSwgIm1haW4tZnJhbWUiKSkKKyAgICAgICAgICAgIHJldHVybiB0ZXN0TWFp
bkZyYW1lKGV4dGVuc2lvbiwgYXJncyk7CisgICAgICAgIGlmICghc3RyY21wKHRlc3ROYW1lLCAi
dXJpIikpCisgICAgICAgICAgICByZXR1cm4gdGVzdFVSSShleHRlbnNpb24sIGFyZ3MpOworICAg
ICAgICBpZiAoIXN0cmNtcCh0ZXN0TmFtZSwgImphdmFzY3JpcHQtY29udGV4dCIpKQorICAgICAg
ICAgICAgcmV0dXJuIHRlc3RKYXZhU2NyaXB0Q29udGV4dChleHRlbnNpb24sIGFyZ3MpOworCisg
ICAgICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVkKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9Cit9OworCitzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3RvcikpIHJlZ2lz
dGVyVGVzdHMoKQoreworICAgIFJFR0lTVEVSX1RFU1QoV2ViS2l0RnJhbWVUZXN0LCAiV2ViS2l0
RnJhbWUvbWFpbi1mcmFtZSIpOworICAgIFJFR0lTVEVSX1RFU1QoV2ViS2l0RnJhbWVUZXN0LCAi
V2ViS2l0RnJhbWUvdXJpIik7CisgICAgUkVHSVNURVJfVEVTVChXZWJLaXRGcmFtZVRlc3QsICJX
ZWJLaXRGcmFtZS9qYXZhc2NyaXB0LWNvbnRleHQiKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvR05VbWFrZWZpbGUuYW0KaW5kZXggZmYyZDUz
NC4uYWJkYTBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
dGVzdHMvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvdGVzdHMvR05VbWFrZWZpbGUuYW0KQEAgLTcsNiArNyw3IEBAIFRFU1RfUFJPR1MgKz0gXAog
CVByb2dyYW1zL1dlYktpdDJBUElUZXN0cy9UZXN0Q29va2llTWFuYWdlciBcCiAJUHJvZ3JhbXMv
V2ViS2l0MkFQSVRlc3RzL1Rlc3RET01Ob2RlIFwKIAlQcm9ncmFtcy9XZWJLaXQyQVBJVGVzdHMv
VGVzdERvd25sb2FkcyBcCisJUHJvZ3JhbXMvV2ViS2l0MkFQSVRlc3RzL1Rlc3RGcmFtZSBcCiAJ
UHJvZ3JhbXMvV2ViS2l0MkFQSVRlc3RzL1Rlc3RJbnNwZWN0b3IgXAogCVByb2dyYW1zL1dlYktp
dDJBUElUZXN0cy9UZXN0SW5zcGVjdG9yU2VydmVyIFwKIAlQcm9ncmFtcy9XZWJLaXQyQVBJVGVz
dHMvVGVzdExvYWRlckNsaWVudCBcCkBAIC0xMjYsNiArMTI3LDcgQEAgTGlicmFyaWVzX1dlYkV4
dGVuc2lvbnNfbGliV2ViRXh0ZW5zaW9uVGVzdF9sYV9DRkxBR1MgPSBcCiBub2luc3RfTFRMSUJS
QVJJRVMgKz0gTGlicmFyaWVzL1dlYkV4dGVuc2lvbnMvbGliV2ViUHJvY2Vzc1Rlc3QubGEKIExp
YnJhcmllc19XZWJFeHRlbnNpb25zX2xpYldlYlByb2Nlc3NUZXN0X2xhX1NPVVJDRVMgPSBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvRE9NTm9kZVRlc3QuY3BwIFwK
KwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9GcmFtZVRlc3QuY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJQcm9jZXNzVGVzdC5j
cHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYlByb2Nlc3NU
ZXN0LmgKIApAQCAtMzAzLDQgKzMwNSwxMCBAQCBQcm9ncmFtc19XZWJLaXQyQVBJVGVzdHNfVGVz
dERPTU5vZGVfQ1BQRkxBR1MgPSAkKHdlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCiBQcm9ncmFtc19X
ZWJLaXQyQVBJVGVzdHNfVGVzdERPTU5vZGVfTERBREQgPSAkKHdlYmtpdDJfdGVzdHNfbGRhZGQp
CiBQcm9ncmFtc19XZWJLaXQyQVBJVGVzdHNfVGVzdERPTU5vZGVfTERGTEFHUyA9ICQod2Via2l0
Ml90ZXN0c19sZGZsYWdzKQogCitQcm9ncmFtc19XZWJLaXQyQVBJVGVzdHNfVGVzdEZyYW1lX1NP
VVJDRVMgPSBcCisgICAgICAgIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3Rz
L1Rlc3RGcmFtZS5jcHAKK1Byb2dyYW1zX1dlYktpdDJBUElUZXN0c19UZXN0RnJhbWVfQ1BQRkxB
R1MgPSAkKHdlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCitQcm9ncmFtc19XZWJLaXQyQVBJVGVzdHNf
VGVzdEZyYW1lX0xEQUREID0gJCh3ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfV2ViS2l0
MkFQSVRlc3RzX1Rlc3RGcmFtZV9MREZMQUdTID0gJCh3ZWJraXQyX3Rlc3RzX2xkZmxhZ3MpCisK
IGVuZGlmICMgRU5BQkxFX1dFQktJVDIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay90ZXN0cy9UZXN0RnJhbWUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmE2M2IwNzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0RnJhbWUuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiwxIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2luY2x1ZGUgIldlYlByb2Nlc3NUZXN0UnVubmVyLmgiCisjaW5jbHVkZSAiV2ViVmlld1Rlc3Qu
aCIKKyNpbmNsdWRlIDxndGsvZ3RrLmg+CisjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQyLmg+CisK
K3N0YXRpYyBXZWJQcm9jZXNzVGVzdFJ1bm5lciogdGVzdFJ1bm5lcjsKKworc3RhdGljIHZvaWQg
d2Via2l0RnJhbWVUZXN0UnVuKFdlYlZpZXdUZXN0KiB0ZXN0LCBjb25zdCBjaGFyKiB0ZXN0TmFt
ZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgY2hhciogdGVzdEhUTUwgPSAiPGh0bWw+PGJvZHk+PC9i
b2R5PjwvaHRtbD4iOworICAgIHRlc3QtPmxvYWRIdG1sKHRlc3RIVE1MLCAwKTsKKyAgICB0ZXN0
LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKworICAgIEdWYXJpYW50QnVpbGRlciBidWlsZGVy
OworICAgIGdfdmFyaWFudF9idWlsZGVyX2luaXQoJmJ1aWxkZXIsIEdfVkFSSUFOVF9UWVBFX1ZB
UkRJQ1QpOworICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAicGFn
ZUlEIiwgZ192YXJpYW50X25ld191aW50NjQod2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKHRl
c3QtPm1fd2ViVmlldykpKTsKKyAgICBnX2Fzc2VydCh0ZXN0UnVubmVyLT5ydW5UZXN0KCJXZWJL
aXRGcmFtZSIsIHRlc3ROYW1lLCBnX3ZhcmlhbnRfYnVpbGRlcl9lbmQoJmJ1aWxkZXIpKSk7Cit9
CisKK3N0YXRpYyB2b2lkIHRlc3RXZWJLaXRGcmFtZU1haW5GcmFtZShXZWJWaWV3VGVzdCogdGVz
dCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICB3ZWJraXRGcmFtZVRlc3RSdW4odGVzdCwgIm1haW4t
ZnJhbWUiKTsKK30KKworc3RhdGljIHZvaWQgdGVzdFdlYktpdEZyYW1lVVJJKFdlYlZpZXdUZXN0
KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAgIHdlYmtpdEZyYW1lVGVzdFJ1bih0ZXN0LCAi
dXJpIik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RXZWJLaXRGcmFtZUphdmFTY3JpcHRDb250ZXh0
KFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAgIHdlYmtpdEZyYW1lVGVz
dFJ1bih0ZXN0LCAiamF2YXNjcmlwdC1jb250ZXh0Iik7Cit9CisKK3ZvaWQgYmVmb3JlQWxsKCkK
K3sKKyAgICB0ZXN0UnVubmVyID0gbmV3IFdlYlByb2Nlc3NUZXN0UnVubmVyKCk7CisgICAgd2Vi
a2l0X3dlYl9jb250ZXh0X3NldF93ZWJfZXh0ZW5zaW9uc19kaXJlY3Rvcnkod2Via2l0X3dlYl9j
b250ZXh0X2dldF9kZWZhdWx0KCksIFdFQktJVF9URVNUX1dFQl9FWFRFTlNJT05TX0RJUik7CisK
KyAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRGcmFtZSIsICJtYWluLWZyYW1lIiwgdGVzdFdl
YktpdEZyYW1lTWFpbkZyYW1lKTsKKyAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRGcmFtZSIs
ICJ1cmkiLCB0ZXN0V2ViS2l0RnJhbWVVUkkpOworICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktp
dEZyYW1lIiwgImphdmFzY3JpcHQtY29udGV4dCIsIHRlc3RXZWJLaXRGcmFtZUphdmFTY3JpcHRD
b250ZXh0KTsKK30KKwordm9pZCBhZnRlckFsbCgpCit7CisgICAgZGVsZXRlIHRlc3RSdW5uZXI7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCBhN2JjNmRmLi42NTVhMjIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKQEAgLTExMiw2ICsxMTIsNyBAQCB0eXBlZGVmIHZvaWQg
KCpXS0J1bmRsZVBhZ2VEaWRMYXlvdXRDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
TGF5b3V0TWlsZQogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRmVhdHVyZXNVc2VkSW5QYWdl
Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0FycmF5UmVmIGZlYXR1cmVTdHJpbmdz
LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdp
bGxMb2FkVVJMUmVxdWVzdENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tVUkxSZXF1
ZXN0UmVmIHJlcXVlc3QsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
byk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VXaWxsTG9hZERhdGFSZXF1ZXN0Q2FsbGJh
Y2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tEYXRh
UmVmIGRhdGEsIFdLU3RyaW5nUmVmIE1JTUVUeXBlLCBXS1N0cmluZ1JlZiBlbmNvZGluZ05hbWUs
IFdLVVJMUmVmIHVucmVhY2hhYmxlVVJMLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbERlc3Ryb3lGcmFt
ZSkoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwogCiBzdHJ1Y3QgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50IHsKICAg
ICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2ZXJzaW9uOwpAQCAtMTY0LDEwICsxNjUsMTMgQEAgc3RydWN0IFdL
QnVuZGxlUGFnZUxvYWRlckNsaWVudCB7CiAgICAgLy8gVmVyc2lvbiA2CiAgICAgV0tCdW5kbGVQ
YWdlV2lsbExvYWRVUkxSZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2lsbExvYWRVUkxSZXF1ZXN0OwogICAgIFdLQnVuZGxlUGFnZVdpbGxMb2FkRGF0YVJl
cXVlc3RDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxMb2FkRGF0
YVJlcXVlc3Q7CisKKyAgICAvLyBWZXJzaW9uIDcKKyAgICBXS0J1bmRsZVBhZ2VXaWxsRGVzdHJv
eUZyYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsRGVz
dHJveUZyYW1lOwogfTsKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudCBX
S0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQ7CiAKLWVudW0geyBrV0tCdW5kbGVQYWdlTG9hZGVyQ2xp
ZW50Q3VycmVudFZlcnNpb24gPSA2IH07CitlbnVtIHsga1dLQnVuZGxlUGFnZUxvYWRlckNsaWVu
dEN1cnJlbnRWZXJzaW9uID0gNyB9OwogCiBlbnVtIHsKICAgICBXS0J1bmRsZVBhZ2VQb2xpY3lB
Y3Rpb25QYXNzVGhyb3VnaCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4YjIxZjcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJh
bWUuY3BwCkBAIC0wLDAgKzEsMTAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxp
YSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIsMSBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0RnJhbWUuaCIKKwor
I2luY2x1ZGUgIldlYktpdEZyYW1lUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFByaXZhdGUu
aCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworc3RydWN0IF9XZWJLaXRGcmFtZVByaXZh
dGUgeworICAgIFJlZlB0cjxXZWJGcmFtZT4gd2ViRnJhbWU7CisKKyAgICBDU3RyaW5nIHVyaTsK
K307CisKK1dFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRGcmFtZSwgd2Via2l0X2ZyYW1lLCBHX1RZ
UEVfT0JKRUNUKQorCitzdGF0aWMgdm9pZCB3ZWJraXRfZnJhbWVfY2xhc3NfaW5pdChXZWJLaXRG
cmFtZUNsYXNzKiBrbGFzcykKK3sKK30KKworV2ViS2l0RnJhbWUqIHdlYmtpdEZyYW1lQ3JlYXRl
KFdlYkZyYW1lKiB3ZWJGcmFtZSkKK3sKKyAgICBXZWJLaXRGcmFtZSogZnJhbWUgPSBXRUJLSVRf
RlJBTUUoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX0ZSQU1FLCBOVUxMKSk7CisgICAgZnJhbWUt
PnByaXYtPndlYkZyYW1lID0gd2ViRnJhbWU7CisgICAgcmV0dXJuIGZyYW1lOworfQorCisvKioK
KyAqIHdlYmtpdF9mcmFtZV9pc19tYWluX2ZyYW1lOgorICogQGZyYW1lOiBhICNXZWJLaXRGcmFt
ZQorICoKKyAqIEdldHMgd2hldGhlciBAZnJhbWUgaXMgdGhlIGEgbWFpbiBmcmFtZSBvZiBhICNX
ZWJLaXRXZWJQYWdlCisgKgorICogUmV0dXJuczogJVRSVUUgaWYgQGZyYW1lIGlzIGEgbWFpbiBm
cmFtZSBvciAlRkFMU0Ugb3RoZXJ3aXNlCisgKgorICogU2luY2U6IDIuMgorICovCitnYm9vbGVh
biB3ZWJraXRfZnJhbWVfaXNfbWFpbl9mcmFtZShXZWJLaXRGcmFtZSogZnJhbWUpCit7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0ZSQU1FKGZyYW1lKSwgRkFMU0UpOworCisg
ICAgcmV0dXJuIGZyYW1lLT5wcml2LT53ZWJGcmFtZS0+aXNNYWluRnJhbWUoKTsKK30KKworLyoq
CisgKiB3ZWJraXRfZnJhbWVfZ2V0X3VyaToKKyAqIEBmcmFtZTogYSAjV2ViS2l0RnJhbWUKKyAq
CisgKiBHZXRzIHRoZSBjdXJyZW50IGFjdGl2ZSBVUkkgb2YgQGZyYW1lLgorICoKKyAqIFJldHVy
bnM6IHRoZSBjdXJyZW50IGFjdGl2ZSBVUkkgb2YgQGZyYW1lIG9yICVOVUxMIGlmIG5vdGhpbmcg
aGFzIGJlZW4KKyAqICAgIGxvYWRlZCB5ZXQuCisgKgorICogU2luY2U6IDIuMgorICovCitjb25z
dCBnY2hhciogd2Via2l0X2ZyYW1lX2dldF91cmkoV2ViS2l0RnJhbWUqIGZyYW1lKQoreworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19GUkFNRShmcmFtZSksIDApOworCisgICAg
aWYgKGZyYW1lLT5wcml2LT51cmkuaXNOdWxsKCkpCisgICAgICAgIGZyYW1lLT5wcml2LT51cmkg
PSBmcmFtZS0+cHJpdi0+d2ViRnJhbWUtPnVybCgpLnV0ZjgoKTsKKworICAgIHJldHVybiBmcmFt
ZS0+cHJpdi0+dXJpLmRhdGEoKTsKK30KKworLyoqCisgKiB3ZWJraXRfZnJhbWVfZ2V0X2phdmFz
Y3JpcHRfZ2xvYmFsX2NvbnRleHQ6CisgKiBAZnJhbWU6IGEgI1dlYktpdEZyYW1lCisgKgorICog
R2V0cyB0aGUgZ2xvYmFsIEphdmFTY3JpcHQgZXhlY3V0aW9uIGNvbnRleHQuIFVzZSB0aGlzIGZ1
bmN0aW9uIHRvIGJyaWRnZQorICogYmV0d2VlbiB0aGUgV2ViS2l0IGFuZCBKYXZhU2NyaXB0Q29y
ZSBBUElzLgorICoKKyAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogdGhlIGdsb2JhbCBKYXZh
U2NyaXB0IGNvbnRleHQgb2YgQGZyYW1lCisgKgorICogU2luY2U6IDIuMgorICovCitKU0dsb2Jh
bENvbnRleHRSZWYgd2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2dsb2JhbF9jb250ZXh0KFdl
YktpdEZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNf
RlJBTUUoZnJhbWUpLCAwKTsKKworICAgIHJldHVybiBmcmFtZS0+cHJpdi0+d2ViRnJhbWUtPmpz
Q29udGV4dCgpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lMzQ1YzVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmgKQEAg
LTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLDEgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lm
ICFkZWZpbmVkKF9fV0VCS0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXykgJiYgIWRlZmluZWQo
V0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQtd2ViLWV4
dGVuc2lvbi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYg
V2ViS2l0RnJhbWVfaAorI2RlZmluZSBXZWJLaXRGcmFtZV9oCisKKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9KU0Jhc2UuaD4KKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lU
X1RZUEVfRlJBTUUgICAgICAgICAgICAod2Via2l0X2ZyYW1lX2dldF90eXBlKCkpCisjZGVmaW5l
IFdFQktJVF9GUkFNRShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNU
KChvYmopLCBXRUJLSVRfVFlQRV9GUkFNRSwgV2ViS2l0RnJhbWUpKQorI2RlZmluZSBXRUJLSVRf
SVNfRlJBTUUob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwg
V0VCS0lUX1RZUEVfRlJBTUUpKQorI2RlZmluZSBXRUJLSVRfRlJBTUVfQ0xBU1Moa2xhc3MpICAg
IChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfRlJBTUUsIFdl
YktpdEZyYW1lQ2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfRlJBTUVfQ0xBU1Moa2xhc3MpIChH
X1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfRlJBTUUpKQorI2Rl
ZmluZSBXRUJLSVRfRlJBTUVfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NM
QVNTKChvYmopLCAgV0VCS0lUX1RZUEVfRlJBTUUsIFdlYktpdEZyYW1lQ2xhc3MpKQorCit0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0RnJhbWUgICAgICAgIFdlYktpdEZyYW1lOwordHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdEZyYW1lQ2xhc3MgICBXZWJLaXRGcmFtZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdEZyYW1lUHJpdmF0ZSBXZWJLaXRGcmFtZVByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0
RnJhbWUgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgV2ViS2l0RnJhbWVQcml2YXRlICpw
cml2OworfTsKKworc3RydWN0IF9XZWJLaXRGcmFtZUNsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3Mg
cGFyZW50X2NsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X2ZyYW1lX2dldF90
eXBlICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgor
d2Via2l0X2ZyYW1lX2lzX21haW5fZnJhbWUgICAgICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAq
ZnJhbWUpOworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF9mcmFtZV9nZXRfdXJp
ICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgKmZyYW1lKTsKKworV0VCS0lUX0FQ
SSBKU0dsb2JhbENvbnRleHRSZWYKK3dlYmtpdF9mcmFtZV9nZXRfamF2YXNjcmlwdF9nbG9iYWxf
Y29udGV4dCAoV2ViS2l0RnJhbWUgKmZyYW1lKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvV2ViS2l0RnJhbWVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWVQcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uM2M3ZmFiNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRGcmFtZVByaXZhdGUu
aApAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwu
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpZm5kZWYgV2ViS2l0RnJhbWVQcml2YXRlX2gKKyNkZWZpbmUgV2ViS2l0RnJhbWVQcml2YXRl
X2gKKworI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViS2l0RnJhbWUuaCIKKwor
V2ViS2l0RnJhbWUqIHdlYmtpdEZyYW1lQ3JlYXRlKFdlYktpdDo6V2ViRnJhbWUqKTsKKworI2Vu
ZGlmIC8vIFdlYktpdEZyYW1lUHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFn
ZS5jcHAKaW5kZXggNjNmZTJhOS4uZDlhOTYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRX
ZWJQYWdlLmNwcApAQCAtMjUsOSArMjUsOSBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlLmgi
CiAjaW5jbHVkZSAiV0tCdW5kbGVBUElDYXN0LmgiCiAjaW5jbHVkZSAiV0tCdW5kbGVGcmFtZS5o
IgotI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRl
ICJXZWJLaXRET01Eb2N1bWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRGcmFtZVByaXZh
dGUuaCIKICNpbmNsdWRlICJXZWJLaXRNYXJzaGFsLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCkBAIC02Nyw2ICs2Nywy
NiBAQCBzdGF0aWMgZ3VpbnQgc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CiAKIFdFQktJ
VF9ERUZJTkVfVFlQRShXZWJLaXRXZWJQYWdlLCB3ZWJraXRfd2ViX3BhZ2UsIEdfVFlQRV9PQkpF
Q1QpCiAKK3R5cGVkZWYgSGFzaE1hcDxXZWJGcmFtZSosIEdSZWZQdHI8V2ViS2l0RnJhbWU+PiBX
ZWJGcmFtZU1hcDsKKworc3RhdGljIFdlYkZyYW1lTWFwJiB3ZWJGcmFtZU1hcCgpCit7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChXZWJGcmFtZU1hcCwgbWFwLCAoKSk7CisgICAgcmV0dXJuIG1h
cDsKK30KKworc3RhdGljIFdlYktpdEZyYW1lKiB3ZWJraXRGcmFtZUdldE9yQ3JlYXRlKFdlYkZy
YW1lKiB3ZWJGcmFtZSkKK3sKKyAgICBHUmVmUHRyPFdlYktpdEZyYW1lPiBmcmFtZSA9IHdlYkZy
YW1lTWFwKCkuZ2V0KHdlYkZyYW1lKTsKKyAgICBpZiAoZnJhbWUpCisgICAgICAgIHJldHVybiBm
cmFtZS5nZXQoKTsKKworICAgIGZyYW1lID0gYWRvcHRHUmVmKHdlYmtpdEZyYW1lQ3JlYXRlKHdl
YkZyYW1lKSk7CisgICAgd2ViRnJhbWVNYXAoKS5zZXQod2ViRnJhbWUsIGZyYW1lKTsKKworICAg
IHJldHVybiBmcmFtZS5nZXQoKTsKK30KKwogc3RhdGljIENTdHJpbmcgZ2V0UHJvdmlzaW9uYWxV
UkxGb3JGcmFtZShXZWJGcmFtZSogd2ViRnJhbWUpCiB7CiAgICAgRG9jdW1lbnRMb2FkZXIqIGRv
Y3VtZW50TG9hZGVyID0gd2ViRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS0+cHJvdmlzaW9u
YWxEb2N1bWVudExvYWRlcigpOwpAQCAtMTE3LDYgKzEzNywxMSBAQCBzdGF0aWMgdm9pZCBkaWRG
aW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVS
ZWYgZnJhbQogICAgIGdfc2lnbmFsX2VtaXQoV0VCS0lUX1dFQl9QQUdFKGNsaWVudEluZm8pLCBz
aWduYWxzW0RPQ1VNRU5UX0xPQURFRF0sIDApOwogfQogCitzdGF0aWMgdm9pZCB3aWxsRGVzdHJv
eUZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbykKK3sKKyAgICB3ZWJGcmFtZU1hcCgpLnJlbW92ZSh0b0ltcGwoZnJhbWUp
KTsKK30KKwogc3RhdGljIHZvaWQgZGlkSW5pdGlhdGVMb2FkRm9yUmVzb3VyY2UoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIHVpbnQ2NF90IGlkZW50aWZpZXIs
IFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBib29sIHBhZ2VMb2FkSXNQcm92aXNpb25hbCwgY29u
c3Qgdm9pZCopCiB7CiAgICAgSW1tdXRhYmxlRGljdGlvbmFyeTo6TWFwVHlwZSBtZXNzYWdlOwpA
QCAtMjc3LDcgKzMwMiw3IEBAIFdlYktpdFdlYlBhZ2UqIHdlYmtpdFdlYlBhZ2VDcmVhdGUoV2Vi
UGFnZSogd2ViUGFnZSkKICAgICBwYWdlLT5wcml2LT53ZWJQYWdlID0gd2ViUGFnZTsKIAogICAg
IFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudCBsb2FkZXJDbGllbnQgPSB7Ci0gICAgICAgIGtXS0J1
bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnRDdXJyZW50VmVyc2lvbiwKKyAgICAgICAga1dLQnVu
ZGxlUGFnZUxvYWRlckNsaWVudEN1cnJlbnRWZXJzaW9uLAogICAgICAgICBwYWdlLAogICAgICAg
ICBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lLAogICAgICAgICBkaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSwKQEAgLTMxMSw4ICszMzYsOSBA
QCBXZWJLaXRXZWJQYWdlKiB3ZWJraXRXZWJQYWdlQ3JlYXRlKFdlYlBhZ2UqIHdlYlBhZ2UpCiAg
ICAgICAgIDAsIC8vIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lX3VuYXZhaWxhYmxlCiAg
ICAgICAgIDAsIC8vIGRpZExheW91dAogICAgICAgICAwLCAvLyBmZWF0dXJlc1VzZWRJblBhZ2UK
LSAgICAgICAgMCwgLy8gd2lsbExvYWRVUkxSZXF1ZXN0OwotICAgICAgICAwLCAvLyB3aWxsTG9h
ZERhdGFSZXF1ZXN0OworICAgICAgICAwLCAvLyB3aWxsTG9hZFVSTFJlcXVlc3QKKyAgICAgICAg
MCwgLy8gd2lsbExvYWREYXRhUmVxdWVzdAorICAgICAgICB3aWxsRGVzdHJveUZyYW1lCiAgICAg
fTsKICAgICBXS0J1bmRsZVBhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KHRvQVBJKHdlYlBhZ2UpLCAm
bG9hZGVyQ2xpZW50KTsKIApAQCAtNDIwLDMgKzQ0NiwxMCBAQCBjb25zdCBnY2hhciogd2Via2l0
X3dlYl9wYWdlX2dldF91cmkoV2ViS2l0V2ViUGFnZSogd2ViUGFnZSkKIAogICAgIHJldHVybiB3
ZWJQYWdlLT5wcml2LT51cmkuZGF0YSgpOwogfQorCitXZWJLaXRGcmFtZSogd2Via2l0X3dlYl9w
YWdlX2dldF9tYWluX2ZyYW1lKFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UpCit7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9QQUdFKHdlYlBhZ2UpLCAwKTsKKworICAgIHJl
dHVybiB3ZWJraXRGcmFtZUdldE9yQ3JlYXRlKHdlYlBhZ2UtPnByaXYtPndlYlBhZ2UtPm1haW5X
ZWJGcmFtZSgpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5oCmluZGV4IGZmNmUw
MGQuLjM3NDU1MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuaApAQCAtMjYsNiAr
MjYsNyBAQAogCiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dl
YktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZyYW1lLmg+CiAjaW5jbHVk
ZSA8d2Via2l0ZG9tL3dlYmtpdGRvbS5oPgogCiBHX0JFR0lOX0RFQ0xTCkBAIC02MSw3ICs2Miwx
MCBAQCBXRUJLSVRfQVBJIGd1aW50NjQKIHdlYmtpdF93ZWJfcGFnZV9nZXRfaWQgICAgICAgICAg
IChXZWJLaXRXZWJQYWdlICp3ZWJfcGFnZSk7CiAKIFdFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgot
d2Via2l0X3dlYl9wYWdlX2dldF91cmkgKFdlYktpdFdlYlBhZ2UgKndlYl9wYWdlKTsKK3dlYmtp
dF93ZWJfcGFnZV9nZXRfdXJpICAgICAgICAgIChXZWJLaXRXZWJQYWdlICp3ZWJfcGFnZSk7CisK
K1dFQktJVF9BUEkgV2ViS2l0RnJhbWUgKgord2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2ZyYW1l
ICAgKFdlYktpdFdlYlBhZ2UgKndlYl9wYWdlKTsKIAogR19FTkRfREVDTFMKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dlYmtp
dC13ZWItZXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvd2Via2l0LXdlYi1leHRlbnNpb24uaAppbmRleCBmZmJiNTU3Li4xZGU5NzVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvd2Via2l0LXdlYi1leHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvd2Via2l0LXdlYi1leHRlbnNpb24uaApAQCAtMjIs
NiArMjIsNyBAQAogCiAjZGVmaW5lIF9fV0VCS0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXwog
CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGcmFtZS5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2Vi
S2l0VVJJUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJUmVzcG9uc2UuaD4K
ICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYkV4dGVuc2lvbi5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VM
b2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCmluZGV4IDk1ZjZjMDAuLjFmODBi
MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5j
cHAKQEAgLTM1Miw0ICszNTIsMTIgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGll
bnQ6OmZlYXR1cmVzVXNlZEluUGFnZShXZWJQYWdlKiBwYWdlLCBjb25zdCBWZWMKICAgICByZXR1
cm4gbV9jbGllbnQuZmVhdHVyZXNVc2VkSW5QYWdlKHRvQVBJKHBhZ2UpLCB0b0FQSShmZWF0dXJl
U3RyaW5nT2JqZWN0c0FycmF5LmdldCgpKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CiB9CiAKK3Zv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Ojp3aWxsRGVzdHJveUZyYW1lKFdlYlBh
Z2UqIHBhZ2UsIFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LndpbGxEZXN0
cm95RnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LndpbGxEZXN0cm95RnJh
bWUodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
TG9hZGVyQ2xpZW50LmgKaW5kZXggYzg5ZGI1OS4uNjgyYWFlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2Fk
ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCkBAIC05MCw2ICs5MCw4IEBAIHB1Ymxp
YzoKICAgICBib29sIHNob3VsZEZvcmNlVW5pdmVyc2FsQWNjZXNzRnJvbUxvY2FsVVJMKFdlYlBh
Z2UqLCBjb25zdCBTdHJpbmcmIHVybCk7CiAKICAgICB2b2lkIGZlYXR1cmVzVXNlZEluUGFnZShX
ZWJQYWdlKiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKworICAgIHZvaWQgd2lsbERlc3Ryb3lG
cmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA4NDRhMDEwLi4xYWIzZWUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtOTUsNiArOTUsOSBAQCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6fldlYkZyYW1lTG9hZGVyQ2xpZW50KCkKICAgICAKIHZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lTG9hZGVyRGVzdHJveWVkKCkKIHsKKyAgICBpZiAoV2Vi
UGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgd2ViUGFnZS0+aW5qZWN0
ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS53aWxsRGVzdHJveUZyYW1lKHdlYlBhZ2UsIG1fZnJhbWUp
OworCiAgICAgbV9mcmFtZS0+aW52YWxpZGF0ZSgpOwogCiAgICAgLy8gQmFsYW5jZXMgZXhwbGlj
aXQgcmVmKCkgaW4gV2ViRnJhbWU6OmNyZWF0ZU1haW5GcmFtZSBhbmQgV2ViRnJhbWU6OmNyZWF0
ZVN1YmZyYW1lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdEJ1
aWx0aW5CdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXRCdWls
dGluQnVuZGxlUGFnZS5jcHAKaW5kZXggYjMyZmVkZi4uZjc2YzAzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5kbGVQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBhZ2UuY3BwCkBAIC04
Miw2ICs4Miw3IEBAIFF0QnVpbHRpbkJ1bmRsZVBhZ2U6OlF0QnVpbHRpbkJ1bmRsZVBhZ2UoUXRC
dWlsdGluQnVuZGxlKiBidW5kbGUsIFdLQnVuZGxlUGFnZVJlCiAgICAgICAgIDAsIC8vIGZlYXR1
cmVzVXNlZEluUGFnZQogICAgICAgICAwLCAvLyB3aWxsTG9hZFVSTFJlcXVlc3QKICAgICAgICAg
MCwgLy8gd2lsbExvYWREYXRhUmVxdWVzdAorICAgICAgICAwLCAvLyB3aWxsRGVzdHJveUZyYW1l
CiAgICAgfTsKICAgICBXS0J1bmRsZVBhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KG1fcGFnZSwgJmxv
YWRlckNsaWVudCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggNzNmNGI3ZC4uMGU2ODQwYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTA4LTEzICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBF
eHBvc2UgV2ViS2l0RnJhbWUgaW4gV2ViS2l0MkdUSysgd2ViIGV4dGVuc2lvbnMgQVBJCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk3NDMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdU
Ujo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UpOiBBZGQKKyAgICAgICAg
d2lsbERlc3Ryb3lGcmFtZS4KKwogMjAxMy0wOC0xMiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBw
bGUuY29tPgogCiAgICAgICAgIGV4dHJhY3QtbG9jYWxpemFibGUtc3RyaW5ncyBvdXRwdXQgaXMg
bm90IHN1aXRlZCBmb3IgcGFyc2luZyBieSBYY29kZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCmlu
ZGV4IDQxYjg4ZTcuLjMwZjZlODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTMwOSw2
ICszMDksNyBAQCBJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZShXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSkKICAgICAgICAgMCwgLy8gZmVhdHVyZXNVc2VkSW5QYWdlCiAgICAgICAg
IDAsIC8vIHdpbGxMb2FkVVJMUmVxdWVzdAogICAgICAgICAwLCAvLyB3aWxsTG9hZERhdGFSZXF1
ZXN0CisgICAgICAgIDAsIC8vIHdpbGxEZXN0cm95RnJhbWUKICAgICB9OwogICAgIFdLQnVuZGxl
UGFnZVNldFBhZ2VMb2FkZXJDbGllbnQobV9wYWdlLCAmbG9hZGVyQ2xpZW50KTsKIAo=
</data>
<flag name="review"
          id="230564"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>