<?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>136923</bug_id>
          
          <creation_ts>2014-09-18 08:09:37 -0700</creation_ts>
          <short_desc>[GTK] Dot not allow to create delete-on-destroy GMainLoopSources</short_desc>
          <delta_ts>2014-09-18 23:51:40 -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>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1035920</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-09-18 08:09:37 -0700</bug_when>
    <thetext>We have several asserts to ensure that delete-on-destroy sources are not misused, like not scheduling socket sources on a delete on destroy GMainLoopSource or not allowing to cancel them before they have been dispatched. It would be better if we can ensure all those things at compile time, so instead of having  static method to create a delete-on-destroy source with all the API available, we could add static methods to schedule sources creating a delete-on-destroy GMainLoopSource that is not returned to the user.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035922</commentid>
    <comment_count>1</comment_count>
      <attachid>238309</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-09-18 08:17:06 -0700</bug_when>
    <thetext>Created attachment 238309
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035925</commentid>
    <comment_count>2</comment_count>
      <attachid>238310</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-09-18 08:51:32 -0700</bug_when>
    <thetext>Created attachment 238310
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035974</commentid>
    <comment_count>3</comment_count>
      <attachid>238310</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2014-09-18 13:08:47 -0700</bug_when>
    <thetext>Comment on attachment 238310
Patch

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

&gt; Source/WTF/wtf/gobject/GMainLoopSource.cpp:36
&gt; -GMainLoopSource&amp; GMainLoopSource::createAndDeleteOnDestroy()
&gt; +GMainLoopSource&amp; GMainLoopSource::create()

I think this name should be kept, otherwise it may lead people to believe that this is the default or only way of creating, like on other objects, it gets confusing.

&gt; Source/WTF/wtf/gobject/GMainLoopSource.cpp:-85
&gt; -    // Delete-on-destroy GMainLoopSource objects can only be cancelled when there&apos;s callback either scheduled
&gt; -    // or in the middle of dispatch. At that point cancellation will have no effect.
&gt; -    ASSERT(m_deleteOnDestroy != DeleteOnDestroy || (m_status == Ready &amp;&amp; !m_context.source));

Heh, this was a bit weird.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036068</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-09-18 23:34:04 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 238310 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=238310&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/gobject/GMainLoopSource.cpp:36
&gt; &gt; -GMainLoopSource&amp; GMainLoopSource::createAndDeleteOnDestroy()
&gt; &gt; +GMainLoopSource&amp; GMainLoopSource::create()
&gt; 
&gt; I think this name should be kept, otherwise it may lead people to believe that this is the default or only way of creating, like on other objects, it gets confusing.

But I made it private for that reason, so it can only be created inside the object.

&gt; &gt; Source/WTF/wtf/gobject/GMainLoopSource.cpp:-85
&gt; &gt; -    // Delete-on-destroy GMainLoopSource objects can only be cancelled when there&apos;s callback either scheduled
&gt; &gt; -    // or in the middle of dispatch. At that point cancellation will have no effect.
&gt; &gt; -    ASSERT(m_deleteOnDestroy != DeleteOnDestroy || (m_status == Ready &amp;&amp; !m_context.source));
&gt; 
&gt; Heh, this was a bit weird.

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036069</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-09-18 23:51:40 -0700</bug_when>
    <thetext>Committed r173749: &lt;http://trac.webkit.org/changeset/173749&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238309</attachid>
            <date>2014-09-18 08:17:06 -0700</date>
            <delta_ts>2014-09-18 08:51:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wtf-gmainloopsource-schedule-and-delete-on-destroy.diff</filename>
            <type>text/plain</type>
            <size>16790</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNjJjYzVkYy4uNzU3Y2JhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxNC0wOS0xOCAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dU
