<?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>236714</bug_id>
          
          <creation_ts>2022-02-16 09:37:20 -0800</creation_ts>
          <short_desc>Add -[WKWebProcessPlugInFrame lookUpFrameFromJSValue:]</short_desc>
          <delta_ts>2022-02-17 00:01:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>WebKit Local 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          <cc>cdumez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1842331</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2022-02-16 09:37:20 -0800</bug_when>
    <thetext>Safari needs a way to convert a JS window object or frame DOM element into a WKWebProcessPlugInFrame in the injected bundle for web extensions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842332</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-16 09:37:35 -0800</bug_when>
    <thetext>&lt;rdar://problem/89030846&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842336</commentid>
    <comment_count>2</comment_count>
      <attachid>452203</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2022-02-16 09:44:10 -0800</bug_when>
    <thetext>Created attachment 452203
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842342</commentid>
    <comment_count>3</comment_count>
      <attachid>452203</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-16 09:51:36 -0800</bug_when>
    <thetext>Comment on attachment 452203
Patch

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

&gt; Source/WebCore/page/Frame.cpp:1146
&gt; +    JSC::JSGlobalObject* globalObject = toJS(context);

I would think you should be able to do:
return globalObject  ? activeDOMWindow(*globalObject).frame() : nullptr;

No?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842344</commentid>
    <comment_count>4</comment_count>
      <attachid>452203</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-16 09:52:24 -0800</bug_when>
    <thetext>Comment on attachment 452203
Patch

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

&gt;&gt; Source/WebCore/page/Frame.cpp:1146
&gt;&gt; +    JSC::JSGlobalObject* globalObject = toJS(context);
&gt; 
&gt; I would think you should be able to do:
&gt; return globalObject  ? activeDOMWindow(*globalObject).frame() : nullptr;
&gt; 
&gt; No?

And if so, we probably don&apos;t need this new function on the Frame class at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842348</commentid>
    <comment_count>5</comment_count>
      <attachid>452203</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2022-02-16 09:57:03 -0800</bug_when>
    <thetext>Comment on attachment 452203
Patch

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

&gt;&gt;&gt; Source/WebCore/page/Frame.cpp:1146
&gt;&gt;&gt; +    JSC::JSGlobalObject* globalObject = toJS(context);
&gt;&gt; 
&gt;&gt; I would think you should be able to do:
&gt;&gt; return globalObject  ? activeDOMWindow(*globalObject).frame() : nullptr;
&gt;&gt; 
&gt;&gt; No?
&gt; 
&gt; And if so, we probably don&apos;t need this new function on the Frame class at all.

We need to be able to get the Frame from a JSHTMLIFrameElement, JSHTMLFrameElement or JSDOMWindow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842368</commentid>
    <comment_count>6</comment_count>
      <attachid>452203</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-16 10:28:26 -0800</bug_when>
    <thetext>Comment on attachment 452203
Patch

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

&gt; Source/WebCore/page/Frame.cpp:1141
&gt; +Frame* Frame::fromJSValue(JSContextRef context, JSValueRef valueRef)

I think we should rename to make it clear we want a *content* frame, as suggested below.

&gt; Source/WebCore/page/Frame.cpp:1149
&gt; +

We can simplify a bit here:
```
if (auto* window = JSDOMWindow::toWrapped(vm, value))
    return window-&gt;frame();
```

&gt; Source/WebCore/page/Frame.cpp:1159
&gt; +    if (auto* frameElement = JSC::jsDynamicCast&lt;JSHTMLIFrameElement*&gt;(vm, value))

I think this may look a bit better:
```
auto* jsNode = JSC::jsDynamicCast&lt;JSNode*&gt;(vm, value);
if (!jsNode || !is&lt;HTMLFrameOwnerElement&gt;(jsNode-&gt;wrapped()))
    return nullptr;
return downcast&lt;HTMLFrameOwnerElement&gt;(*jsNode-&gt;wrapped()).contentFrame();
```

