<?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>201721</bug_id>
          
          <creation_ts>2019-09-12 08:41:52 -0700</creation_ts>
          <short_desc>Factor out duplicated functions from HTTPParsers.cpp and HTTPHeaderField.cpp</short_desc>
          <delta_ts>2019-09-13 00:59:19 -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>WebCore Misc.</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>201077</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrian Perez">aperez</reporter>
          <assigned_to name="Adrian Perez">aperez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1570263</commentid>
    <comment_count>0</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-09-12 08:41:52 -0700</bug_when>
    <thetext>WebCore/loader/HTTPHeaderField.cpp and WebCore/platform/network/HTTPParsers.cpp
contain functions which duplicate functionality, namely:

  HTTPHeaderField.cpp           HTTPParsers.cpp
  ============================= =====================================
  RFC7230::isCommentText()      isCommentTextCharacter()
  RFC7230::isOBSText()          isOctetInFieldContentCharacter()
  RFC7230::isVisibleCharacter() isVisibleCharacter()
  RFC7230::isDelimiter()        isDelimiterCharacter()
  RFC7230::isTokenCharacter()   isHTTPTokenCharacter()

There are also a couple of functions in HTTPParsers.cpp which could be simplieied
by using helper function from HTTPHeaderField.cpp. For example skipWhiteSpace()
could be written in terms of skipWhile()+RFC3270::isWhitespace(); skipQuotedPair()
could use skipCharacter()+RFC7230::isQuotedPairSecondOctetValue() instead of
duplicating the list of characters that can follow the backslash in a quoted pair,
and so on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570278</commentid>
    <comment_count>1</comment_count>
      <attachid>378651</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-09-12 09:42:58 -0700</bug_when>
    <thetext>Created attachment 378651
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570291</commentid>
    <comment_count>2</comment_count>
      <attachid>378651</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2019-09-12 10:21:01 -0700</bug_when>
    <thetext>Comment on attachment 378651
Patch

r=me assuming bots are all green.