S10gRG90IG5vdCBhbGxvdyB0byBjcmVhdGUgZGVsZXRlLW9uLWRlc3Ryb3kgR01haW5Mb29wU291
cmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2
OTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ug
aGF2ZSBzZXZlcmFsIGFzc2VydHMgdG8gZW5zdXJlIHRoYXQgZGVsZXRlLW9uLWRlc3Ryb3kgc291
cmNlcworICAgICAgICBhcmUgbm90IG1pc3VzZWQsIGxpa2Ugbm90IHNjaGVkdWxpbmcgc29ja2V0
IHNvdXJjZXMgb24gYQorICAgICAgICBkZWxldGUtb24tZGVzdHJveSBHTWFpbkxvb3BTb3VyY2Ug
b3Igbm90IGFsbG93aW5nIHRvIGNhbmNlbCB0aGVtCisgICAgICAgIGJlZm9yZSB0aGV5IGhhdmUg
YmVlbiBkaXNwYXRjaGVkLiBJdCdzIGJldHRlciB0byBlbnN1cmUgYWxsIHRob3NlCisgICAgICAg
IHRoaW5ncyBhdCBjb21waWxlIHRpbWUsIHVzaW5nIHN0YXRpYyBtZXRob2RzIHRvIHNjaGVkdWxl
IHNvdXJjZXMKKyAgICAgICAgY3JlYXRpbmcgYSBkZWxldGUtb24tZGVzdHJveSBHTWFpbkxvb3BT
b3VyY2UgdGhhdCBpcyBub3QgcmV0dXJuZWQKKyAgICAgICAgdG8gdGhlIHVzZXIuCisKKyAgICAg
ICAgKiB3dGYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuY3BwOgorICAgICAgICAoV1RGOjpHTWFp
bkxvb3BTb3VyY2U6OmNyZWF0ZSk6IFByaXZhdGUgc3RhdGljIG1ldGhvZCB0byBjcmVhdGUgYQor
ICAgICAgICBkZWxldGUtb24tZGVzdHJveSBHTWFpbkxvb3BTb3VyY2UuCisgICAgICAgIChXVEY6
OkdNYWluTG9vcFNvdXJjZTo6Y2FuY2VsV2l0aG91dExvY2tpbmcpOiBSZXR1cm4gZWFybHkgaW4g
Y2FzZQorICAgICAgICBvZiBkZWxldGUtb24tZGVzdHJveSBzb3VyY2UsIHNpbmNlIHRoZXkgY2Fu
J3QgYmUgY2FuY2VsbGVkLgorICAgICAgICAoV1RGOjpHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxl
KTogUmVtb3ZlIGFzc2VydGlvbiB0byBlbnN1cmUKKyAgICAgICAgc29ja2V0IHNvdXJjZXMgYXJl
IG5vdCBzY2hlZHVsZWQgb24gYSBkZWxldGUtb24tZGVzdHJveSBHTWFpbkxvb3BTb3VyY2UuCisg
ICAgICAgIChXVEY6OkdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBbmREZWxldGVPbkRlc3Ryb3kp
OgorICAgICAgICAoV1RGOjpHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheUFuZERl
bGV0ZU9uRGVzdHJveSk6CisgICAgICAgIChXVEY6OkdNYWluTG9vcFNvdXJjZTo6Y3JlYXRlQW5k
RGVsZXRlT25EZXN0cm95KTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvZ29iamVjdC9HTWFpbkxv
b3BTb3VyY2UuaDoKKyAgICAgICAgKiB3dGYvZ3RrL01haW5UaHJlYWRHdGsuY3BwOgorICAgICAg
ICAoV1RGOjpzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKTogVXNlIEdNYWlu
TG9vcFNvdXJjZTo6c2NoZWR1bGVBbmREZWxldGVPbkRlc3Ryb3koKQorICAgICAgICAqIHd0Zi9n
dGsvUnVuTG9vcEd0ay5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6Ondha2VVcCk6IERpdHRv
LgorCiAyMDE0LTA5LTE4ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBHTWFpbkxvb3BTb3VyY2UgaXMgZXhwb3NlZCB0byByYWNlIGNvbmRpdGlvbnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR01haW5Mb29wU291cmNlLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL2dvYmplY3QvR01haW5Mb29wU291cmNlLmNwcAppbmRleCBlMWQyNGUwLi5i
Y2M5NTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuY3BwCkBA
IC0zMyw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1HTWFpbkxvb3BTb3VyY2UmIEdN
YWluTG9vcFNvdXJjZTo6Y3JlYXRlQW5kRGVsZXRlT25EZXN0cm95KCkKK0dNYWluTG9vcFNvdXJj
ZSYgR01haW5Mb29wU291cmNlOjpjcmVhdGUoKQogewogICAgIHJldHVybiAqbmV3IEdNYWluTG9v
cFNvdXJjZShEZWxldGVPbkRlc3Ryb3kpOwogfQpAQCAtNzYsMTMgKzc2LDE0IEBAIHZvaWQgR01h
aW5Mb29wU291cmNlOjpjYW5jZWwoKQogCiB2b2lkIEdNYWluTG9vcFNvdXJjZTo6Y2FuY2VsV2l0
aG91dExvY2tpbmcoKQogeworICAgIC8vIERlbGV0ZS1vbi1kZXN0cm95IEdNYWluTG9vcFNvdXJj
ZSBvYmplY3RzIGNhbid0IGJlIGNhbmNlbGxlZC4KKyAgICBpZiAobV9kZWxldGVPbkRlc3Ryb3kg
PT0gRG9Ob3REZWxldGVPbkRlc3Ryb3kpCisgICAgICAgIGNhbmNlbCgpOworCiAgICAgLy8gQSB2
YWxpZCBjb250ZXh0IHNob3VsZCBvbmx5IGJlIHByZXNlbnQgaWYgR01haW5Mb29wU291cmNlIGlz
IGluIHRoZSBTY2hlZHVsZWQgb3IgRGlzcGF0Y2hpbmcgc3RhdGUuCiAgICAgQVNTRVJUKCFtX2Nv
bnRleHQuc291cmNlIHx8IG1fc3RhdHVzID09IFNjaGVkdWxlZCB8fCBtX3N0YXR1cyA9PSBEaXNw
YXRjaGluZyk7CiAgICAgLy8gVGhlIGdlbmVyYWwgY2FuY2VsbGFibGUgb2JqZWN0IHNob3VsZCBv
bmx5IGJlIHByZXNlbnQgaWYgd2UncmUgY3VycmVudGx5IGRpc3BhdGNoaW5nIHRoaXMgR01haW5M
b29wU291cmNlLgogICAgIEFTU0VSVCghbV9jYW5jZWxsYWJsZSB8fCBtX3N0YXR1cyA9PSBEaXNw
YXRjaGluZyk7Ci0gICAgLy8gRGVsZXRlLW9uLWRlc3Ryb3kgR01haW5Mb29wU291cmNlIG9iamVj
dHMgY2FuIG9ubHkgYmUgY2FuY2VsbGVkIHdoZW4gdGhlcmUncyBjYWxsYmFjayBlaXRoZXIgc2No
ZWR1bGVkCi0gICAgLy8gb3IgaW4gdGhlIG1pZGRsZSBvZiBkaXNwYXRjaC4gQXQgdGhhdCBwb2lu
dCBjYW5jZWxsYXRpb24gd2lsbCBoYXZlIG5vIGVmZmVjdC4KLSAgICBBU1NFUlQobV9kZWxldGVP
bkRlc3Ryb3kgIT0gRGVsZXRlT25EZXN0cm95IHx8IChtX3N0YXR1cyA9PSBSZWFkeSAmJiAhbV9j
b250ZXh0LnNvdXJjZSkpOwogCiAgICAgbV9zdGF0dXMgPSBSZWFkeTsKIApAQCAtMTUzLDkgKzE1
NCw2IEBAIHZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZShjb25zdCBjaGFyKiBuYW1lLCBz
dGQ6OmZ1bmN0aW9uPGJvb2wgKEdJT0NvbmRpdGlvCiAgICAgR011dGV4TG9ja2VyIGxvY2tlciht
X211dGV4KTsKICAgICBjYW5jZWxXaXRob3V0TG9ja2luZygpOwogCi0gICAgLy8gRG9uJ3QgYWxs
b3cgc2NoZWR1bGluZyBHSU9Db25kaXRpb24gY2FsbGJhY2tzIG9uIGRlbGV0ZS1vbi1kZXN0cm95
IEdNYWluTG9vcFNvdXJjZXMuCi0gICAgQVNTRVJUKG1fZGVsZXRlT25EZXN0cm95ID09IERvTm90
RGVsZXRlT25EZXN0cm95KTsKLQogICAgIEFTU0VSVCghbV9jb250ZXh0LnNvdXJjZSk7CiAgICAg
R0NhbmNlbGxhYmxlKiBzb2NrZXRDYW5jZWxsYWJsZSA9IGdfY2FuY2VsbGFibGVfbmV3KCk7CiAg
ICAgbV9jb250ZXh0ID0gewpAQCAtMjU5LDYgKzI1NywzNiBAQCB2b2lkIEdNYWluTG9vcFNvdXJj
ZTo6c2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9v
bCAoKQogICAgIHNjaGVkdWxlVGltZW91dFNvdXJjZShuYW1lLCByZWludGVycHJldF9jYXN0PEdT
b3VyY2VGdW5jPihib29sU291cmNlQ2FsbGJhY2spLCBwcmlvcml0eSwgY29udGV4dCk7CiB9CiAK
K3ZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFuZERlbGV0ZU9uRGVzdHJveShjb25zdCBj
aGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb24sIGludCBwcmlvcml0eSwg
c3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250
ZXh0KQoreworICAgIGNyZWF0ZSgpLnNjaGVkdWxlKG5hbWUsIGZ1bmN0aW9uLCBwcmlvcml0eSwg
ZGVzdHJveUZ1bmN0aW9uLCBjb250ZXh0KTsKK30KKwordm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNj
aGVkdWxlQW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248
Ym9vbCgpPiBmdW5jdGlvbiwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVz
dHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgY3JlYXRlKCkuc2No
ZWR1bGUobmFtZSwgZnVuY3Rpb24sIHByaW9yaXR5LCBkZXN0cm95RnVuY3Rpb24sIGNvbnRleHQp
OworfQorCit2b2lkIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRl
T25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGlv
biwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBkZWxheSwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1
bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCit7
CisgICAgY3JlYXRlKCkuc2NoZWR1bGVBZnRlckRlbGF5KG5hbWUsIGZ1bmN0aW9uLCBkZWxheSwg
cHJpb3JpdHksIGRlc3Ryb3lGdW5jdGlvbiwgY29udGV4dCk7Cit9CisKK3ZvaWQgR01haW5Mb29w
U291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXlBbmREZWxldGVPbkRlc3Ryb3koY29uc3QgY2hhciog
bmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+IGZ1bmN0aW9uLCBzdGQ6OmNocm9ubzo6bWlsbGlz
ZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95
RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBjcmVhdGUoKS5zY2hlZHVs
ZUFmdGVyRGVsYXkobmFtZSwgZnVuY3Rpb24sIGRlbGF5LCBwcmlvcml0eSwgZGVzdHJveUZ1bmN0
aW9uLCBjb250ZXh0KTsKK30KKwordm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJE
ZWxheUFuZERlbGV0ZU9uRGVzdHJveShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZv
aWQoKT4gZnVuY3Rpb24sIHN0ZDo6Y2hyb25vOjpzZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3JpdHks
IHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29u
dGV4dCkKK3sKKyAgICBjcmVhdGUoKS5zY2hlZHVsZUFmdGVyRGVsYXkobmFtZSwgZnVuY3Rpb24s
IGRlbGF5LCBwcmlvcml0eSwgZGVzdHJveUZ1bmN0aW9uLCBjb250ZXh0KTsKK30KKwordm9pZCBH
TWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheUFuZERlbGV0ZU9uRGVzdHJveShjb25z
dCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4gZnVuY3Rpb24sIHN0ZDo6Y2hyb25v
OjpzZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0
cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBjcmVhdGUoKS5zY2hl
ZHVsZUFmdGVyRGVsYXkobmFtZSwgZnVuY3Rpb24sIGRlbGF5LCBwcmlvcml0eSwgZGVzdHJveUZ1
bmN0aW9uLCBjb250ZXh0KTsKK30KKwogdm9pZCBHTWFpbkxvb3BTb3VyY2U6OnZvaWRDYWxsYmFj
aygpCiB7CiAgICAgQ29udGV4dCBjb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
Z29iamVjdC9HTWFpbkxvb3BTb3VyY2UuaCBiL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR01haW5M
b29wU291cmNlLmgKaW5kZXggZWYwNWFmYy4uNzI4YzU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nb2Jq
ZWN0L0dNYWluTG9vcFNvdXJjZS5oCkBAIC00MCw4ICs0MCw2IEBAIGNsYXNzIEdNYWluTG9vcFNv
dXJjZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR01haW5Mb29wU291cmNlKTsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgR01haW5Mb29wU291
cmNlJiBjcmVhdGVBbmREZWxldGVPbkRlc3Ryb3koKTsKLQogICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBHTWFpbkxvb3BTb3VyY2UoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgfkdNYWluTG9vcFNv
dXJjZSgpOwogCkBAIC02MCw3ICs1OCwxNiBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgc2NoZWR1bGVBZnRlckRlbGF5KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rp
b248Ym9vbCgpPiwgc3RkOjpjaHJvbm86OnNlY29uZHMsIGludCBwcmlvcml0eSA9IEdfUFJJT1JJ
VFlfREVGQVVMVCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxw
dHIsIEdNYWluQ29udGV4dCogPSBudWxscHRyKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBjYW5jZWwoKTsKIAorICAgIHN0YXRpYyB2b2lkIHNjaGVkdWxlQW5kRGVsZXRlT25EZXN0cm95
KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiwgaW50IHByaW9yaXR5ID0g
R19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9u
ID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51bGxwdHIpOworICAgIHN0YXRpYyB2b2lkIHNj
aGVkdWxlQW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248
Ym9vbCgpPiwgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51bGxw
dHIpOworICAgIHN0YXRpYyB2b2lkIHNjaGVkdWxlQWZ0ZXJEZWxheUFuZERlbGV0ZU9uRGVzdHJv
eShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4sIHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHMsIGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpmdW5j
dGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBu
dWxscHRyKTsKKyAgICBzdGF0aWMgdm9pZCBzY2hlZHVsZUFmdGVyRGVsYXlBbmREZWxldGVPbkRl
c3Ryb3koY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+LCBzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzLCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6
ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQq
ID0gbnVsbHB0cik7CisgICAgc3RhdGljIHZvaWQgc2NoZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRl
T25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiwgc3RkOjpj
aHJvbm86OnNlY29uZHMsIGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCog
PSBudWxscHRyKTsKKyAgICBzdGF0aWMgdm9pZCBzY2hlZHVsZUFmdGVyRGVsYXlBbmREZWxldGVP
bkRlc3Ryb3koY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+LCBzdGQ6OmNo
cm9ubzo6c2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1
bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9
IG51bGxwdHIpOworCiBwcml2YXRlOgorICAgIHN0YXRpYyBHTWFpbkxvb3BTb3VyY2UmIGNyZWF0
ZSgpOworCiAgICAgZW51bSBEZWxldGVPbkRlc3Ryb3lUeXBlIHsgRGVsZXRlT25EZXN0cm95LCBE
b05vdERlbGV0ZU9uRGVzdHJveSB9OwogICAgIEdNYWluTG9vcFNvdXJjZShEZWxldGVPbkRlc3Ry
b3lUeXBlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ3RrL01haW5UaHJlYWRHdGsu
Y3BwIGIvU291cmNlL1dURi93dGYvZ3RrL01haW5UaHJlYWRHdGsuY3BwCmluZGV4IDZmM2M5YWEu
LjU5ODEyOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2d0ay9NYWluVGhyZWFkR3RrLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9ndGsvTWFpblRocmVhZEd0ay5jcHAKQEAgLTQwLDcgKzQw
LDcgQEAgdm9pZCBpbml0aWFsaXplTWFpblRocmVhZFBsYXRmb3JtKCkKIAogdm9pZCBzY2hlZHVs
ZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKCkKIHsKLSAgICBHTWFpbkxvb3BTb3VyY2U6
OmNyZWF0ZUFuZERlbGV0ZU9uRGVzdHJveSgpLnNjaGVkdWxlKCJbV2ViS2l0XSBkaXNwYXRjaEZ1
bmN0aW9uc0Zyb21NYWluVGhyZWFkIiwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+KGRpc3BhdGNoRnVu
Y3Rpb25zRnJvbU1haW5UaHJlYWQpKTsKKyAgICBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQW5k
RGVsZXRlT25EZXN0cm95KCJbV2ViS2l0XSBkaXNwYXRjaEZ1bmN0aW9uc0Zyb21NYWluVGhyZWFk
Iiwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+KGRpc3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQp
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9n
dGsvUnVuTG9vcEd0ay5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9ndGsvUnVuTG9vcEd0ay5jcHAKaW5k
ZXggZTRhZjYxYy4uOGZhYTQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZ3RrL1J1bkxv
b3BHdGsuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2d0ay9SdW5Mb29wR3RrLmNwcApAQCAtMTAw
LDcgKzEwMCw3IEBAIHZvaWQgUnVuTG9vcDo6c3RvcCgpCiB2b2lkIFJ1bkxvb3A6Ondha2VVcCgp
CiB7CiAgICAgUmVmUHRyPFJ1bkxvb3A+IHJ1bkxvb3AodGhpcyk7Ci0gICAgR01haW5Mb29wU291
cmNlOjpjcmVhdGVBbmREZWxldGVPbkRlc3Ryb3koKS5zY2hlZHVsZSgiW1dlYktpdF0gUnVuTG9v
cCB3b3JrIiwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+KFtydW5Mb29wXSB7CisgICAgR01haW5Mb29w
U291cmNlOjpzY2hlZHVsZUFuZERlbGV0ZU9uRGVzdHJveSgiW1dlYktpdF0gUnVuTG9vcCB3b3Jr
Iiwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+KFtydW5Mb29wXSB7CiAgICAgICAgIHJ1bkxvb3AtPnBl
cmZvcm1Xb3JrKCk7CiAgICAgfSksIEdfUFJJT1JJVFlfREVGQVVMVCwgbnVsbHB0ciwgbV9ydW5M
b29wQ29udGV4dC5nZXQoKSk7CiAgICAgZ19tYWluX2NvbnRleHRfd2FrZXVwKG1fcnVuTG9vcENv
bnRleHQuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhkYzMwZmMuLmU0NzUxYTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwxNSBAQAogMjAxNC0wOS0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKKyAgICAgICAgW0dUS10gRG90IG5vdCBhbGxvdyB0byBjcmVhdGUg
ZGVsZXRlLW9uLWRlc3Ryb3kgR01haW5Mb29wU291cmNlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2OTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvR3RrRHJhZ0FuZERyb3BI
ZWxwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3RrRHJhZ0FuZERyb3BIZWxwZXI6OmhhbmRs
ZURyYWdMZWF2ZSk6IFVzZSBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQW5kRGVsZXRlT25EZXN0
cm95KCkuCisKKzIwMTQtMDktMTggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgorCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgbWV0aG9kcyBmcm9tIE1lZGlhUGxheWVy
Q2xpZW50CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzY4ODQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a0RyYWdB
bmREcm9wSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtEcmFnQW5k
RHJvcEhlbHBlci5jcHAKaW5kZXggMjZjNmRiZi4uYzhlYjhkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a0RyYWdBbmREcm9wSGVscGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrRHJhZ0FuZERyb3BIZWxwZXIuY3BwCkBAIC05OSw3
ICs5OSw3IEBAIHZvaWQgR3RrRHJhZ0FuZERyb3BIZWxwZXI6OmhhbmRsZURyYWdMZWF2ZShHZGtE
cmFnQ29udGV4dCogZ2RrQ29udGV4dCwgRHJhZ0V4aXRlCiAgICAgLy8gdGhlIGRyYWctZHJvcCBz
aWduYWwuIFdlIHdhbnQgdGhlIGFjdGlvbnMgZm9yIGRyYWctbGVhdmUgdG8gaGFwcGVuIGFmdGVy
CiAgICAgLy8gdGhvc2UgZm9yIGRyYWctZHJvcCwgc28gc2NoZWR1bGUgdGhlbSB0byBoYXBwZW4g
YXN5bmNocm9ub3VzbHkgaGVyZS4KICAgICBjb250ZXh0LT5leGl0ZWRDYWxsYmFjayA9IGV4aXRl
ZENhbGxiYWNrOwotICAgIEdNYWluTG9vcFNvdXJjZTo6Y3JlYXRlQW5kRGVsZXRlT25EZXN0cm95
KCkuc2NoZWR1bGUoIltXZWJLaXRdIGhhbmRsZURyYWdMZWF2ZUxhdGVyIiwgc3RkOjpmdW5jdGlv
bjx2b2lkKCk+KHN0ZDo6YmluZCgmR3RrRHJhZ0FuZERyb3BIZWxwZXI6OmhhbmRsZURyYWdMZWF2
ZUxhdGVyLCB0aGlzLCBjb250ZXh0KSkpOworICAgIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVB
bmREZWxldGVPbkRlc3Ryb3koIltXZWJLaXRdIGhhbmRsZURyYWdMZWF2ZUxhdGVyIiwgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+KHN0ZDo6YmluZCgmR3RrRHJhZ0FuZERyb3BIZWxwZXI6OmhhbmRsZURy
YWdMZWF2ZUxhdGVyLCB0aGlzLCBjb250ZXh0KSkpOwogfQogCiBzdGF0aWMgdm9pZCBxdWVyeU5l
d0Ryb3BDb250ZXh0RGF0YShEcm9wcGluZ0NvbnRleHQqIGRyb3BDb250ZXh0LCBHdGtXaWRnZXQq
IHdpZGdldCwgZ3VpbnQgdGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmNDVlYTBlLi4zZjgyYmZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIwMTQtMDktMTggIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCisgICAgICAgIFtHVEtdIERvdCBub3QgYWxsb3cgdG8g
Y3JlYXRlIGRlbGV0ZS1vbi1kZXN0cm95IEdNYWluTG9vcFNvdXJjZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjkyMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vZ3RrL1dvcmtRdWV1
ZUd0ay5jcHA6CisgICAgICAgIChXb3JrUXVldWU6OmRpc3BhdGNoKTogVXNlIEdNYWluTG9vcFNv
dXJjZTo6c2NoZWR1bGVBbmREZWxldGVPbkRlc3Ryb3koKS4KKyAgICAgICAgKFdvcmtRdWV1ZTo6
ZGlzcGF0Y2hBZnRlcik6IFVzZSBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheUFu
ZERlbGV0ZU9uRGVzdHJveSgpLgorCisyMDE0LTA5LTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBSYWNlIGNvbmRpdGlvbiB3aXRoIFdlYktp
dFdlYlZpZXc6aXMtbG9hZGluZyBhZnRlciBzdGFydGluZyBwYWdlIGxvYWQKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjY5MgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvV29ya1F1ZXVlR3RrLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVHdGsuY3BwCmluZGV4IGI5NjI1ZWEuLmJkODUy
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVHdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVHdGsuY3BwCkBA
IC0xMDgsMTMgKzEwOCwxMyBAQCB2b2lkIFdvcmtRdWV1ZTo6dW5yZWdpc3RlclNvY2tldEV2ZW50
SGFuZGxlcihpbnQpCiB2b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2goc3RkOjpmdW5jdGlvbjx2b2lk
ICgpPiBmdW5jdGlvbikKIHsKICAgICByZWYoKTsKLSAgICBHTWFpbkxvb3BTb3VyY2U6OmNyZWF0
ZUFuZERlbGV0ZU9uRGVzdHJveSgpLnNjaGVkdWxlKCJbV2ViS2l0XSBXb3JrUXVldWU6OmRpc3Bh
dGNoIiwgV1RGOjptb3ZlKGZ1bmN0aW9uKSwgR19QUklPUklUWV9ERUZBVUxULAorICAgIEdNYWlu
TG9vcFNvdXJjZTo6c2NoZWR1bGVBbmREZWxldGVPbkRlc3Ryb3koIltXZWJLaXRdIFdvcmtRdWV1
ZTo6ZGlzcGF0Y2giLCBXVEY6Om1vdmUoZnVuY3Rpb24pLCBHX1BSSU9SSVRZX0RFRkFVTFQsCiAg
ICAgICAgIFt0aGlzXSB7IGRlcmVmKCk7IH0sIG1fZXZlbnRDb250ZXh0LmdldCgpKTsKIH0KIAog
dm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGR1
cmF0aW9uLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uKQogewogICAgIHJlZigpOwot
ICAgIEdNYWluTG9vcFNvdXJjZTo6Y3JlYXRlQW5kRGVsZXRlT25EZXN0cm95KCkuc2NoZWR1bGVB
ZnRlckRlbGF5KCJbV2ViS2l0XSBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIiLCBXVEY6Om1vdmUo
ZnVuY3Rpb24pLAorICAgIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5QW5kRGVs
ZXRlT25EZXN0cm95KCJbV2ViS2l0XSBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXIiLCBXVEY6Om1v
dmUoZnVuY3Rpb24pLAogICAgICAgICBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzPihkdXJhdGlvbiksIEdfUFJJT1JJVFlfREVGQVVMVCwgW3RoaXNd
IHsgZGVyZWYoKTsgfSwgbV9ldmVudENvbnRleHQuZ2V0KCkpOwogfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDNmMzk5ZWMuLjczNTViNWUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsNSAr
MSwxNiBAQAogMjAxNC0wOS0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CiAKKyAgICAgICAgW0dUS10gRG90IG5vdCBhbGxvdyB0byBjcmVhdGUgZGVsZXRlLW9u
LWRlc3Ryb3kgR01haW5Mb29wU291cmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM2OTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nb2JqZWN0L0dNYWlu
TG9vcFNvdXJjZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKTogVXNlIHRoZSBu
ZXcgQVBJIHRoYXQgZG9lc24ndCBhbGxvdyB0byB1c2UKKyAgICAgICAgdGhlIHNvdXJjZS4KKwor
MjAxNC0wOS0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
ICAgICAgICAgUmFjZSBjb25kaXRpb24gd2l0aCBXZWJLaXRXZWJWaWV3OmlzLWxvYWRpbmcgYWZ0
ZXIgc3RhcnRpbmcgcGFnZSBsb2FkCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzY2OTIKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuY3BwCmluZGV4IGQxYjVkZmUuLmQz
M2Q5YjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dvYmplY3Qv
R01haW5Mb29wU291cmNlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9n
b2JqZWN0L0dNYWluTG9vcFNvdXJjZS5jcHAKQEAgLTQyNCw4ICs0MjQsNyBAQCBURVNUKFdURl9H
TWFpbkxvb3BTb3VyY2UsIERlbGV0ZU9uRGVzdHJveVNvdXJjZXMpCiB7CiAgICAgLy8gVGVzdGlu
ZyB0aGUgZGVsZXRlLW9uLWRlc3Ryb3kgc291cmNlcyBpcyB2ZXJ5IGxpbWl0ZWQuIFRoZXJlJ3Mg
bm8gZ29vZCB3YXkKICAgICAvLyBvZiB0ZXN0aW5nIHRoYXQgdGhlIEdNYWluTG9vcFNvdXJjZSBv
YmplY3RzIGFyZSBkZWxldGVkIHdoZW4gdGhlaXIgR1NvdXJjZQotICAgIC8vIGlzIGRlc3Ryb3ll
ZCwgYW5kIHRoZSBzb2NrZXQgY2FsbGJhY2tzIHNob3VsZG4ndCBiZSBzY2hlZHVsZWQgb24gdGhl
c2UgdHlwZXMKLSAgICAvLyBvZiBHTWFpbkxvb3BTb3VyY2VzIChhcyB3ZSBhZ2dyZXNzaXZlbHkg
YXNzZXJ0IHRvIHByZXZlbnQgdGhhdCkuCisgICAgLy8gaXMgZGVzdHJveWVkLgogCiAgICAgc3Ry
dWN0IFRlc3RpbmdDb250ZXh0IHsKICAgICAgICAgR01haW5Mb29wU291cmNlVGVzdCB0ZXN0OwpA
QCAtNDM2LDIzICs0MzUsMTQgQEAgVEVTVChXVEZfR01haW5Mb29wU291cmNlLCBEZWxldGVPbkRl
c3Ryb3lTb3VyY2VzKQogICAgIHsKICAgICAgICAgVGVzdGluZ0NvbnRleHQgY29udGV4dDsKIAot
ICAgICAgICAvLyBXZSB0YWtlIGEgcmVmZXJlbmNlIHRvIHRoZSBHTWFpbkxvb3BTb3VyY2UganVz
dCB0byBwZXJmb3JtIGFkZGl0aW9uYWwKLSAgICAgICAgLy8gdGVzdHMgb24gaXRzIHN0YXR1cy4g
V2Ugc2hvdWxkbid0IHVzZSB0aGUgcmVmZXJlbmNlIGFmdGVyIHRoZSBtYWluIGxvb3AKLSAgICAg
ICAgLy8gZXhpc3RzIHNpbmNlIGF0IHRoYXQgcG9pbnQgdGhlIEdNYWluTG9vcFNvdXJjZSB3aWxs
IGJlIGRlc3Ryb3llZCBhbmQKLSAgICAgICAgLy8gdGhlIHJlZmVyZW5jZSBwb2ludGluZyB0byBh
biBpbnZhbGlkIHBpZWNlIG9mIG1lbW9yeS4KLSAgICAgICAgR01haW5Mb29wU291cmNlJiBzb3Vy
Y2UgPSBHTWFpbkxvb3BTb3VyY2U6OmNyZWF0ZUFuZERlbGV0ZU9uRGVzdHJveSgpOwotICAgICAg
ICBFWFBFQ1RfVFJVRSghc291cmNlLmlzQWN0aXZlKCkpOwotICAgICAgICBzb3VyY2Uuc2NoZWR1
bGUoIltUZXN0XSBEZWxldGVPbkRlc3Ryb3kiLAorICAgICAgICBHTWFpbkxvb3BTb3VyY2U6OnNj
aGVkdWxlQW5kRGVsZXRlT25EZXN0cm95KCJbVGVzdF0gRGVsZXRlT25EZXN0cm95IiwKICAgICAg
ICAgICAgIFsmXSB7Ci0gICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoc291cmNlLmlzQWN0aXZl
KCkgJiYgIXNvdXJjZS5pc1NjaGVkdWxlZCgpKTsKICAgICAgICAgICAgICAgICBjb250ZXh0LmNh
bGxiYWNrQ2FsbENvdW50Kys7CiAgICAgICAgICAgICB9LCBHX1BSSU9SSVRZX0RFRkFVTFQsCiAg
ICAgICAgICAgICBbJl0gewotICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKCFzb3VyY2UuaXNB
Y3RpdmUoKSk7CiAgICAgICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKGNvbnRleHQuZGVzdHJveUNh
bGxiYWNrQ2FsbGVkKTsKICAgICAgICAgICAgICAgICBjb250ZXh0LmRlc3Ryb3lDYWxsYmFja0Nh
bGxlZCA9IHRydWU7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgRVhQRUNUX1RSVUUoc291cmNl
LmlzU2NoZWR1bGVkKCkpOwogCiAgICAgICAgIGNvbnRleHQudGVzdC5kZWxheWVkRmluaXNoKCk7
CiAgICAgICAgIGNvbnRleHQudGVzdC5ydW5Mb29wKCk7CkBAIC00NjMsMjEgKzQ1MywxNSBAQCBU
RVNUKFdURl9HTWFpbkxvb3BTb3VyY2UsIERlbGV0ZU9uRGVzdHJveVNvdXJjZXMpCiAgICAgewog
ICAgICAgICBUZXN0aW5nQ29udGV4dCBjb250ZXh0OwogCi0gICAgICAgIC8vIEFzIGluIHRoZSBw
cmV2aW91cyBzY29wZSwgd2UgbmVlZCBhIHJlZmVyZW5jZSB0byB0aGUgR01haW5Mb29wU291cmNl
LgotICAgICAgICBHTWFpbkxvb3BTb3VyY2UmIHNvdXJjZSA9IEdNYWluTG9vcFNvdXJjZTo6Y3Jl
YXRlQW5kRGVsZXRlT25EZXN0cm95KCk7Ci0gICAgICAgIEVYUEVDVF9UUlVFKCFzb3VyY2UuaXNB
Y3RpdmUoKSk7Ci0gICAgICAgIHNvdXJjZS5zY2hlZHVsZSgiW1Rlc3RdIERlbGV0ZU9uRGVzdHJv
eSIsCisgICAgICAgIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBbmREZWxldGVPbkRlc3Ryb3ko
IltUZXN0XSBEZWxldGVPbkRlc3Ryb3kiLAogICAgICAgICAgICAgc3RkOjpmdW5jdGlvbjxib29s
ICgpPihbJl0gewotICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHNvdXJjZS5pc0FjdGl2ZSgp
ICYmICFzb3VyY2UuaXNTY2hlZHVsZWQoKSk7CiAgICAgICAgICAgICAgICAgY29udGV4dC5jYWxs
YmFja0NhbGxDb3VudCsrOwogICAgICAgICAgICAgICAgIHJldHVybiBjb250ZXh0LmNhbGxiYWNr
Q2FsbENvdW50ICE9IDM7CiAgICAgICAgICAgICB9KSwgR19QUklPUklUWV9ERUZBVUxULAogICAg
ICAgICAgICAgWyZdIHsKLSAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRSghc291cmNlLmlzQWN0
aXZlKCkpOwogICAgICAgICAgICAgICAgIEVYUEVDVF9GQUxTRShjb250ZXh0LmRlc3Ryb3lDYWxs
YmFja0NhbGxlZCk7CiAgICAgICAgICAgICAgICAgY29udGV4dC5kZXN0cm95Q2FsbGJhY2tDYWxs
ZWQgPSB0cnVlOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIEVYUEVDVF9UUlVFKHNvdXJjZS5p
c1NjaGVkdWxlZCgpKTsKIAogICAgICAgICBjb250ZXh0LnRlc3QuZGVsYXllZEZpbmlzaCgpOwog
ICAgICAgICBjb250ZXh0LnRlc3QucnVuTG9vcCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238310</attachid>
            <date>2014-09-18 08:51:32 -0700</date>
            <delta_ts>2014-09-18 13:08:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wtf-gmainloopsource-schedule-and-delete-on-destroy.diff</filename>
            <type>text/plain</type>
            <size>16783</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNjJjYzVkYy4uNzU3Y2JhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxNC0wOS0xOCAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dU