&gt; Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h:36
&gt; ++ (instancetype)lookUpFrameFromJSValue:(JSValue *)value;

I think we may want to rename this to lookUpContentFrameFromJSValue given the behavior. You don&apos;t really want the frame, you want the &quot;content&quot; frame in the case the value is a &lt;frame&gt; / &lt;iframe&gt;.
We may also want to convey the fact that this only works for window and frame elements, maybe something like: lookUpContentFrameForWindowOrFrameElement:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842504</commentid>
    <comment_count>7</comment_count>
      <attachid>452246</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2022-02-16 13:45:54 -0800</bug_when>
    <thetext>Created attachment 452246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842509</commentid>
    <comment_count>8</comment_count>
      <attachid>452246</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-16 13:51:45 -0800</bug_when>
    <thetext>Comment on attachment 452246
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842755</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-17 00:01:21 -0800</bug_when>
    <thetext>Committed r290001 (247387@main): &lt;https://commits.webkit.org/247387@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 452246.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452203</attachid>
            <date>2022-02-16 09:44:10 -0800</date>
            <delta_ts>2022-02-16 13:45:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236714-20220216094409.patch</filename>
            <type>text/plain</type>
            <size>7588</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5Nzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA1YzczODc0MjEyODgw
ZTk3ZDk5YzM0ODk0MjI1N2U3NzJkMmFhYy4uMzZmZGE3YWNmYWJmZTk1ZjE1Mjc4YmU0MGVjNTQz
OGNmZjA4MjViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAyLTE2ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgLVtXS1dlYlBy
b2Nlc3NQbHVnSW5GcmFtZSBsb29rVXBGcmFtZUZyb21KU1ZhbHVlOl0uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3MTQKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vODkwMzA4NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmZy
b21KU1ZhbHVlKTogQWRkZWQuCisgICAgICAgICogcGFnZS9GcmFtZS5oOgorCiAyMDIyLTAyLTE0
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBj
cmFzaCB3aXRoIGRlZXBseSBuZXN0ZWQgYXN5bmMgb3ZlcmZsb3cgc2Nyb2xsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IGE2OWZlZWU2ZWViOTQ5YzlhNTRjZjE1MWRkNWEzZmJkMWVlOTY1MjAuLmVhYjY1YWIyYjY5OGEw
NWFlMDIxYTJmMGYzNjk1ZTkzMmVkMGRlZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MjItMDItMTYgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCAtW1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lIGxvb2tVcEZyYW1lRnJvbUpTVmFsdWU6XS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjcxNAor
ICAgICAgICByZGFyOi8vcHJvYmxlbS84OTAzMDg0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Q29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW06CisgICAgICAgICgrW1dLV2ViUHJvY2Vz
c1BsdWdJbkZyYW1lIGxvb2tVcEZyYW1lRnJvbUpTVmFsdWU6XSk6IEFkZGVkLiBVc2UgV2ViRnJh
bWU6OmZyYW1lRm9yVmFsdWUuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVQcml2YXRlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6
OmZyYW1lRm9yVmFsdWUpOiBBZGRlZC4gVXNlIEZyYW1lOjpmcm9tSlNWYWx1ZS4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaDoKKwogMjAyMi0wMi0xNCAgU2FpZCBBYm91
LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIFJlbW90
ZUltYWdlQnVmZmVyUHJveHkgc2hvdWxkIG5vdCBzaW5rIGl0c2VsZiB0byBhbiBJbWFnZSBvciBh
IE5hdGl2ZUltYWdlIHRob3VnaCBpdHMgYmFja2VuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCA0
YWExZTc3YTNhYjJkMGVjNzk2MWI2NjFkNWNlN2ZiOGZjMTkwY2ZjLi4yMjc5YzE1YTM0MjY4Nzk0
NDI1MzczNmE4ODdhMWI2NjUwYzMzNmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNjcsNiAr
NjcsOCBAQAogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZl
ci5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIkpT
SFRNTEZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIkpTSFRNTElGcmFtZUVsZW1lbnQuaCIKICNp
bmNsdWRlICJKU1dpbmRvd1Byb3h5LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUg
Ik5hdmlnYXRpb25TY2hlZHVsZXIuaCIKQEAgLTExMzYsNiArMTEzOCwzMyBAQCBGcmFtZSogRnJh
bWU6OmZyb21KU0NvbnRleHQoSlNDb250ZXh0UmVmIGNvbnRleHQpCiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKK0ZyYW1lKiBGcmFtZTo6ZnJvbUpTVmFsdWUoSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTVmFsdWVSZWYgdmFsdWVSZWYpCit7CisgICAgQVNTRVJUKGNvbnRleHQpOworICAgIEFTU0VS
VCh2YWx1ZVJlZik7CisKKyAgICBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0
b0pTKGNvbnRleHQpOworICAgIEpTQzo6SlNWYWx1ZSB2YWx1ZSA9IHRvSlMoZ2xvYmFsT2JqZWN0
LCB2YWx1ZVJlZik7CisgICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisKKyAg
ICBpZiAoYXV0byogd2luZG93UHJveHkgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNXaW5kb3dQcm94
eSo+KHZtLCB2YWx1ZSkpIHsKKyAgICAgICAgaWYgKGF1dG8qIHdpbmRvdyA9IEpTQzo6anNEeW5h
bWljQ2FzdDxKU0RPTVdpbmRvdyo+KHZtLCB3aW5kb3dQcm94eS0+d2luZG93KCkpKQorICAgICAg
ICAgICAgcmV0dXJuIHdpbmRvdy0+d3JhcHBlZCgpLmZyYW1lKCk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIH0KKworICAgIGlmIChhdXRvKiB3aW5kb3cgPSBKU0M6OmpzRHluYW1pY0Nh
c3Q8SlNET01XaW5kb3cqPih2bSwgdmFsdWUpKQorICAgICAgICByZXR1cm4gd2luZG93LT53cmFw
cGVkKCkuZnJhbWUoKTsKKworICAgIGlmIChhdXRvKiBmcmFtZUVsZW1lbnQgPSBKU0M6OmpzRHlu
YW1pY0Nhc3Q8SlNIVE1MSUZyYW1lRWxlbWVudCo+KHZtLCB2YWx1ZSkpCisgICAgICAgIHJldHVy
biBmcmFtZUVsZW1lbnQtPndyYXBwZWQoKS5jb250ZW50RnJhbWUoKTsKKworICAgIGlmIChhdXRv
KiBmcmFtZUVsZW1lbnQgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNIVE1MRnJhbWVFbGVtZW50Kj4o
dm0sIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZyYW1lRWxlbWVudC0+d3JhcHBlZCgpLmNvbnRl
bnRGcmFtZSgpOworCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKICNpZiBFTkFCTEUoREFUQV9E
RVRFQ1RJT04pCiAKIERhdGFEZXRlY3Rpb25SZXN1bHRzU3RvcmFnZSYgRnJhbWU6OmRhdGFEZXRl
Y3Rpb25SZXN1bHRzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCBlMDRjOTQ0MWUzMTA4MDczYWQ1ODli
ZDhlOGZhMDBiZGQzMzk2MjM2Li5jODExMmI3YWJkY2IzYmVkODRkYTdmYjFhOTgzNWZjNDEzMTA4
YzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC01Nyw2ICs1Nyw3IEBAIHR5cGVkZWYgc3RydWN0IEhC
SVRNQVBfXyogSEJJVE1BUDsKICNlbmRpZgogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVK
U0NvbnRleHQqIEpTQ29udGV4dFJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZUpTVmFs
dWUqIEpTVmFsdWVSZWY7CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgWWFyciB7CiBjbGFz
cyBSZWd1bGFyRXhwcmVzc2lvbjsKQEAgLTE4MSw2ICsxODIsNyBAQCBwdWJsaWM6CiAgICAgU3Ry
aW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBGcmFtZSogZnJvbUpTQ29udGV4dChKU0NvbnRleHRSZWYpOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBGcmFtZSogZnJvbUpTVmFsdWUoSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmKTsKIAog
Ly8gPT09PT09PT0gQWxsIHB1YmxpYyBmdW5jdGlvbnMgYmVsb3cgdGhpcyBwb2ludCBhcmUgY2Fu
ZGlkYXRlcyB0byBtb3ZlIG91dCBvZiBGcmFtZSBpbnRvIGFub3RoZXIgY2xhc3MuID09PT09PT09
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1t
CmluZGV4IDY3MmUxNDU2MWU4NzVkMTZiNTVhMjUxYWU2NGE2Yjk1OGE4MGQ0ZmUuLjRlNWRiNWIz
YjlhODIyZjVkNDhmNGRkZDNmOTRkMDY4ZWMwNTdhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0lu
RnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbQpAQCAtNTksNiArNTksMTEgQEAgKyAo
aW5zdGFuY2V0eXBlKWxvb2tVcEZyYW1lRnJvbUpTQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4
dAogICAgIHJldHVybiB3cmFwcGVyKFdlYktpdDo6V2ViRnJhbWU6OmZyYW1lRm9yQ29udGV4dChj
b250ZXh0LkpTR2xvYmFsQ29udGV4dFJlZikpOwogfQogCisrIChpbnN0YW5jZXR5cGUpbG9va1Vw
RnJhbWVGcm9tSlNWYWx1ZTooSlNWYWx1ZSAqKXZhbHVlCit7CisgICAgcmV0dXJuIHdyYXBwZXIo
V2ViS2l0OjpXZWJGcmFtZTo6ZnJhbWVGb3JWYWx1ZSh2YWx1ZS5jb250ZXh0LkpTR2xvYmFsQ29u
dGV4dFJlZiwgdmFsdWUuSlNWYWx1ZVJlZikpOworfQorCiAtICh2b2lkKWRlYWxsb2MKIHsKICAg
ICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29wKFdLV2ViUHJv
Y2Vzc1BsdWdJbkZyYW1lLmNsYXNzLCBzZWxmKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJh
bWVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lUHJpdmF0ZS5oCmluZGV4IDc3M2ExNGM4Mjhh
Zjc3MjVmMjRkNzc1NzliZjI2MDFkZjFjMWM3ZDEuLjQzOGJkZTg1NGQzZjc3YWUwMjdkMjUwMDE3
MTcyY2I4ODgxMDEzZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dl
YlByb2Nlc3NQbHVnSW5GcmFtZVByaXZhdGUuaApAQCAtMjYsMTIgKzI2LDE0IEBACiAjaW1wb3J0
IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaD4KIAogQGNsYXNzIEpTQ29udGV4dDsK
K0BjbGFzcyBKU1ZhbHVlOwogQGNsYXNzIFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlcjsKIAogQGludGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSAoV0tQcml2
YXRlKQogCiArIChpbnN0YW5jZXR5cGUpbG9va1VwRnJhbWVGcm9tSGFuZGxlOihfV0tGcmFtZUhh
bmRsZSAqKWhhbmRsZTsKICsgKGluc3RhbmNldHlwZSlsb29rVXBGcmFtZUZyb21KU0NvbnRleHQ6
KEpTQ29udGV4dCAqKWNvbnRleHQ7CisrIChpbnN0YW5jZXR5cGUpbG9va1VwRnJhbWVGcm9tSlNW
YWx1ZTooSlNWYWx1ZSAqKXZhbHVlOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqX2Jyb3dzZXJDb250
ZXh0Q29udHJvbGxlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
RnJhbWUuY3BwCmluZGV4IDlkZjQ1NGEwNjhiYzA1YWJhODFmNzYyMTYxYTRmZDI2MGQ1ODczZjcu
LjRkYzg5Nzc5OTM2NDUyZWU2YmJjZDYyNWQ0MTQxOTQ0OTRkZWVhNmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTcxOSw2ICs3MTksMTIg
QEAgV2ViRnJhbWUqIFdlYkZyYW1lOjpmcmFtZUZvckNvbnRleHQoSlNDb250ZXh0UmVmIGNvbnRl
eHQpCiAgICAgcmV0dXJuIGNvcmVGcmFtZSA/IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpjb3Jl
RnJhbWUpIDogbnVsbHB0cjsKIH0KIAorV2ViRnJhbWUqIFdlYkZyYW1lOjpmcmFtZUZvclZhbHVl
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlKQoreworICAgIGF1dG8qIGNv
cmVGcmFtZSA9IEZyYW1lOjpmcm9tSlNWYWx1ZShjb250ZXh0LCB2YWx1ZSk7CisgICAgcmV0dXJu
IGNvcmVGcmFtZSA/IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpjb3JlRnJhbWUpIDogbnVsbHB0
cjsKK30KKwogSlNWYWx1ZVJlZiBXZWJGcmFtZTo6anNXcmFwcGVyRm9yV29ybGQoSW5qZWN0ZWRC
dW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlKiBjc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxl
LCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkKiB3b3JsZCkKIHsKICAgICBpZiAoIW1fY29yZUZy
YW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJh
bWUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5kZXgg
MTA0YzZkYmExODk4NTVlOGM5MzIzZGJmNmU4NThiYzc2NzY3MzMyOS4uZDdkNzg2NjBiZGY4Yzk4
YWYzNjQwNDM2ZmY5OGQ0OWYwNWI4NTk3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJGcmFtZS5oCkBAIC0xNDYsNiArMTQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0QWNjZXNzaWJsZU5hbWUoY29uc3QgU3RyaW5nJik7CiAKICAgICBzdGF0aWMgV2ViRnJhbWUq
IGZyYW1lRm9yQ29udGV4dChKU0NvbnRleHRSZWYpOworICAgIHN0YXRpYyBXZWJGcmFtZSogZnJh
bWVGb3JWYWx1ZShKU0NvbnRleHRSZWYsIEpTVmFsdWVSZWYpOwogCiAgICAgSlNWYWx1ZVJlZiBq
c1dyYXBwZXJGb3JXb3JsZChJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUq
LCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkKik7CiAgICAgSlNWYWx1ZVJlZiBqc1dyYXBwZXJG
b3JXb3JsZChJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUqLCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdv
cmxkKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452246</attachid>
            <date>2022-02-16 13:45:54 -0800</date>
            <delta_ts>2022-02-17 00:01:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236714-20220216134553.patch</filename>
            <type>text/plain</type>
            <size>7398</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5Nzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA1YzczODc0MjEyODgw