You sure some unit tests wouldn&apos;t be of use while you&apos;re here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570367</commentid>
    <comment_count>3</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-09-12 14:08:38 -0700</bug_when>
    <thetext>(In reply to Don Olmstead from comment #2)
&gt; Comment on attachment 378651 [details]
&gt; Patch
&gt; 
&gt; r=me assuming bots are all green.

Thanks Don!

&gt; You sure some unit tests wouldn&apos;t be of use while you&apos;re here?

In patch in bug #201077 an unit test was added which calls
WebCore::isValidUserAgentHeaderValue(). That test is now
exercising the functions from the WebCore::RFC7230 namespace
as well — those are direct translations from the definitions
in the RFC, so I reckon that we do not need additional tests
for them :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570369</commentid>
    <comment_count>4</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-09-12 14:10:50 -0700</bug_when>
    <thetext>It&apos;s late for me today, so I will r+ tomorrow morning
instead to be able to keep an eye on the bots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570370</commentid>
    <comment_count>5</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-09-12 14:13:28 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #4)
&gt; It&apos;s late for me today, so I will r+ tomorrow morning
&gt; instead to be able to keep an eye on the bots

I meant cq+, of course O:-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570518</commentid>
    <comment_count>6</comment_count>
      <attachid>378651</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-13 00:58:01 -0700</bug_when>
    <thetext>Comment on attachment 378651
Patch

Clearing flags on attachment: 378651

Committed r249826: &lt;https://trac.webkit.org/changeset/249826&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570519</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-13 00:58:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570522</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-13 00:59:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/55331926&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378651</attachid>
            <date>2019-09-12 09:42:58 -0700</date>
            <delta_ts>2019-09-13 00:58:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201721-20190912194257.patch</filename>
            <type>text/plain</type>
            <size>9383</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5ODEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODA2NzUyZjhkMjUyYWFm
MmI3NzIyYmUzNDY3MWQ2ZWJhZGQ1NDIwYy4uMjk1MzAzYTY2YTEyMmQwZTcxNzc1OWVlYjAwODg0
M2QwMDNhZmU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5LTA5LTEyICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgRmFjdG9y
IG91dCBkdXBsaWNhdGVkIGZ1bmN0aW9ucyBmcm9tIEhUVFBQYXJzZXJzLmNwcCBhbmQgSFRUUEhl
YWRlckZpZWxkLmNwcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAxNzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4KKworICAgICAgICAqIGxvYWRlci9IVFRQSGVhZGVy
RmllbGQuY3BwOiBSZW1vdmUgInN0YXRpYyIgZnJvbSBwcm90b3R5cGVzIG9mIGZ1bmN0aW9ucyBu
ZWVkZWQgaW4gSFRUUFBhcnNlcnMuY3BwLgorICAgICAgICAoV2ViQ29yZTo6UkZDNzIzMDo6aXNE
ZWxpbWl0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UkZDNzIzMDo6aXNRdW90ZWRQYWlyU2Vjb25k
T2N0ZXQpOgorICAgICAgICAoV2ViQ29yZTo6UkZDNzIzMDo6aXNDb21tZW50VGV4dCk6CisgICAg
ICAgICogbG9hZGVyL0hUVFBIZWFkZXJGaWVsZC5oOiBBZGQgcHJvdG90eXBlcyBvZiBmdW5jdGlv
bnMgbmVlZGVkIGluIEhUVFBQYXJzZXJzLmNwcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L0hUVFBQYXJzZXJzLmNwcDogVXNlIGZ1bmN0aW9uYWxpdHkgZnJvbSBXZWJDb3JlOjpSRkM3MjMw
IHdoZXJlIHBvc3NpYmxlLgorICAgICAgICAoV2ViQ29yZTo6c2tpcFdoaWxlKTogTW92ZWQgdG8g
YWxsb3cgaW1wbGVtZW50aW5nIHNraXBXaGl0ZVNwYWNlKCkgaW4gdGVybXMgb2Ygc2tpcFdoaWxl
KCkuCisgICAgICAgIChXZWJDb3JlOjpza2lwV2hpdGVTcGFjZSk6IEltcGxlbWVudCB1c2luZyBz
a2lwV2hpbGUoKSBhbmQgdGhlIFJGQzcyMzA6OmlzV2hpdGVzcGFjZSgpIHByZWRpY2F0ZS4KKyAg
ICAgICAgKFdlYkNvcmU6OmlzVmFsaWRBY2NlcHRIZWFkZXJWYWx1ZSk6IFJlcGxhY2UgdXNhZ2Ug
b2YgaXNEZWxpbWl0ZXJDaGFyYWN0ZXIoKSB3aXRoIFJGQzcyMzA6OmlzRGVsaW1pdGVyKCkuCisg
ICAgICAgIChXZWJDb3JlOjppc1ZhbGlkSFRUUFRva2VuKTogUmVwbGFjZSB1c2FnZSBvZiBpc0hU
VFBUb2tlbkNoYXJhY3RlcigpIHdpdGggUkZDNzIzMDo6aXNUb2tlbkNoYXJhY3RlcigpLgorICAg
ICAgICAoV2ViQ29yZTo6c2tpcFF1b3RlZFBhaXIpOiBQYXJ0aWFsbHkgcmVpbXBsZW1lbnQgaW4g
dGVybXMgb2YgUkZDNzIzMDo6aXNRdW90ZWRQYWlyU2Vjb25kT2N0ZXQoKS4KKyAgICAgICAgKFdl
YkNvcmU6OnNraXBDb21tZW50KTogUmVwbGFjZSB1c2FnZSBvZiBpc0NvbW1lbnRUZXh0Q2hhcmFj
dGVyKCkgd2l0aCBSRkM3MjMwOjppc0NvbW1lbnRUZXh0KCkuCisgICAgICAgIChXZWJDb3JlOjpz
a2lwSFRUUFRva2VuKTogUmVwbGFjZSB1c2FnZSBvZiBpc0hUVFBUb2tlbkNoYXJhY3RlcigpIHdp
dGggUkZDNzIzMDo6aXNUb2tlbkNoYXJhY3RlcigpLgorCiAyMDE5LTA5LTEyICBBZHJpYW4gUGVy
ZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSB3
ZWJraXRfc2V0dGluZ3Nfc2V0X3VzZXJfYWdlbnQoKSBhbGxvd3MgY29udGVudCBmb3JiaWRkZW4g
aW4gSFRUUCBoZWFkZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSFRUUEhl
YWRlckZpZWxkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IVFRQSGVhZGVyRmllbGQuY3Bw
CmluZGV4IDk3NmUwNzQwMTUxNjRkZmNlNzkyMGUyNWMyNTM4NWQ3YWNjMTJlYTUuLjYwYTZmYzQ1
MTNjYzBlODczMWM2NzI5OTM4MGNhNjU1MWIwM2FjMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9IVFRQSGVhZGVyRmllbGQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9IVFRQSGVhZGVyRmllbGQuY3BwCkBAIC00MCw3ICs0MCw3IEBAIGJvb2wgaXNUb2tlbkNoYXJh
Y3RlcihVQ2hhciBjKQogICAgICAgICB8fCBjID09ICdgJyB8fCBjID09ICd8JyB8fCBjID09ICd+
JzsKIH0KIAotc3RhdGljIGJvb2wgaXNEZWxpbWl0ZXIoVUNoYXIgYykKK2Jvb2wgaXNEZWxpbWl0
ZXIoVUNoYXIgYykKIHsKICAgICByZXR1cm4gYyA9PSAnKCcgfHwgYyA9PSAnKScgfHwgYyA9PSAn
LCcKICAgICAgICAgfHwgYyA9PSAnLycgfHwgYyA9PSAnOicgfHwgYyA9PSAnOycKQEAgLTgwLDE0
ICs4MCwxNCBAQCBzdGF0aWMgYm9vbCBpc1F1b3RlZFRleHRDaGFyYWN0ZXIoVUNoYXIgYykKICAg
ICAgICAgfHwgaXNPQlNUZXh0KGMpOwogfQogCi1zdGF0aWMgYm9vbCBpc1F1b3RlZFBhaXJTZWNv
bmRPY3RldChVQ2hhciBjKQorYm9vbCBpc1F1b3RlZFBhaXJTZWNvbmRPY3RldChVQ2hhciBjKQog
ewogICAgIHJldHVybiBpc1doaXRlc3BhY2UoYykKICAgICAgICAgfHwgaXNWaXNpYmxlQ2hhcmFj
dGVyKGMpCiAgICAgICAgIHx8IGlzT0JTVGV4dChjKTsKIH0KIAotc3RhdGljIGJvb2wgaXNDb21t
ZW50VGV4dChVQ2hhciBjKQorYm9vbCBpc0NvbW1lbnRUZXh0KFVDaGFyIGMpCiB7CiAgICAgcmV0
dXJuIGlzV2hpdGVzcGFjZShjKQogICAgICAgICB8fCBpc0luUmFuZ2U8MHgyMSwgMHgyNz4oYykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IVFRQSGVhZGVyRmllbGQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9IVFRQSGVhZGVyRmllbGQuaAppbmRleCBlODhhMGQxOGVjMTZh
YmJkYjU1ZDZjZjBhMjQxNjdmMzZkZWI2MzQ0Li41NDNlOGIzMGZhZGJkODUyOTVjMjBhYTcyMjY2
NzMxNDA0Yzg4ZWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSFRUUEhlYWRl
ckZpZWxkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hUVFBIZWFkZXJGaWVsZC5oCkBA
IC03NCw2ICs3NCw5IEBAIE9wdGlvbmFsPEhUVFBIZWFkZXJGaWVsZD4gSFRUUEhlYWRlckZpZWxk
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIG5hbWVzcGFjZSBSRkM3MjMwIHsKIGJvb2wgaXNU
b2tlbkNoYXJhY3RlcihVQ2hhcik7CiBib29sIGlzV2hpdGVzcGFjZShVQ2hhcik7Citib29sIGlz
Q29tbWVudFRleHQoVUNoYXIpOworYm9vbCBpc1F1b3RlZFBhaXJTZWNvbmRPY3RldChVQ2hhcik7
Citib29sIGlzRGVsaW1pdGVyKFVDaGFyKTsKIH0gLy8gbmFtZXNwYWNlIFJGQzcyMzAKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9IVFRQUGFyc2Vycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0hUVFBQYXJzZXJzLmNwcAppbmRleCA3NWE0MWJlNWU5N2Q5NmE2YzZlMGI2MzJkOTJkMTIwNjM2
YjY5NjM5Li4yMDU3ZTBiYTUwMzNhOWViZjZlNjhkM2E1NjRlNzA0NTRkOTE1MGVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcApAQCAtMzMs
NiArMzMsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgi
CiAKKyNpbmNsdWRlICJIVFRQSGVhZGVyRmllbGQuaCIKICNpbmNsdWRlICJIVFRQSGVhZGVyTmFt
ZXMuaCIKICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2Uu
aD4KQEAgLTQ0LDE2ICs0NSwyNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIFRydWUg
aWYgY2hhcmFjdGVycyB3aGljaCBzYXRpc2Z5IHRoZSBwcmVkaWNhdGUgYXJlIHByZXNlbnQsIGlu
Y3JlbWVudGluZworLy8gInBvcyIgdG8gdGhlIG5leHQgY2hhcmFjdGVyIHdoaWNoIGRvZXMgbm90
IHNhdGlzZnkgdGhlIHByZWRpY2F0ZS4KKy8vIE5vdGU6IG1pZ2h0IHJldHVybiBwb3MgPT0gc3Ry
Lmxlbmd0aCgpLgorc3RhdGljIGlubGluZSBib29sIHNraXBXaGlsZShjb25zdCBTdHJpbmcmIHN0
ciwgdW5zaWduZWQmIHBvcywgY29uc3QgV1RGOjpGdW5jdGlvbjxib29sKGNvbnN0IFVDaGFyKT4m
IHByZWRpY2F0ZSkKK3sKKyAgICBjb25zdCB1bnNpZ25lZCBzdGFydCA9IHBvczsKKyAgICBjb25z
dCB1bnNpZ25lZCBsZW4gPSBzdHIubGVuZ3RoKCk7CisgICAgd2hpbGUgKHBvcyA8IGxlbiAmJiBw
cmVkaWNhdGUoc3RyW3Bvc10pKQorICAgICAgICArK3BvczsKKyAgICByZXR1cm4gcG9zICE9IHN0
YXJ0OworfQorCiAvLyB0cnVlIGlmIHRoZXJlIGlzIG1vcmUgdG8gcGFyc2UsIGFmdGVyIGluY3Jl
bWVudGluZyBwb3MgcGFzdCB3aGl0ZXNwYWNlLgogLy8gTm90ZTogTWlnaHQgcmV0dXJuIHBvcyA9
PSBzdHIubGVuZ3RoKCkKIHN0YXRpYyBpbmxpbmUgYm9vbCBza2lwV2hpdGVTcGFjZShjb25zdCBT
dHJpbmcmIHN0ciwgdW5zaWduZWQmIHBvcykKIHsKLSAgICB1bnNpZ25lZCBsZW4gPSBzdHIubGVu
Z3RoKCk7Ci0KLSAgICB3aGlsZSAocG9zIDwgbGVuICYmIChzdHJbcG9zXSA9PSAnXHQnIHx8IHN0
cltwb3NdID09ICcgJykpCi0gICAgICAgICsrcG9zOwotCi0gICAgcmV0dXJuIHBvcyA8IGxlbjsK
KyAgICBza2lwV2hpbGUoc3RyLCBwb3MsIFJGQzcyMzA6OmlzV2hpdGVzcGFjZSk7CisgICAgcmV0
dXJuIHBvcyA8IHN0ci5sZW5ndGgoKTsKIH0KIAogLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBmdW5j
dGlvbiBjYW4gbWF0Y2ggdGhlIHdob2xlIHRva2VuIChjYXNlIGluc2Vuc2l0aXZlKQpAQCAtOTcs
MTggKzEwNiw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBza2lwVmFsdWUoY29uc3QgU3RyaW5nJiBz
dHIsIHVuc2lnbmVkJiBwb3MpCiAgICAgcmV0dXJuIHBvcyAhPSBzdGFydDsKIH0KIAotLy8gVHJ1
ZSBpZiBjaGFyYWN0ZXJzIHdoaWNoIHNhdGlzZnkgdGhlIHByZWRpY2F0ZSBhcmUgcHJlc2VudCwg
aW5jcmVtZW50aW5nCi0vLyAicG9zIiB0byB0aGUgbmV4dCBjaGFyYWN0ZXIgd2hpY2ggZG9lcyBu
b3Qgc2F0aXNmeSB0aGUgcHJlZGljYXRlLgotLy8gTm90ZTogbWlnaHQgcmV0dXJuIHBvcyA9PSBz
dHIubGVuZ3RoKCkuCi1zdGF0aWMgaW5saW5lIGJvb2wgc2tpcFdoaWxlKGNvbnN0IFN0cmluZyYg
c3RyLCB1bnNpZ25lZCYgcG9zLCBjb25zdCBXVEY6OkZ1bmN0aW9uPGJvb2woY29uc3QgVUNoYXIp
PiYgcHJlZGljYXRlKQotewotICAgIGNvbnN0IHVuc2lnbmVkIHN0YXJ0ID0gcG9zOwotICAgIGNv
bnN0IHVuc2lnbmVkIGxlbiA9IHN0ci5sZW5ndGgoKTsKLSAgICB3aGlsZSAocG9zIDwgbGVuICYm
IHByZWRpY2F0ZShzdHJbcG9zXSkpCi0gICAgICAgICsrcG9zOwotICAgIHJldHVybiBwb3MgIT0g
c3RhcnQ7Ci19Ci0KIC8vIFNlZSBSRkMgNzIzMCwgU2VjdGlvbiAzLjEuMi4KIGJvb2wgaXNWYWxp
ZFJlYXNvblBocmFzZShjb25zdCBTdHJpbmcmIHZhbHVlKQogewpAQCAtMTM4LDQ0ICsxMzUsNiBA
QCBib29sIGlzVmFsaWRIVFRQSGVhZGVyVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotLy8gU2VlIFJGQyA3MjMwLCBTZWN0aW9uIDMuMi42Lgotc3RhdGlj
IGJvb2wgaXNEZWxpbWl0ZXJDaGFyYWN0ZXIoY29uc3QgVUNoYXIgYykKLXsKLSAgICAvLyBEUVVP
VEUgYW5kICIoKSwvOjs8PT4/QFtcXXt9IgotICAgIHJldHVybiAoYyA9PSAnIicgfHwgYyA9PSAn
KCcgfHwgYyA9PSAnKScgfHwgYyA9PSAnLCcgfHwgYyA9PSAnLycgfHwgYyA9PSAnOicgfHwgYyA9
PSAnOycKLSAgICAgICAgfHwgYyA9PSAnPCcgfHwgYyA9PSAnPScgfHwgYyA9PSAnPicgfHwgYyA9
PSAnPycgfHwgYyA9PSAnQCcgfHwgYyA9PSAnWycgfHwgYyA9PSAnXFwnCi0gICAgICAgIHx8IGMg
PT0gJ10nIHx8IGMgPT0gJ3snIHx8IGMgPT0gJ30nKTsKLX0KLQotLy8gU2VlIFJGQyA3MjMwLCBT
ZWN0aW9uIDMuMi42Lgotc3RhdGljIGlubGluZSBib29sIGlzVmlzaWJsZUNoYXJhY3Rlcihjb25z
dCBVQ2hhciBjKQotewotICAgIC8vIFZDSEFSID0gJXgyMS03RQotICAgIHJldHVybiAoYyA+PSAw
eDIxICYmIGMgPD0gMHg3RSk7Ci19Ci0KLS8vIFNlZSBSRkMgNzIzMCwgU2VjdGlvbiAzLjIuNi4K
LXN0YXRpYyBpbmxpbmUgYm9vbCBpc09jdGVjdEluRmllbGRDb250ZW50Q2hhcmFjdGVyKGNvbnN0
IFVDaGFyIGMpCi17Ci0gICAgLy8gb2JzLXRleHQgPSAleDgwLUZGCi0gICAgcmV0dXJuIChjID49
IDB4ODAgJiYgYyA8PSAweEZGKTsKLX0KLQotLy8gU2VlIFJGQyA3MjMwLCBTZWN0aW9uIDMuMi42
Lgotc3RhdGljIGJvb2wgaXNDb21tZW50VGV4dENoYXJhY3Rlcihjb25zdCBVQ2hhciBjKQotewot
ICAgIC8vIGN0ZXh0ID0gSFRBQiAvIFNQCi0gICAgLy8gICAgICAgLyAleDIxLTI3IDsgJyEnLScn
JwotICAgIC8vICAgICAgIC8gJXgyQS01QiA7ICcqJy0nWycKLSAgICAvLyAgICAgICAvICV4NUQt
N0UgOyAnXSctJ34nCi0gICAgLy8gICAgICAgLyBvYnMtdGV4dAotICAgIHJldHVybiAoYyA9PSAn
XHQnIHx8IGMgPT0gJyAnCi0gICAgICAgIHx8IChjID49IDB4MjEgJiYgYyA8PSAweDI3KQotICAg
ICAgICB8fCAoYyA+PSAweDJBICYmIGMgPD0gMHg1QikKLSAgICAgICAgfHwgKGMgPj0gMHg1RCAm
JiBjIDw9IDB4N0UpCi0gICAgICAgIHx8IGlzT2N0ZWN0SW5GaWVsZENvbnRlbnRDaGFyYWN0ZXIo
YykpOwotfQotCiAvLyBTZWUgUkZDIDcyMzEsIFNlY3Rpb24gNS4zLjIuCiBib29sIGlzVmFsaWRB
Y2NlcHRIZWFkZXJWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogewpAQCAtMTkwLDcgKzE0OSw3
IEBAIGJvb2wgaXNWYWxpZEFjY2VwdEhlYWRlclZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAg
ICAgICAgIGlmIChjID09IDB4N0YgfHwgKGMgPCAweDIwICYmIGMgIT0gJ1x0JykpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKGlzRGVsaW1pdGVyQ2hhcmFjdGVyKGMp
KQorICAgICAgICBpZiAoUkZDNzIzMDo6aXNEZWxpbWl0ZXIoYykpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogICAgIApAQCAtMjE0LDEzICsxNzMsNiBAQCBib29sIGlzVmFsaWRM
YW5ndWFnZUhlYWRlclZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLS8vIFNlZSBSRkMgNzIzMCwgU2VjdGlvbiAzLjIuNi4KLXN0YXRpYyBpbmxpbmUgYm9v
bCBpc0hUVFBUb2tlbkNoYXJhY3Rlcihjb25zdCBVQ2hhciBjKQotewotICAgIC8vIEFueSBWQ0hB
UiwgZXhjZXB0IGRlbGltaXRlcnMKLSAgICByZXR1cm4gYyA+IDB4MjAgJiYgYyA8IDB4N0YgJiYg
IWlzRGVsaW1pdGVyQ2hhcmFjdGVyKGMpOwotfQotCiAvLyBTZWUgUkZDIDcyMzAsIFNlY3Rpb24g
My4yLjYuCiBib29sIGlzVmFsaWRIVFRQVG9rZW4oY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKQEAg
LTIyOCw3ICsxODAsNyBAQCBib29sIGlzVmFsaWRIVFRQVG9rZW4oY29uc3QgU3RyaW5nJiB2YWx1
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGF1dG8gdmFsdWVTdHJpbmdWaWV3ID0gU3Ry
aW5nVmlldyh2YWx1ZSk7CiAgICAgZm9yIChVQ2hhciBjIDogdmFsdWVTdHJpbmdWaWV3LmNvZGVV
bml0cygpKSB7Ci0gICAgICAgIGlmICghaXNIVFRQVG9rZW5DaGFyYWN0ZXIoYykpCisgICAgICAg
IGlmICghUkZDNzIzMDo6aXNUb2tlbkNoYXJhY3RlcihjKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CkBAIC0yNjEsMTMgKzIxMyw4IEBAIHN0YXRp
YyBjb25zdGV4cHIgYXV0byBRdW90ZWRQYWlyU3RhcnRDaGFyYWN0ZXIgPSAnXFwnOwogc3RhdGlj
IGJvb2wgc2tpcFF1b3RlZFBhaXIoY29uc3QgU3RyaW5nJiB2YWx1ZSwgdW5zaWduZWQmIHBvcykK
IHsKICAgICAvLyBxdW90ZWQtcGFpciA9ICJcIiAoIEhUQUIgLyBTUCAvIFZDSEFSIC8gb2JzLXRl
eHQgKQotICAgIGlmICghc2tpcENoYXJhY3Rlcih2YWx1ZSwgcG9zLCBRdW90ZWRQYWlyU3RhcnRD
aGFyYWN0ZXIpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gc2tpcENoYXJh
Y3Rlcih2YWx1ZSwgcG9zLCAnXHQnKQotICAgICAgICB8fCBza2lwQ2hhcmFjdGVyKHZhbHVlLCBw
b3MsICcgJykKLSAgICAgICAgfHwgc2tpcENoYXJhY3Rlcih2YWx1ZSwgcG9zLCBpc1Zpc2libGVD
aGFyYWN0ZXIpCi0gICAgICAgIHx8IHNraXBDaGFyYWN0ZXIodmFsdWUsIHBvcywgaXNPY3RlY3RJ
bkZpZWxkQ29udGVudENoYXJhY3Rlcik7CisgICAgcmV0dXJuIHNraXBDaGFyYWN0ZXIodmFsdWUs
IHBvcywgUXVvdGVkUGFpclN0YXJ0Q2hhcmFjdGVyKQorICAgICAgICAmJiBza2lwQ2hhcmFjdGVy
KHZhbHVlLCBwb3MsIFJGQzcyMzA6OmlzUXVvdGVkUGFpclNlY29uZE9jdGV0KTsKIH0KIAogLy8g
VHJ1ZSBpZiBhIGNvbW1lbnQgaXMgcHJlc2VudCwgaW5jcmVtZW50aW5nICJwb3MiIHRvIHRoZSBw
b3NpdGlvbiBhZnRlciB0aGUgY29tbWVudC4KQEAgLTI5NCw3ICsyNDEsNyBAQCBzdGF0aWMgYm9v
bCBza2lwQ29tbWVudChjb25zdCBTdHJpbmcmIHZhbHVlLCB1bnNpZ25lZCYgcG9zKQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZh
dWx0OgotICAgICAgICAgICAgaWYgKCFza2lwV2hpbGUodmFsdWUsIHBvcywgaXNDb21tZW50VGV4
dENoYXJhY3RlcikpCisgICAgICAgICAgICBpZiAoIXNraXBXaGlsZSh2YWx1ZSwgcG9zLCBSRkM3
MjMwOjppc0NvbW1lbnRUZXh0KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIH0KICAgICB9CkBAIC0zMDYsNyArMjUzLDcgQEAgc3RhdGljIGJvb2wgc2tpcENvbW1lbnQo
Y29uc3QgU3RyaW5nJiB2YWx1ZSwgdW5zaWduZWQmIHBvcykKIC8vIFNlZSBSRkMgNzIzMCwgU2Vj
dGlvbiAzLjIuNi4KIHN0YXRpYyBib29sIHNraXBIVFRQVG9rZW4oY29uc3QgU3RyaW5nJiB2YWx1
ZSwgdW5zaWduZWQmIHBvcykKIHsKLSAgICByZXR1cm4gc2tpcFdoaWxlKHZhbHVlLCBwb3MsIGlz
SFRUUFRva2VuQ2hhcmFjdGVyKTsKKyAgICByZXR1cm4gc2tpcFdoaWxlKHZhbHVlLCBwb3MsIFJG
QzcyMzA6OmlzVG9rZW5DaGFyYWN0ZXIpOwogfQogCiAvLyBUcnVlIGlmIGEgcHJvZHVjdCBzcGVj
aWZpZXIgKGFzIGluIGFuIFVzZXItQWdlbnQgaGVhZGVyKSBpcyBwcmVzZW50LCBpbmNyZW1lbnRp
bmcgInBvcyIgdG8gdGhlIHBvc2l0aW9uIGFmdGVyIGl0Lgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>