S10gRG90IG5vdCBhbGxvdyB0byBjcmVhdGUgZGVsZXRlLW9uLWRlc3Ryb3kgR01haW5Mb29wU291
cmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2
OTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ug
aGF2ZSBzZXZlcmFsIGFzc2VydHMgdG8gZW5zdXJlIHRoYXQgZGVsZXRlLW9uLWRlc3Ryb3kgc291
cmNlcworICAgICAgICBhcmUgbm90IG1pc3VzZWQsIGxpa2Ugbm90IHNjaGVkdWxpbmcgc29ja2V0
IHNvdXJjZXMgb24gYQorICAgICAgICBkZWxldGUtb24tZGVzdHJveSBHTWFpbkxvb3BTb3VyY2Ug
b3Igbm90IGFsbG93aW5nIHRvIGNhbmNlbCB0aGVtCisgICAgICAgIGJlZm9yZSB0aGV5IGhhdmUg
YmVlbiBkaXNwYXRjaGVkLiBJdCdzIGJldHRlciB0byBlbnN1cmUgYWxsIHRob3NlCisgICAgICAg
IHRoaW5ncyBhdCBjb21waWxlIHRpbWUsIHVzaW5nIHN0YXRpYyBtZXRob2RzIHRvIHNjaGVkdWxl
IHNvdXJjZXMKKyAgICAgICAgY3JlYXRpbmcgYSBkZWxldGUtb24tZGVzdHJveSBHTWFpbkxvb3BT
b3VyY2UgdGhhdCBpcyBub3QgcmV0dXJuZWQKKyAgICAgICAgdG8gdGhlIHVzZXIuCisKKyAgICAg
ICAgKiB3dGYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuY3BwOgorICAgICAgICAoV1RGOjpHTWFp
bkxvb3BTb3VyY2U6OmNyZWF0ZSk6IFByaXZhdGUgc3RhdGljIG1ldGhvZCB0byBjcmVhdGUgYQor
ICAgICAgICBkZWxldGUtb24tZGVzdHJveSBHTWFpbkxvb3BTb3VyY2UuCisgICAgICAgIChXVEY6
OkdNYWluTG9vcFNvdXJjZTo6Y2FuY2VsV2l0aG91dExvY2tpbmcpOiBSZXR1cm4gZWFybHkgaW4g
Y2FzZQorICAgICAgICBvZiBkZWxldGUtb24tZGVzdHJveSBzb3VyY2UsIHNpbmNlIHRoZXkgY2Fu
J3QgYmUgY2FuY2VsbGVkLgorICAgICAgICAoV1RGOjpHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxl
KTogUmVtb3ZlIGFzc2VydGlvbiB0byBlbnN1cmUKKyAgICAgICAgc29ja2V0IHNvdXJjZXMgYXJl
IG5vdCBzY2hlZHVsZWQgb24gYSBkZWxldGUtb24tZGVzdHJveSBHTWFpbkxvb3BTb3VyY2UuCisg
ICAgICAgIChXVEY6OkdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBbmREZWxldGVPbkRlc3Ryb3kp
OgorICAgICAgICAoV1RGOjpHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQWZ0ZXJEZWxheUFuZERl
bGV0ZU9uRGVzdHJveSk6CisgICAgICAgIChXVEY6OkdNYWluTG9vcFNvdXJjZTo6Y3JlYXRlQW5k
RGVsZXRlT25EZXN0cm95KTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvZ29iamVjdC9HTWFpbkxv
b3BTb3VyY2UuaDoKKyAgICAgICAgKiB3dGYvZ3RrL01haW5UaHJlYWRHdGsuY3BwOgorICAgICAg
ICAoV1RGOjpzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKTogVXNlIEdNYWlu
TG9vcFNvdXJjZTo6c2NoZWR1bGVBbmREZWxldGVPbkRlc3Ryb3koKQorICAgICAgICAqIHd0Zi9n
dGsvUnVuTG9vcEd0ay5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6Ondha2VVcCk6IERpdHRv
LgorCiAyMDE0LTA5LTE4ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBHTWFpbkxvb3BTb3VyY2UgaXMgZXhwb3NlZCB0byByYWNlIGNvbmRpdGlvbnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR01haW5Mb29wU291cmNlLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL2dvYmplY3QvR01haW5Mb29wU291cmNlLmNwcAppbmRleCBlMWQyNGUwLi5i
NjdmZGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuY3BwCkBA
IC0zMyw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1HTWFpbkxvb3BTb3VyY2UmIEdN
YWluTG9vcFNvdXJjZTo6Y3JlYXRlQW5kRGVsZXRlT25EZXN0cm95KCkKK0dNYWluTG9vcFNvdXJj
ZSYgR01haW5Mb29wU291cmNlOjpjcmVhdGUoKQogewogICAgIHJldHVybiAqbmV3IEdNYWluTG9v
cFNvdXJjZShEZWxldGVPbkRlc3Ryb3kpOwogfQpAQCAtNzYsMTMgKzc2LDE0IEBAIHZvaWQgR01h
aW5Mb29wU291cmNlOjpjYW5jZWwoKQogCiB2b2lkIEdNYWluTG9vcFNvdXJjZTo6Y2FuY2VsV2l0
aG91dExvY2tpbmcoKQogeworICAgIC8vIERlbGV0ZS1vbi1kZXN0cm95IEdNYWluTG9vcFNvdXJj
ZSBvYmplY3RzIGNhbid0IGJlIGNhbmNlbGxlZC4KKyAgICBpZiAobV9kZWxldGVPbkRlc3Ryb3kg
PT0gRGVsZXRlT25EZXN0cm95KQorICAgICAgICByZXR1cm47CisKICAgICAvLyBBIHZhbGlkIGNv
bnRleHQgc2hvdWxkIG9ubHkgYmUgcHJlc2VudCBpZiBHTWFpbkxvb3BTb3VyY2UgaXMgaW4gdGhl
IFNjaGVkdWxlZCBvciBEaXNwYXRjaGluZyBzdGF0ZS4KICAgICBBU1NFUlQoIW1fY29udGV4dC5z
b3VyY2UgfHwgbV9zdGF0dXMgPT0gU2NoZWR1bGVkIHx8IG1fc3RhdHVzID09IERpc3BhdGNoaW5n
KTsKICAgICAvLyBUaGUgZ2VuZXJhbCBjYW5jZWxsYWJsZSBvYmplY3Qgc2hvdWxkIG9ubHkgYmUg
cHJlc2VudCBpZiB3ZSdyZSBjdXJyZW50bHkgZGlzcGF0Y2hpbmcgdGhpcyBHTWFpbkxvb3BTb3Vy
Y2UuCiAgICAgQVNTRVJUKCFtX2NhbmNlbGxhYmxlIHx8IG1fc3RhdHVzID09IERpc3BhdGNoaW5n
KTsKLSAgICAvLyBEZWxldGUtb24tZGVzdHJveSBHTWFpbkxvb3BTb3VyY2Ugb2JqZWN0cyBjYW4g
b25seSBiZSBjYW5jZWxsZWQgd2hlbiB0aGVyZSdzIGNhbGxiYWNrIGVpdGhlciBzY2hlZHVsZWQK
LSAgICAvLyBvciBpbiB0aGUgbWlkZGxlIG9mIGRpc3BhdGNoLiBBdCB0aGF0IHBvaW50IGNhbmNl
bGxhdGlvbiB3aWxsIGhhdmUgbm8gZWZmZWN0LgotICAgIEFTU0VSVChtX2RlbGV0ZU9uRGVzdHJv
eSAhPSBEZWxldGVPbkRlc3Ryb3kgfHwgKG1fc3RhdHVzID09IFJlYWR5ICYmICFtX2NvbnRleHQu
c291cmNlKSk7CiAKICAgICBtX3N0YXR1cyA9IFJlYWR5OwogCkBAIC0xNTMsOSArMTU0LDYgQEAg
dm9pZCBHTWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVu
Y3Rpb248Ym9vbCAoR0lPQ29uZGl0aW8KICAgICBHTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OwogICAgIGNhbmNlbFdpdGhvdXRMb2NraW5nKCk7CiAKLSAgICAvLyBEb24ndCBhbGxvdyBzY2hl
ZHVsaW5nIEdJT0NvbmRpdGlvbiBjYWxsYmFja3Mgb24gZGVsZXRlLW9uLWRlc3Ryb3kgR01haW5M
b29wU291cmNlcy4KLSAgICBBU1NFUlQobV9kZWxldGVPbkRlc3Ryb3kgPT0gRG9Ob3REZWxldGVP
bkRlc3Ryb3kpOwotCiAgICAgQVNTRVJUKCFtX2NvbnRleHQuc291cmNlKTsKICAgICBHQ2FuY2Vs
bGFibGUqIHNvY2tldENhbmNlbGxhYmxlID0gZ19jYW5jZWxsYWJsZV9uZXcoKTsKICAgICBtX2Nv
bnRleHQgPSB7CkBAIC0yNTksNiArMjU3LDM2IEBAIHZvaWQgR01haW5Mb29wU291cmNlOjpzY2hl
ZHVsZUFmdGVyRGVsYXkoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sICgpCiAg
ICAgc2NoZWR1bGVUaW1lb3V0U291cmNlKG5hbWUsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1
bmM+KGJvb2xTb3VyY2VDYWxsYmFjayksIHByaW9yaXR5LCBjb250ZXh0KTsKIH0KIAordm9pZCBH
TWFpbkxvb3BTb3VyY2U6OnNjaGVkdWxlQW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5h
bWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbiwgaW50IHByaW9yaXR5LCBzdGQ6OmZ1
bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uLCBHTWFpbkNvbnRleHQqIGNvbnRleHQpCit7
CisgICAgY3JlYXRlKCkuc2NoZWR1bGUobmFtZSwgZnVuY3Rpb24sIHByaW9yaXR5LCBkZXN0cm95
RnVuY3Rpb24sIGNvbnRleHQpOworfQorCit2b2lkIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVB
bmREZWxldGVPbkRlc3Ryb3koY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+
IGZ1bmN0aW9uLCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVu
Y3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBjcmVhdGUoKS5zY2hlZHVsZShu
YW1lLCBmdW5jdGlvbiwgcHJpb3JpdHksIGRlc3Ryb3lGdW5jdGlvbiwgY29udGV4dCk7Cit9CisK
K3ZvaWQgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXlBbmREZWxldGVPbkRlc3Ry
b3koY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGZ1bmN0aW9uLCBzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlbGF5LCBpbnQgcHJpb3JpdHksIHN0ZDo6ZnVuY3Rpb248
dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24sIEdNYWluQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBj
cmVhdGUoKS5zY2hlZHVsZUFmdGVyRGVsYXkobmFtZSwgZnVuY3Rpb24sIGRlbGF5LCBwcmlvcml0
eSwgZGVzdHJveUZ1bmN0aW9uLCBjb250ZXh0KTsKK30KKwordm9pZCBHTWFpbkxvb3BTb3VyY2U6
OnNjaGVkdWxlQWZ0ZXJEZWxheUFuZERlbGV0ZU9uRGVzdHJveShjb25zdCBjaGFyKiBuYW1lLCBz
dGQ6OmZ1bmN0aW9uPGJvb2woKT4gZnVuY3Rpb24sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMg
ZGVsYXksIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlv
biwgR01haW5Db250ZXh0KiBjb250ZXh0KQoreworICAgIGNyZWF0ZSgpLnNjaGVkdWxlQWZ0ZXJE
ZWxheShuYW1lLCBmdW5jdGlvbiwgZGVsYXksIHByaW9yaXR5LCBkZXN0cm95RnVuY3Rpb24sIGNv
bnRleHQpOworfQorCit2b2lkIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5QW5k
RGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBm
dW5jdGlvbiwgc3RkOjpjaHJvbm86OnNlY29uZHMgZGVsYXksIGludCBwcmlvcml0eSwgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQor
eworICAgIGNyZWF0ZSgpLnNjaGVkdWxlQWZ0ZXJEZWxheShuYW1lLCBmdW5jdGlvbiwgZGVsYXks
IHByaW9yaXR5LCBkZXN0cm95RnVuY3Rpb24sIGNvbnRleHQpOworfQorCit2b2lkIEdNYWluTG9v
cFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRlT25EZXN0cm95KGNvbnN0IGNoYXIq
IG5hbWUsIHN0ZDo6ZnVuY3Rpb248Ym9vbCgpPiBmdW5jdGlvbiwgc3RkOjpjaHJvbm86OnNlY29u
ZHMgZGVsYXksIGludCBwcmlvcml0eSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRlc3Ryb3lGdW5j
dGlvbiwgR01haW5Db250ZXh0KiBjb250ZXh0KQoreworICAgIGNyZWF0ZSgpLnNjaGVkdWxlQWZ0
ZXJEZWxheShuYW1lLCBmdW5jdGlvbiwgZGVsYXksIHByaW9yaXR5LCBkZXN0cm95RnVuY3Rpb24s
IGNvbnRleHQpOworfQorCiB2b2lkIEdNYWluTG9vcFNvdXJjZTo6dm9pZENhbGxiYWNrKCkKIHsK
ICAgICBDb250ZXh0IGNvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nb2JqZWN0
L0dNYWluTG9vcFNvdXJjZS5oIGIvU291cmNlL1dURi93dGYvZ29iamVjdC9HTWFpbkxvb3BTb3Vy
Y2UuaAppbmRleCBlZjA1YWZjLi43MjhjNTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9n
b2JqZWN0L0dNYWluTG9vcFNvdXJjZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL2dvYmplY3QvR01h
aW5Mb29wU291cmNlLmgKQEAgLTQwLDggKzQwLDYgQEAgY2xhc3MgR01haW5Mb29wU291cmNlIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHTWFpbkxvb3BTb3VyY2UpOwogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBHTWFpbkxvb3BTb3VyY2UmIGNy
ZWF0ZUFuZERlbGV0ZU9uRGVzdHJveSgpOwotCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIEdNYWlu
TG9vcFNvdXJjZSgpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB+R01haW5Mb29wU291cmNlKCk7
CiAKQEAgLTYwLDcgKzU4LDE2IEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBzY2hlZHVsZUFmdGVyRGVsYXkoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29s
KCk+LCBzdGQ6OmNocm9ubzo6c2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZB
VUxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01h
aW5Db250ZXh0KiA9IG51bGxwdHIpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGNhbmNl
bCgpOwogCisgICAgc3RhdGljIHZvaWQgc2NoZWR1bGVBbmREZWxldGVPbkRlc3Ryb3koY29uc3Qg
Y2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+LCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9S
SVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBudWxs
cHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7CisgICAgc3RhdGljIHZvaWQgc2NoZWR1bGVB
bmREZWxldGVPbkRlc3Ryb3koY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjxib29sKCk+
LCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgp
PiBkZXN0cm95RnVuY3Rpb24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0cik7Cisg
ICAgc3RhdGljIHZvaWQgc2NoZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRlT25EZXN0cm95KGNvbnN0
IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiwgc3RkOjpjaHJvbm86Om1pbGxpc2Vj
b25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9uPHZv
aWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51bGxwdHIp
OworICAgIHN0YXRpYyB2b2lkIHNjaGVkdWxlQWZ0ZXJEZWxheUFuZERlbGV0ZU9uRGVzdHJveShj
b25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4sIHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMsIGludCBwcmlvcml0eSA9IEdfUFJJT1JJVFlfREVGQVVMVCwgc3RkOjpmdW5jdGlv
bjx2b2lkKCk+IGRlc3Ryb3lGdW5jdGlvbiA9IG51bGxwdHIsIEdNYWluQ29udGV4dCogPSBudWxs
cHRyKTsKKyAgICBzdGF0aWMgdm9pZCBzY2hlZHVsZUFmdGVyRGVsYXlBbmREZWxldGVPbkRlc3Ry
b3koY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+LCBzdGQ6OmNocm9ubzo6
c2Vjb25kcywgaW50IHByaW9yaXR5ID0gR19QUklPUklUWV9ERUZBVUxULCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gZGVzdHJveUZ1bmN0aW9uID0gbnVsbHB0ciwgR01haW5Db250ZXh0KiA9IG51bGxw
dHIpOworICAgIHN0YXRpYyB2b2lkIHNjaGVkdWxlQWZ0ZXJEZWxheUFuZERlbGV0ZU9uRGVzdHJv
eShjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPGJvb2woKT4sIHN0ZDo6Y2hyb25vOjpz
ZWNvbmRzLCBpbnQgcHJpb3JpdHkgPSBHX1BSSU9SSVRZX0RFRkFVTFQsIHN0ZDo6ZnVuY3Rpb248
dm9pZCgpPiBkZXN0cm95RnVuY3Rpb24gPSBudWxscHRyLCBHTWFpbkNvbnRleHQqID0gbnVsbHB0
cik7CisKIHByaXZhdGU6CisgICAgc3RhdGljIEdNYWluTG9vcFNvdXJjZSYgY3JlYXRlKCk7CisK
ICAgICBlbnVtIERlbGV0ZU9uRGVzdHJveVR5cGUgeyBEZWxldGVPbkRlc3Ryb3ksIERvTm90RGVs
ZXRlT25EZXN0cm95IH07CiAgICAgR01haW5Mb29wU291cmNlKERlbGV0ZU9uRGVzdHJveVR5cGUp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9ndGsvTWFpblRocmVhZEd0ay5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9ndGsvTWFpblRocmVhZEd0ay5jcHAKaW5kZXggNmYzYzlhYS4uNTk4MTI5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZ3RrL01haW5UaHJlYWRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL2d0ay9NYWluVGhyZWFkR3RrLmNwcApAQCAtNDAsNyArNDAsNyBAQCB2
b2lkIGluaXRpYWxpemVNYWluVGhyZWFkUGxhdGZvcm0oKQogCiB2b2lkIHNjaGVkdWxlRGlzcGF0
Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoKQogewotICAgIEdNYWluTG9vcFNvdXJjZTo6Y3JlYXRl
QW5kRGVsZXRlT25EZXN0cm95KCkuc2NoZWR1bGUoIltXZWJLaXRdIGRpc3BhdGNoRnVuY3Rpb25z
RnJvbU1haW5UaHJlYWQiLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4oZGlzcGF0Y2hGdW5jdGlvbnNG
cm9tTWFpblRocmVhZCkpOworICAgIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBbmREZWxldGVP
bkRlc3Ryb3koIltXZWJLaXRdIGRpc3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQiLCBzdGQ6
OmZ1bmN0aW9uPHZvaWQoKT4oZGlzcGF0Y2hGdW5jdGlvbnNGcm9tTWFpblRocmVhZCkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2d0ay9SdW5M
b29wR3RrLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2d0ay9SdW5Mb29wR3RrLmNwcAppbmRleCBlNGFm
NjFjLi44ZmFhNDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9ndGsvUnVuTG9vcEd0ay5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvZ3RrL1J1bkxvb3BHdGsuY3BwCkBAIC0xMDAsNyArMTAw
LDcgQEAgdm9pZCBSdW5Mb29wOjpzdG9wKCkKIHZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKIHsKICAg
ICBSZWZQdHI8UnVuTG9vcD4gcnVuTG9vcCh0aGlzKTsKLSAgICBHTWFpbkxvb3BTb3VyY2U6OmNy
ZWF0ZUFuZERlbGV0ZU9uRGVzdHJveSgpLnNjaGVkdWxlKCJbV2ViS2l0XSBSdW5Mb29wIHdvcmsi
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4oW3J1bkxvb3BdIHsKKyAgICBHTWFpbkxvb3BTb3VyY2U6
OnNjaGVkdWxlQW5kRGVsZXRlT25EZXN0cm95KCJbV2ViS2l0XSBSdW5Mb29wIHdvcmsiLCBzdGQ6
OmZ1bmN0aW9uPHZvaWQoKT4oW3J1bkxvb3BdIHsKICAgICAgICAgcnVuTG9vcC0+cGVyZm9ybVdv
cmsoKTsKICAgICB9KSwgR19QUklPUklUWV9ERUZBVUxULCBudWxscHRyLCBtX3J1bkxvb3BDb250
ZXh0LmdldCgpKTsKICAgICBnX21haW5fY29udGV4dF93YWtldXAobV9ydW5Mb29wQ29udGV4dC5n
ZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggOGRjMzBmYy4uZTQ3NTFhOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDE1IEBACiAyMDE0LTA5LTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KIAorICAgICAgICBbR1RLXSBEb3Qgbm90IGFsbG93IHRvIGNyZWF0ZSBkZWxldGUt
b24tZGVzdHJveSBHTWFpbkxvb3BTb3VyY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY5MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9HdGtEcmFnQW5kRHJvcEhlbHBlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHdGtEcmFnQW5kRHJvcEhlbHBlcjo6aGFuZGxlRHJhZ0xl
YXZlKTogVXNlIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBbmREZWxldGVPbkRlc3Ryb3koKS4K
KworMjAxNC0wOS0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CisKICAgICAgICAgUmVtb3ZlIHVudXNlZCBtZXRob2RzIGZyb20gTWVkaWFQbGF5ZXJDbGllbnQK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjg4NAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrRHJhZ0FuZERyb3BI
ZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a0RyYWdBbmREcm9wSGVs
cGVyLmNwcAppbmRleCAyNmM2ZGJmLi5jOGViOGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvR3RrRHJhZ0FuZERyb3BIZWxwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9HdGtEcmFnQW5kRHJvcEhlbHBlci5jcHAKQEAgLTk5LDcgKzk5LDcg
QEAgdm9pZCBHdGtEcmFnQW5kRHJvcEhlbHBlcjo6aGFuZGxlRHJhZ0xlYXZlKEdka0RyYWdDb250
ZXh0KiBnZGtDb250ZXh0LCBEcmFnRXhpdGUKICAgICAvLyB0aGUgZHJhZy1kcm9wIHNpZ25hbC4g
V2Ugd2FudCB0aGUgYWN0aW9ucyBmb3IgZHJhZy1sZWF2ZSB0byBoYXBwZW4gYWZ0ZXIKICAgICAv
LyB0aG9zZSBmb3IgZHJhZy1kcm9wLCBzbyBzY2hlZHVsZSB0aGVtIHRvIGhhcHBlbiBhc3luY2hy
b25vdXNseSBoZXJlLgogICAgIGNvbnRleHQtPmV4aXRlZENhbGxiYWNrID0gZXhpdGVkQ2FsbGJh
Y2s7Ci0gICAgR01haW5Mb29wU291cmNlOjpjcmVhdGVBbmREZWxldGVPbkRlc3Ryb3koKS5zY2hl
ZHVsZSgiW1dlYktpdF0gaGFuZGxlRHJhZ0xlYXZlTGF0ZXIiLCBzdGQ6OmZ1bmN0aW9uPHZvaWQo
KT4oc3RkOjpiaW5kKCZHdGtEcmFnQW5kRHJvcEhlbHBlcjo6aGFuZGxlRHJhZ0xlYXZlTGF0ZXIs
IHRoaXMsIGNvbnRleHQpKSk7CisgICAgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFuZERlbGV0
ZU9uRGVzdHJveSgiW1dlYktpdF0gaGFuZGxlRHJhZ0xlYXZlTGF0ZXIiLCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4oc3RkOjpiaW5kKCZHdGtEcmFnQW5kRHJvcEhlbHBlcjo6aGFuZGxlRHJhZ0xlYXZl
TGF0ZXIsIHRoaXMsIGNvbnRleHQpKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHF1ZXJ5TmV3RHJvcENv
bnRleHREYXRhKERyb3BwaW5nQ29udGV4dCogZHJvcENvbnRleHQsIEd0a1dpZGdldCogd2lkZ2V0
LCBndWludCB0aW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGY0NWVhMGUuLjNmODJiZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwxNiBAQAogMjAxNC0wOS0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKKyAgICAgICAgW0dUS10gRG90IG5vdCBhbGxvdyB0byBjcmVhdGUg
ZGVsZXRlLW9uLWRlc3Ryb3kgR01haW5Mb29wU291cmNlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2OTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9ndGsvV29ya1F1ZXVlR3RrLmNw
cDoKKyAgICAgICAgKFdvcmtRdWV1ZTo6ZGlzcGF0Y2gpOiBVc2UgR01haW5Mb29wU291cmNlOjpz
Y2hlZHVsZUFuZERlbGV0ZU9uRGVzdHJveSgpLgorICAgICAgICAoV29ya1F1ZXVlOjpkaXNwYXRj
aEFmdGVyKTogVXNlIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVBZnRlckRlbGF5QW5kRGVsZXRl
T25EZXN0cm95KCkuCisKKzIwMTQtMDktMTggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgorCiAgICAgICAgIFJhY2UgY29uZGl0aW9uIHdpdGggV2ViS2l0V2ViVmll
dzppcy1sb2FkaW5nIGFmdGVyIHN0YXJ0aW5nIHBhZ2UgbG9hZAogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NjkyCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVHdGsuY3BwIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vZ3RrL1dvcmtRdWV1ZUd0ay5jcHAKaW5kZXggYjk2MjVlYS4uYmQ4NTJkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1dvcmtRdWV1ZUd0ay5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1dvcmtRdWV1ZUd0ay5jcHAKQEAgLTEwOCwx
MyArMTA4LDEzIEBAIHZvaWQgV29ya1F1ZXVlOjp1bnJlZ2lzdGVyU29ja2V0RXZlbnRIYW5kbGVy
KGludCkKIHZvaWQgV29ya1F1ZXVlOjpkaXNwYXRjaChzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1
bmN0aW9uKQogewogICAgIHJlZigpOwotICAgIEdNYWluTG9vcFNvdXJjZTo6Y3JlYXRlQW5kRGVs
ZXRlT25EZXN0cm95KCkuc2NoZWR1bGUoIltXZWJLaXRdIFdvcmtRdWV1ZTo6ZGlzcGF0Y2giLCBX
VEY6Om1vdmUoZnVuY3Rpb24pLCBHX1BSSU9SSVRZX0RFRkFVTFQsCisgICAgR01haW5Mb29wU291
cmNlOjpzY2hlZHVsZUFuZERlbGV0ZU9uRGVzdHJveSgiW1dlYktpdF0gV29ya1F1ZXVlOjpkaXNw
YXRjaCIsIFdURjo6bW92ZShmdW5jdGlvbiksIEdfUFJJT1JJVFlfREVGQVVMVCwKICAgICAgICAg
W3RoaXNdIHsgZGVyZWYoKTsgfSwgbV9ldmVudENvbnRleHQuZ2V0KCkpOwogfQogCiB2b2lkIFdv
cmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlcihzdGQ6OmNocm9ubzo6bmFub3NlY29uZHMgZHVyYXRpb24s
IHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rpb24pCiB7CiAgICAgcmVmKCk7Ci0gICAgR01h
aW5Mb29wU291cmNlOjpjcmVhdGVBbmREZWxldGVPbkRlc3Ryb3koKS5zY2hlZHVsZUFmdGVyRGVs
YXkoIltXZWJLaXRdIFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlciIsIFdURjo6bW92ZShmdW5jdGlv
biksCisgICAgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFmdGVyRGVsYXlBbmREZWxldGVPbkRl
c3Ryb3koIltXZWJLaXRdIFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlciIsIFdURjo6bW92ZShmdW5j
dGlvbiksCiAgICAgICAgIHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHM+KGR1cmF0aW9uKSwgR19QUklPUklUWV9ERUZBVUxULCBbdGhpc10geyBkZXJl
ZigpOyB9LCBtX2V2ZW50Q29udGV4dC5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2YzOTllYy4uNzM1NWI1ZSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE2IEBA
CiAyMDE0LTA5LTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
IAorICAgICAgICBbR1RLXSBEb3Qgbm90IGFsbG93IHRvIGNyZWF0ZSBkZWxldGUtb24tZGVzdHJv
eSBHTWFpbkxvb3BTb3VyY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzY5MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dvYmplY3QvR01haW5Mb29wU291
cmNlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOiBVc2UgdGhlIG5ldyBBUEkg
dGhhdCBkb2Vzbid0IGFsbG93IHRvIHVzZQorICAgICAgICB0aGUgc291cmNlLgorCisyMDE0LTA5
LTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKwogICAgICAg
ICBSYWNlIGNvbmRpdGlvbiB3aXRoIFdlYktpdFdlYlZpZXc6aXMtbG9hZGluZyBhZnRlciBzdGFy
dGluZyBwYWdlIGxvYWQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzNjY5MgogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5jcHAKaW5kZXggZDFiNWRmZS4uZDMzZDliOSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ29iamVjdC9HTWFpbkxv
b3BTb3VyY2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dvYmplY3Qv
R01haW5Mb29wU291cmNlLmNwcApAQCAtNDI0LDggKzQyNCw3IEBAIFRFU1QoV1RGX0dNYWluTG9v
cFNvdXJjZSwgRGVsZXRlT25EZXN0cm95U291cmNlcykKIHsKICAgICAvLyBUZXN0aW5nIHRoZSBk
ZWxldGUtb24tZGVzdHJveSBzb3VyY2VzIGlzIHZlcnkgbGltaXRlZC4gVGhlcmUncyBubyBnb29k
IHdheQogICAgIC8vIG9mIHRlc3RpbmcgdGhhdCB0aGUgR01haW5Mb29wU291cmNlIG9iamVjdHMg
YXJlIGRlbGV0ZWQgd2hlbiB0aGVpciBHU291cmNlCi0gICAgLy8gaXMgZGVzdHJveWVkLCBhbmQg
dGhlIHNvY2tldCBjYWxsYmFja3Mgc2hvdWxkbid0IGJlIHNjaGVkdWxlZCBvbiB0aGVzZSB0eXBl
cwotICAgIC8vIG9mIEdNYWluTG9vcFNvdXJjZXMgKGFzIHdlIGFnZ3Jlc3NpdmVseSBhc3NlcnQg
dG8gcHJldmVudCB0aGF0KS4KKyAgICAvLyBpcyBkZXN0cm95ZWQuCiAKICAgICBzdHJ1Y3QgVGVz
dGluZ0NvbnRleHQgewogICAgICAgICBHTWFpbkxvb3BTb3VyY2VUZXN0IHRlc3Q7CkBAIC00MzYs
MjMgKzQzNSwxNCBAQCBURVNUKFdURl9HTWFpbkxvb3BTb3VyY2UsIERlbGV0ZU9uRGVzdHJveVNv
dXJjZXMpCiAgICAgewogICAgICAgICBUZXN0aW5nQ29udGV4dCBjb250ZXh0OwogCi0gICAgICAg
IC8vIFdlIHRha2UgYSByZWZlcmVuY2UgdG8gdGhlIEdNYWluTG9vcFNvdXJjZSBqdXN0IHRvIHBl
cmZvcm0gYWRkaXRpb25hbAotICAgICAgICAvLyB0ZXN0cyBvbiBpdHMgc3RhdHVzLiBXZSBzaG91
bGRuJ3QgdXNlIHRoZSByZWZlcmVuY2UgYWZ0ZXIgdGhlIG1haW4gbG9vcAotICAgICAgICAvLyBl
eGlzdHMgc2luY2UgYXQgdGhhdCBwb2ludCB0aGUgR01haW5Mb29wU291cmNlIHdpbGwgYmUgZGVz
dHJveWVkIGFuZAotICAgICAgICAvLyB0aGUgcmVmZXJlbmNlIHBvaW50aW5nIHRvIGFuIGludmFs
aWQgcGllY2Ugb2YgbWVtb3J5LgotICAgICAgICBHTWFpbkxvb3BTb3VyY2UmIHNvdXJjZSA9IEdN
YWluTG9vcFNvdXJjZTo6Y3JlYXRlQW5kRGVsZXRlT25EZXN0cm95KCk7Ci0gICAgICAgIEVYUEVD
VF9UUlVFKCFzb3VyY2UuaXNBY3RpdmUoKSk7Ci0gICAgICAgIHNvdXJjZS5zY2hlZHVsZSgiW1Rl
c3RdIERlbGV0ZU9uRGVzdHJveSIsCisgICAgICAgIEdNYWluTG9vcFNvdXJjZTo6c2NoZWR1bGVB
bmREZWxldGVPbkRlc3Ryb3koIltUZXN0XSBEZWxldGVPbkRlc3Ryb3kiLAogICAgICAgICAgICAg
WyZdIHsKLSAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzb3VyY2UuaXNBY3RpdmUoKSAmJiAh
c291cmNlLmlzU2NoZWR1bGVkKCkpOwogICAgICAgICAgICAgICAgIGNvbnRleHQuY2FsbGJhY2tD
YWxsQ291bnQrKzsKICAgICAgICAgICAgIH0sIEdfUFJJT1JJVFlfREVGQVVMVCwKICAgICAgICAg
ICAgIFsmXSB7Ci0gICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoIXNvdXJjZS5pc0FjdGl2ZSgp
KTsKICAgICAgICAgICAgICAgICBFWFBFQ1RfRkFMU0UoY29udGV4dC5kZXN0cm95Q2FsbGJhY2tD
YWxsZWQpOwogICAgICAgICAgICAgICAgIGNvbnRleHQuZGVzdHJveUNhbGxiYWNrQ2FsbGVkID0g
dHJ1ZTsKICAgICAgICAgICAgIH0pOwotICAgICAgICBFWFBFQ1RfVFJVRShzb3VyY2UuaXNTY2hl
ZHVsZWQoKSk7CiAKICAgICAgICAgY29udGV4dC50ZXN0LmRlbGF5ZWRGaW5pc2goKTsKICAgICAg
ICAgY29udGV4dC50ZXN0LnJ1bkxvb3AoKTsKQEAgLTQ2MywyMSArNDUzLDE1IEBAIFRFU1QoV1RG
X0dNYWluTG9vcFNvdXJjZSwgRGVsZXRlT25EZXN0cm95U291cmNlcykKICAgICB7CiAgICAgICAg
IFRlc3RpbmdDb250ZXh0IGNvbnRleHQ7CiAKLSAgICAgICAgLy8gQXMgaW4gdGhlIHByZXZpb3Vz
IHNjb3BlLCB3ZSBuZWVkIGEgcmVmZXJlbmNlIHRvIHRoZSBHTWFpbkxvb3BTb3VyY2UuCi0gICAg
ICAgIEdNYWluTG9vcFNvdXJjZSYgc291cmNlID0gR01haW5Mb29wU291cmNlOjpjcmVhdGVBbmRE
ZWxldGVPbkRlc3Ryb3koKTsKLSAgICAgICAgRVhQRUNUX1RSVUUoIXNvdXJjZS5pc0FjdGl2ZSgp
KTsKLSAgICAgICAgc291cmNlLnNjaGVkdWxlKCJbVGVzdF0gRGVsZXRlT25EZXN0cm95IiwKKyAg
ICAgICAgR01haW5Mb29wU291cmNlOjpzY2hlZHVsZUFuZERlbGV0ZU9uRGVzdHJveSgiW1Rlc3Rd
IERlbGV0ZU9uRGVzdHJveSIsCiAgICAgICAgICAgICBzdGQ6OmZ1bmN0aW9uPGJvb2wgKCk+KFsm
XSB7Ci0gICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoc291cmNlLmlzQWN0aXZlKCkgJiYgIXNv
dXJjZS5pc1NjaGVkdWxlZCgpKTsKICAgICAgICAgICAgICAgICBjb250ZXh0LmNhbGxiYWNrQ2Fs
bENvdW50Kys7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQuY2FsbGJhY2tDYWxsQ291
bnQgIT0gMzsKICAgICAgICAgICAgIH0pLCBHX1BSSU9SSVRZX0RFRkFVTFQsCiAgICAgICAgICAg
ICBbJl0gewotICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKCFzb3VyY2UuaXNBY3RpdmUoKSk7
CiAgICAgICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKGNvbnRleHQuZGVzdHJveUNhbGxiYWNrQ2Fs
bGVkKTsKICAgICAgICAgICAgICAgICBjb250ZXh0LmRlc3Ryb3lDYWxsYmFja0NhbGxlZCA9IHRy
dWU7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgRVhQRUNUX1RSVUUoc291cmNlLmlzU2NoZWR1
bGVkKCkpOwogCiAgICAgICAgIGNvbnRleHQudGVzdC5kZWxheWVkRmluaXNoKCk7CiAgICAgICAg
IGNvbnRleHQudGVzdC5ydW5Mb29wKCk7Cg==
</data>
<flag name="review"
          id="263065"
          type_id="1"
          status="+"
          setter="gustavo"
    />
          </attachment>
      

    </bug>

</bugzilla>