ZTk3ZDk5YzM0ODk0MjI1N2U3NzJkMmFhYy4uYmZlMDBlZmQ4ZTY4NTYwZjdhZjhkNGE5MzVjZWNm
ODI5ZDRlODNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAyLTE2ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgLVtXS1dlYlBy
b2Nlc3NQbHVnSW5GcmFtZSBsb29rVXBGcmFtZUZyb21KU1ZhbHVlOl0uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3MTQKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vODkwMzA4NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmNv
bnRlbnRGcmFtZUZyb21XaW5kb3dPckZyYW1lRWxlbWVudCk6IEFkZGVkLgorICAgICAgICAqIHBh
Z2UvRnJhbWUuaDoKKwogMjAyMi0wMi0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KIAogICAgICAgICBGaXggY3Jhc2ggd2l0aCBkZWVwbHkgbmVzdGVkIGFzeW5jIG92
ZXJmbG93IHNjcm9sbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhNjlmZWVlNmVlYjk0OWM5YTU0Y2YxNTFkZDVhM2Zi
ZDFlZTk2NTIwLi5lZmYwMWY2MGM3Y2M0ZDRjNGU1NWIyZTZlZThkYThlZmIwMTY2MDU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIyLTAyLTE2ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1v
dGh5QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgLVtXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSBs
b29rVXBGcmFtZUZyb21KU1ZhbHVlOl0uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzY3MTQKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vODkwMzA4NDYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1t
OgorICAgICAgICAoK1tXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSBsb29rVXBDb250ZW50RnJhbWVG
cm9tV2luZG93T3JGcmFtZUVsZW1lbnQ6XSk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lUHJpdmF0ZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lOjpjb250ZW50RnJhbWVGb3JXaW5kb3dPckZyYW1lRWxlbWVudCk6IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oOgorCiAyMDIyLTAy
LTE0ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUg
UHJvY2Vzc10gUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSBzaG91bGQgbm90IHNpbmsgaXRzZWxmIHRv
IGFuIEltYWdlIG9yIGEgTmF0aXZlSW1hZ2UgdGhvdWdoIGl0cyBiYWNrZW5kCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwCmluZGV4IDRhYTFlNzdhM2FiMmQwZWM3OTYxYjY2MWQ1Y2U3ZmI4ZmMxOTBjZmMuLmU2
Yjc4OWQyODA5ZWM4YTE2N2Q5MGJmMzRlOTcwMDU1NWZjOGQ4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1
ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgi
CisjaW5jbHVkZSAiSlNOb2RlLmgiCiAjaW5jbHVkZSAiSlNXaW5kb3dQcm94eS5oIgogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOYXZpZ2F0aW9uU2NoZWR1bGVyLmgiCkBAIC0xMTM2
LDYgKzExMzcsMjQgQEAgRnJhbWUqIEZyYW1lOjpmcm9tSlNDb250ZXh0KEpTQ29udGV4dFJlZiBj
b250ZXh0KQogICAgIHJldHVybiBudWxscHRyOwogfQogCitGcmFtZSogRnJhbWU6OmNvbnRlbnRG
cmFtZUZyb21XaW5kb3dPckZyYW1lRWxlbWVudChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1
ZVJlZiB2YWx1ZVJlZikKK3sKKyAgICBBU1NFUlQoY29udGV4dCk7CisgICAgQVNTRVJUKHZhbHVl
UmVmKTsKKworICAgIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRvSlMoY29u
dGV4dCk7CisgICAgSlNDOjpKU1ZhbHVlIHZhbHVlID0gdG9KUyhnbG9iYWxPYmplY3QsIHZhbHVl
UmVmKTsKKyAgICBKU0M6OlZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKworICAgIGlmIChh
dXRvKiB3aW5kb3cgPSBKU0RPTVdpbmRvdzo6dG9XcmFwcGVkKHZtLCB2YWx1ZSkpCisgICAgICAg
IHJldHVybiB3aW5kb3ctPmZyYW1lKCk7CisKKyAgICBhdXRvKiBqc05vZGUgPSBKU0M6OmpzRHlu
YW1pY0Nhc3Q8SlNOb2RlKj4odm0sIHZhbHVlKTsKKyAgICBpZiAoIWpzTm9kZSB8fCAhaXM8SFRN
TEZyYW1lT3duZXJFbGVtZW50Pihqc05vZGUtPndyYXBwZWQoKSkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIHJldHVybiBkb3duY2FzdDxIVE1MRnJhbWVPd25lckVsZW1lbnQ+KGpzTm9k
ZS0+d3JhcHBlZCgpKS5jb250ZW50RnJhbWUoKTsKK30KKwogI2lmIEVOQUJMRShEQVRBX0RFVEVD
VElPTikKIAogRGF0YURldGVjdGlvblJlc3VsdHNTdG9yYWdlJiBGcmFtZTo6ZGF0YURldGVjdGlv
blJlc3VsdHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IGUwNGM5NDQxZTMxMDgwNzNhZDU4OWJkOGU4
ZmEwMGJkZDMzOTYyMzYuLmM4NmZlNTllMzA0MDRjZDk1OWUwOGFlYWVkNjQwNTU4YThhYmM1NmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmgKQEAgLTU3LDYgKzU3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgSEJJVE1B
UF9fKiBIQklUTUFQOwogI2VuZGlmCiAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZUpTQ29u
dGV4dCogSlNDb250ZXh0UmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlSlNWYWx1ZSog
SlNWYWx1ZVJlZjsKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBZYXJyIHsKIGNsYXNzIFJl
Z3VsYXJFeHByZXNzaW9uOwpAQCAtMTgxLDYgKzE4Miw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcg
ZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEZy
YW1lKiBmcm9tSlNDb250ZXh0KEpTQ29udGV4dFJlZik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIEZyYW1lKiBjb250ZW50RnJhbWVGcm9tV2luZG93T3JGcmFtZUVsZW1lbnQoSlNDb250ZXh0
UmVmLCBKU1ZhbHVlUmVmKTsKIAogLy8gPT09PT09PT0gQWxsIHB1YmxpYyBmdW5jdGlvbnMgYmVs
b3cgdGhpcyBwb2ludCBhcmUgY2FuZGlkYXRlcyB0byBtb3ZlIG91dCBvZiBGcmFtZSBpbnRvIGFu
b3RoZXIgY2xhc3MuID09PT09PT09CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2Vi
UHJvY2Vzc1BsdWdJbkZyYW1lLm1tCmluZGV4IDY3MmUxNDU2MWU4NzVkMTZiNTVhMjUxYWU2NGE2
Yjk1OGE4MGQ0ZmUuLjljYjE5OTE1NGJhNDI4MDlhOWQ1MGEzMjk0ZmU5OTQyZTJiMjY5OWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29j
b2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbQpA
QCAtNTksNiArNTksMTEgQEAgKyAoaW5zdGFuY2V0eXBlKWxvb2tVcEZyYW1lRnJvbUpTQ29udGV4
dDooSlNDb250ZXh0ICopY29udGV4dAogICAgIHJldHVybiB3cmFwcGVyKFdlYktpdDo6V2ViRnJh
bWU6OmZyYW1lRm9yQ29udGV4dChjb250ZXh0LkpTR2xvYmFsQ29udGV4dFJlZikpOwogfQogCisr
IChpbnN0YW5jZXR5cGUpbG9va1VwQ29udGVudEZyYW1lRnJvbVdpbmRvd09yRnJhbWVFbGVtZW50
OihKU1ZhbHVlICopdmFsdWUKK3sKKyAgICByZXR1cm4gd3JhcHBlcihXZWJLaXQ6OldlYkZyYW1l
Ojpjb250ZW50RnJhbWVGb3JXaW5kb3dPckZyYW1lRWxlbWVudCh2YWx1ZS5jb250ZXh0LkpTR2xv
YmFsQ29udGV4dFJlZiwgdmFsdWUuSlNWYWx1ZVJlZikpOworfQorCiAtICh2b2lkKWRlYWxsb2MK
IHsKICAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5SdW5Mb29wKFdL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmNsYXNzLCBzZWxmKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lUHJpdmF0ZS5oCmluZGV4IDc3M2Ex
NGM4MjhhZjc3MjVmMjRkNzc1NzliZjI2MDFkZjFjMWM3ZDEuLmU0ZjVhODNlNzU3MDc2YWI0YjJj
ZGEzMDA5ZjU5ZDAzMWExZDI1ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZVByaXZhdGUuaApAQCAtMjYsMTIgKzI2LDE0IEBACiAj
aW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaD4KIAogQGNsYXNzIEpTQ29u
dGV4dDsKK0BjbGFzcyBKU1ZhbHVlOwogQGNsYXNzIFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlcjsKIAogQGludGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSAo
V0tQcml2YXRlKQogCiArIChpbnN0YW5jZXR5cGUpbG9va1VwRnJhbWVGcm9tSGFuZGxlOihfV0tG
cmFtZUhhbmRsZSAqKWhhbmRsZTsKICsgKGluc3RhbmNldHlwZSlsb29rVXBGcmFtZUZyb21KU0Nv
bnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQ7CisrIChpbnN0YW5jZXR5cGUpbG9va1VwQ29udGVu
dEZyYW1lRnJvbVdpbmRvd09yRnJhbWVFbGVtZW50OihKU1ZhbHVlICopdmFsdWU7CiAKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRl
eHRDb250cm9sbGVyICpfYnJvd3NlckNvbnRleHRDb250cm9sbGVyOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggOWRmNDU0YTA2OGJjMDVh
YmE4MWY3NjIxNjFhNGZkMjYwZDU4NzNmNy4uNDBiOTk3MzIwMDc4MjVlNjY4M2U2MzY4MDQzZjYy
YjZiNTkwMzM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmNwcApAQCAtNzE5LDYgKzcxOSwxMiBAQCBXZWJGcmFtZSogV2ViRnJhbWU6OmZyYW1lRm9y
Q29udGV4dChKU0NvbnRleHRSZWYgY29udGV4dCkKICAgICByZXR1cm4gY29yZUZyYW1lID8gV2Vi
RnJhbWU6OmZyb21Db3JlRnJhbWUoKmNvcmVGcmFtZSkgOiBudWxscHRyOwogfQogCitXZWJGcmFt
ZSogV2ViRnJhbWU6OmNvbnRlbnRGcmFtZUZvcldpbmRvd09yRnJhbWVFbGVtZW50KEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlKQoreworICAgIGF1dG8qIGNvcmVGcmFtZSA9
IEZyYW1lOjpjb250ZW50RnJhbWVGcm9tV2luZG93T3JGcmFtZUVsZW1lbnQoY29udGV4dCwgdmFs
dWUpOworICAgIHJldHVybiBjb3JlRnJhbWUgPyBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqY29y
ZUZyYW1lKSA6IG51bGxwdHI7Cit9CisKIEpTVmFsdWVSZWYgV2ViRnJhbWU6OmpzV3JhcHBlckZv
cldvcmxkKEluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSogY3NzU3R5bGVE
ZWNsYXJhdGlvbkhhbmRsZSwgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCogd29ybGQpCiB7CiAg
ICAgaWYgKCFtX2NvcmVGcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJGcmFtZS5oCmluZGV4IDEwNGM2ZGJhMTg5ODU1ZThjOTMyM2RiZjZlODU4YmM3Njc2NzMzMjku
LjZjM2E5NDg2ZTQ0MzQyYWZjYjU0ZGE3NmEyMmNhM2QwM2MyMTZlYzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaApAQCAtMTQ2LDYgKzE0Niw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldEFjY2Vzc2libGVOYW1lKGNvbnN0IFN0cmluZyYpOwogCiAgICAg
c3RhdGljIFdlYkZyYW1lKiBmcmFtZUZvckNvbnRleHQoSlNDb250ZXh0UmVmKTsKKyAgICBzdGF0
aWMgV2ViRnJhbWUqIGNvbnRlbnRGcmFtZUZvcldpbmRvd09yRnJhbWVFbGVtZW50KEpTQ29udGV4
dFJlZiwgSlNWYWx1ZVJlZik7CiAKICAgICBKU1ZhbHVlUmVmIGpzV3JhcHBlckZvcldvcmxkKElu
amVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSosIEluamVjdGVkQnVuZGxlU2Ny
aXB0V29ybGQqKTsKICAgICBKU1ZhbHVlUmVmIGpzV3JhcHBlckZvcldvcmxkKEluamVjdGVkQnVu
ZGxlTm9kZUhhbmRsZSosIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>