<?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>148725</bug_id>
          
          <creation_ts>2015-09-02 15:11:38 -0700</creation_ts>
          <short_desc>Replace all the various forms of branchStructure() with a single method in AssemblyHelpers</short_desc>
          <delta_ts>2015-09-02 20:17:32 -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>JavaScriptCore</component>
          <version>Other</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>148718</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1122926</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-09-02 15:11:38 -0700</bug_when>
    <thetext>Currently there are the following branchStructure() implementations:

JSC::JIT::branchStructure()
JSC::branchStructure()
JSC::DFG::JITCompiler::branchStructure()

They all do the same thing.  There should only be one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122930</commentid>
    <comment_count>1</comment_count>
      <attachid>260446</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-09-02 15:19:33 -0700</bug_when>
    <thetext>Created attachment 260446
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122934</commentid>
    <comment_count>2</comment_count>
      <attachid>260446</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-09-02 15:24:30 -0700</bug_when>
    <thetext>Comment on attachment 260446
the patch

r=me
I like duplicate code removal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123044</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-09-02 20:17:32 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/189272</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260446</attachid>
            <date>2015-09-02 15:19:33 -0700</date>
            <delta_ts>2015-09-02 15:24:30 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>12765</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg5MjY2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBA
CisyMDE1LTA5LTAyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVwbGFjZSBhbGwgdGhlIHZhcmlvdXMgZm9ybXMgb2YgYnJhbmNoU3RydWN0dXJlKCkgd2l0aCBh
IHNpbmdsZSBtZXRob2QgaW4gQXNzZW1ibHlIZWxwZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg3MjUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmV2aW91c2x5IHRoZXJlIHdlcmUgdGhlIGZvbGxv
d2luZyBicmFuY2hTdHJ1Y3R1cmUoKSBpbXBsZW1lbnRhdGlvbnM6CisKKyAgICAgICAgSlNDOjpK
SVQ6OmJyYW5jaFN0cnVjdHVyZSgpCisgICAgICAgIEpTQzo6YnJhbmNoU3RydWN0dXJlKCkKKyAg
ICAgICAgSlNDOjpERkc6OkpJVENvbXBpbGVyOjpicmFuY2hTdHJ1Y3R1cmUoKQorCisgICAgICAg
IFRoZXkgYWxsIGRpZCB0aGUgc2FtZSB0aGluZy4gIE5vdyB0aGVyZSBpcyBvbmx5IG9uZSwgQXNz
ZW1ibHlIZWxwZXJzOjpicmFuY2hTdHJ1Y3R1cmUoKS4KKworICAgICAgICAqIGRmZy9ERkdKSVRD
b21waWxlci5oOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpicmFuY2hXZWFrU3Ry
dWN0dXJlKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6aml0Q29kZSk6CisgICAg
ICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmJyYW5jaFN0cnVjdHVyZVB0cik6IERlbGV0ZWQu
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvU3RyaW5nT3JDYWxsU3RyaW5nQ29uc3RydWN0b3JP
bkNlbGwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTdHJp
bmdPclN0cmluZ09iamVjdCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN0cmluZ09iamVjdEZv
clN0cnVjdHVyZSk6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAo
SlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmRW1wdHkpOgorICAgICAgICAoSlNDOjpBc3Nl
bWJseUhlbHBlcnM6OmJyYW5jaFN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVs
cGVyczo6YWRkcmVzc0ZvckJ5dGVPZmZzZXQpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAg
ICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OmJyYW5jaFN0cnVjdHVy
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmJyYW5jaFN0cnVjdHVyZSk6IERlbGV0ZWQuCisg
ICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpz
dHJpbmdHZXRCeVZhbFN0dWJHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFj
Y2VzczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpzdHJpbmdHZXRCeVZhbFN0dWJHZW5l
cmF0b3IpOgorICAgICAgICAqIGppdC9SZXBhdGNoLmNwcDoKKyAgICAgICAgKEpTQzo6Y2hlY2tP
YmplY3RQcm9wZXJ0eUNvbmRpdGlvbik6CisgICAgICAgIChKU0M6OmNoZWNrT2JqZWN0UHJvcGVy
dHlDb25kaXRpb25zKToKKyAgICAgICAgKEpTQzo6Z2VuZXJhdGVCeUlkU3R1Yik6CisgICAgICAg
IChKU0M6OmVtaXRQdXRSZXBsYWNlU3R1Yik6CisgICAgICAgIChKU0M6OmVtaXRQdXRUcmFuc2l0
aW9uU3R1Yik6CisgICAgICAgIChKU0M6OnRyeVJlcGF0Y2hJbik6CisgICAgICAgICogaml0L1Nw
ZWNpYWxpemVkVGh1bmtKSVQuaDoKKyAgICAgICAgKEpTQzo6U3BlY2lhbGl6ZWRUaHVua0pJVDo6
bG9hZEpTU3RyaW5nQXJndW1lbnQpOgorCiAyMDE1LTA5LTAyICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHNvbWUgdW51c2VkIG1ldGhvZHMgZnJvbSBH
ZXRCeUlkQWNjZXNzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21w
aWxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29t
cGlsZXIuaAkocmV2aXNpb24gMTg5MjY2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdKSVRDb21waWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTQsMTYgKzI1NCw2IEBAIHB1Ymxp
YzoKICNlbmRpZgogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgSnVtcCBi
cmFuY2hTdHJ1Y3R1cmVQdHIoUmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBUIGxlZnQsIFN0cnVj
dHVyZSogc3RydWN0dXJlKQotICAgIHsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICByZXR1
cm4gYnJhbmNoMzIoY29uZCwgbGVmdCwgVHJ1c3RlZEltbTMyKHN0cnVjdHVyZS0+aWQoKSkpOwot
I2Vsc2UKLSAgICAgICAgcmV0dXJuIGJyYW5jaFB0cihjb25kLCBsZWZ0LCBUcnVzdGVkSW1tUHRy
KHN0cnVjdHVyZSkpOwotI2VuZGlmCi0gICAgfQotCiAgICAgdm9pZCBub3RpY2VPU1JFbnRyeShC
YXNpY0Jsb2NrJiwgSklUQ29tcGlsZXI6OkxhYmVsIGJsb2NrSGVhZCwgTGlua0J1ZmZlciYpOwog
ICAgIAogICAgIFJlZlB0cjxKSVRDb2RlPiBqaXRDb2RlKCkgeyByZXR1cm4gbV9qaXRDb2RlOyB9
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAkocmV2aXNpb24gMTg5MjY2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzNTEsNyArNTM1MSw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb1N0cmluZ09yQ2EKICAgICAgICAgR1BSUmVnIHJl
c3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKIAogICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGls
ZXI6OkFkZHJlc3Mob3AxR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCByZXN1bHRH
UFIpOwotICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBpc1N0cmluZyA9IG1faml0LmJyYW5jaFN0
cnVjdHVyZVB0cigKKyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgaXNTdHJpbmcgPSBtX2ppdC5i
cmFuY2hTdHJ1Y3R1cmUoCiAgICAgICAgICAgICBKSVRDb21waWxlcjo6RXF1YWwsCiAgICAgICAg
ICAgICByZXN1bHRHUFIsCiAgICAgICAgICAgICBtX2ppdC52bSgpLT5zdHJpbmdTdHJ1Y3R1cmUu
Z2V0KCkpOwpAQCAtNTc3MSw3ICs1NzcxLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3Vs
YXRlU3RyaW5nT3JTdAogICAgIEdQUlJlZyBzdHJ1Y3R1cmVJREdQUiA9IHN0cnVjdHVyZUlELmdw
cigpOwogCiAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpBZGRyZXNzKGdwciwgSlNDZWxs
OjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgc3RydWN0dXJlSURHUFIpOyAKLSAgICBKSVRDb21waWxl
cjo6SnVtcCBpc1N0cmluZyA9IG1faml0LmJyYW5jaFN0cnVjdHVyZVB0cigKKyAgICBKSVRDb21w
aWxlcjo6SnVtcCBpc1N0cmluZyA9IG1faml0LmJyYW5jaFN0cnVjdHVyZSgKICAgICAgICAgSklU
Q29tcGlsZXI6OkVxdWFsLAogICAgICAgICBzdHJ1Y3R1cmVJREdQUiwgCiAgICAgICAgIG1faml0
LnZtKCktPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCShyZXZpc2lvbiAxODkyNjYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHdvcmtpbmcgY29weSkK
QEAgLTMyNjksNyArMzI2OSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN0cmlu
Z09iamUKICAgICBpZiAoIW1fc3RhdGUuZm9yTm9kZShlZGdlKS5tX3N0cnVjdHVyZS5pc1N1YnNl
dE9mKFN0cnVjdHVyZVNldChzdHJpbmdPYmplY3RTdHJ1Y3R1cmUpKSkgewogICAgICAgICBzcGVj
dWxhdGlvbkNoZWNrKAogICAgICAgICAgICAgTm90U3RyaW5nT2JqZWN0LCBKU1ZhbHVlUmVncygp
LCAwLAotICAgICAgICAgICAgbV9qaXQuYnJhbmNoU3RydWN0dXJlUHRyKAorICAgICAgICAgICAg
bV9qaXQuYnJhbmNoU3RydWN0dXJlKAogICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpOb3RF
cXVhbCwgc3RydWN0dXJlTG9jYXRpb24sIHN0cmluZ09iamVjdFN0cnVjdHVyZSkpOwogICAgIH0K
IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAko
cmV2aXNpb24gMTg5MjY2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhl
bHBlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNTY0LDYgKzU2NCwxNiBAQCBwdWJsaWM6CiAjZW5k
aWYKICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBKdW1wIGJyYW5j
aFN0cnVjdHVyZShSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmRpdGlvbiwgVCBsZWZ0SGFuZFNpZGUs
IFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAg
ICByZXR1cm4gYnJhbmNoMzIoY29uZGl0aW9uLCBsZWZ0SGFuZFNpZGUsIFRydXN0ZWRJbW0zMihz
dHJ1Y3R1cmUtPmlkKCkpKTsKKyNlbHNlCisgICAgICAgIHJldHVybiBicmFuY2hQdHIoY29uZGl0
aW9uLCBsZWZ0SGFuZFNpZGUsIFRydXN0ZWRJbW1QdHIoc3RydWN0dXJlKSk7CisjZW5kaWYKKyAg
ICB9CisgICAgCiAgICAgc3RhdGljIEFkZHJlc3MgYWRkcmVzc0ZvckJ5dGVPZmZzZXQocHRyZGlm
Zl90IGJ5dGVPZmZzZXQpCiAgICAgewogICAgICAgICByZXR1cm4gQWRkcmVzcyhHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3RlciwgYnl0ZU9mZnNldCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
LmgJKHJldmlzaW9uIDE4OTI2NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQwNCw4ICs0MDQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
ICAgICBlbnVtIEZpbmFsT2JqZWN0TW9kZSB7IE1heUJlRmluYWwsIEtub3duTm90RmluYWwgfTsK
IAotICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gSnVtcCBicmFuY2hTdHJ1Y3R1cmUoUmVs
YXRpb25hbENvbmRpdGlvbiwgVCBsZWZ0SGFuZFNpZGUsIFN0cnVjdHVyZSopOwotCiAjaWYgVVNF
KEpTVkFMVUUzMl82NCkKICAgICAgICAgYm9vbCBnZXRPcGVyYW5kQ29uc3RhbnRJbW1lZGlhdGVJ
bnQoaW50IG9wMSwgaW50IG9wMiwgaW50JiBvcCwgaW50MzJfdCYgY29uc3RhbnQpOwogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAkocmV2aXNpb24gMTg5MjY2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEyNTksMjYgKzEyNTksNiBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjplbWl0VGFnQXNC
b29sSW1tCiAKICNlbmRpZiAvLyBVU0UoSlNWQUxVRTMyXzY0KQogCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KLUpJVDo6SnVtcCBKSVQ6OmJyYW5jaFN0cnVjdHVyZShSZWxhdGlvbmFsQ29uZGl0aW9u
IGNvbmRpdGlvbiwgVCBsZWZ0SGFuZFNpZGUsIFN0cnVjdHVyZSogc3RydWN0dXJlKQotewotI2lm
IFVTRShKU1ZBTFVFNjQpCi0gICAgcmV0dXJuIGJyYW5jaDMyKGNvbmRpdGlvbiwgbGVmdEhhbmRT
aWRlLCBUcnVzdGVkSW1tMzIoc3RydWN0dXJlLT5pZCgpKSk7Ci0jZWxzZQotICAgIHJldHVybiBi
cmFuY2hQdHIoY29uZGl0aW9uLCBsZWZ0SGFuZFNpZGUsIFRydXN0ZWRJbW1QdHIoc3RydWN0dXJl
KSk7Ci0jZW5kaWYKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1NYWNyb0Fzc2VtYmxlcjo6
SnVtcCBicmFuY2hTdHJ1Y3R1cmUoTWFjcm9Bc3NlbWJsZXImIGppdCwgTWFjcm9Bc3NlbWJsZXI6
OlJlbGF0aW9uYWxDb25kaXRpb24gY29uZGl0aW9uLCBUIGxlZnRIYW5kU2lkZSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCi17Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICByZXR1cm4gaml0LmJyYW5j
aDMyKGNvbmRpdGlvbiwgbGVmdEhhbmRTaWRlLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KHN0cnVjdHVyZS0+aWQoKSkpOwotI2Vsc2UKLSAgICByZXR1cm4gaml0LmJyYW5jaFB0cihjb25k
aXRpb24sIGxlZnRIYW5kU2lkZSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoc3RydWN0
dXJlKSk7Ci0jZW5kaWYKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFC
TEUoSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vz
czMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFBy
b3BlcnR5QWNjZXNzMzJfNjQuY3BwCShyZXZpc2lvbiAxODkyNjYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDgsNyArMTA4LDcgQEAgSklUOjpDb2RlUmVmIEpJVDo6c3RyaW5nR2V0QnlWYWxTdHViR2Vu
ZQogewogICAgIEpTSW50ZXJmYWNlSklUIGppdCh2bSk7CiAgICAgSnVtcExpc3QgZmFpbHVyZXM7
Ci0gICAgZmFpbHVyZXMuYXBwZW5kKEpTQzo6YnJhbmNoU3RydWN0dXJlKGppdCwgTm90RXF1YWws
IEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIHZtLT5zdHJpbmdT
dHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICBmYWlsdXJlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5v
dEVxdWFsLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCB2bS0+
c3RyaW5nU3RydWN0dXJlLmdldCgpKSk7CiAgICAgCiAgICAgLy8gTG9hZCBzdHJpbmcgbGVuZ3Ro
IHRvIHJlZ1QxLCBhbmQgc3RhcnQgdGhlIHByb2Nlc3Mgb2YgbG9hZGluZyB0aGUgZGF0YSBwb2lu
dGVyIGludG8gcmVnVDAKICAgICBqaXQubG9hZDMyKEFkZHJlc3MocmVnVDAsIFRodW5rSGVscGVy
czo6anNTdHJpbmdMZW5ndGhPZmZzZXQoKSksIHJlZ1QxKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCShyZXZpc2lvbiAxODkyNjYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBKSVQ6OkNvZGVSZWYgSklUOjpzdHJpbmdHZXRC
eVZhbFN0dWJHZW5lCiB7CiAgICAgSlNJbnRlcmZhY2VKSVQgaml0KHZtKTsKICAgICBKdW1wTGlz
dCBmYWlsdXJlczsKLSAgICBmYWlsdXJlcy5hcHBlbmQoSlNDOjpicmFuY2hTdHJ1Y3R1cmUoaml0
LAorICAgIGZhaWx1cmVzLmFwcGVuZChqaXQuYnJhbmNoU3RydWN0dXJlKAogICAgICAgICBOb3RF
cXVhbCwgCiAgICAgICAgIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQo
KSksIAogICAgICAgICB2bS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAJKHJldmlzaW9uIDE4OTI2NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNCw3ICsx
MzQsNyBAQCBzdGF0aWMgdm9pZCByZXBhdGNoQnlJZFNlbGZBY2Nlc3MoCiAKIHN0YXRpYyB2b2lk
IGNoZWNrT2JqZWN0UHJvcGVydHlDb25kaXRpb24oCiAgICAgY29uc3QgT2JqZWN0UHJvcGVydHlD
b25kaXRpb24mIGNvbmRpdGlvbiwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVyZVN0dWJJ
bmZvJiBzdHViSW5mbywKLSAgICBNYWNyb0Fzc2VtYmxlciYgaml0LCBNYWNyb0Fzc2VtYmxlcjo6
SnVtcExpc3QmIGZhaWx1cmVDYXNlcywgR1BSUmVnIHNjcmF0Y2hHUFIpCisgICAgQ0NhbGxIZWxw
ZXJzJiBqaXQsIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNhc2VzLCBHUFJSZWcg
c2NyYXRjaEdQUikKIHsKICAgICBpZiAoY29uZGl0aW9uLmlzV2F0Y2hhYmxlQXNzdW1pbmdJbXB1
cmVQcm9wZXJ0eVdhdGNocG9pbnQoKSkgewogICAgICAgICBjb25kaXRpb24ub2JqZWN0KCktPnN0
cnVjdHVyZSgpLT5hZGRUcmFuc2l0aW9uV2F0Y2hwb2ludCgKQEAgLTE0NiwxNCArMTQ2LDE0IEBA
IHN0YXRpYyB2b2lkIGNoZWNrT2JqZWN0UHJvcGVydHlDb25kaXRpb24KICAgICBSRUxFQVNFX0FT
U0VSVChjb25kaXRpb24uc3RydWN0dXJlRW5zdXJlc1ZhbGlkaXR5QXNzdW1pbmdJbXB1cmVQcm9w
ZXJ0eVdhdGNocG9pbnQoc3RydWN0dXJlKSk7CiAgICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW1QdHIoY29uZGl0aW9uLm9iamVjdCgpKSwgc2NyYXRjaEdQUik7CiAgICAgZmFp
bHVyZUNhc2VzLmFwcGVuZCgKLSAgICAgICAgYnJhbmNoU3RydWN0dXJlKAotICAgICAgICAgICAg
aml0LCBNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsCisgICAgICAgIGppdC5icmFuY2hTdHJ1Y3R1
cmUoCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsCiAgICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzY3JhdGNoR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zm
c2V0KCkpLCBzdHJ1Y3R1cmUpKTsKIH0KIAogc3RhdGljIHZvaWQgY2hlY2tPYmplY3RQcm9wZXJ0
eUNvbmRpdGlvbnMoCiAgICAgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQmIHNldCwg
Q29kZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbywKLSAgICBN
YWNyb0Fzc2VtYmxlciYgaml0LCBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmVDYXNl
cywgR1BSUmVnIHNjcmF0Y2hHUFIpCisgICAgQ0NhbGxIZWxwZXJzJiBqaXQsIE1hY3JvQXNzZW1i
bGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNhc2VzLCBHUFJSZWcgc2NyYXRjaEdQUikKIHsKICAgICBm
b3IgKGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uJiBjb25kaXRpb24gOiBzZXQpIHsKICAg
ICAgICAgY2hlY2tPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbigKQEAgLTMyMCwxNCArMzIwLDE0IEBA
IHN0YXRpYyBib29sIGdlbmVyYXRlQnlJZFN0dWIoCiAKICAgICAgICAgc3R1YkppdC5sb2FkUHRy
KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VHUFIsIEpTUHJveHk6OnRhcmdldE9mZnNldCgp
KSwgc2NyYXRjaEdQUik7CiAgICAgICAgIAotICAgICAgICBmYWlsdXJlQ2FzZXMuYXBwZW5kKGJy
YW5jaFN0cnVjdHVyZShzdHViSml0LAorICAgICAgICBmYWlsdXJlQ2FzZXMuYXBwZW5kKHN0dWJK
aXQuYnJhbmNoU3RydWN0dXJlKAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFs
LCAKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIEpTQ2Vs
bDo6c3RydWN0dXJlSURPZmZzZXQoKSksCiAgICAgICAgICAgICBzdHJ1Y3R1cmUpKTsKICAgICB9
IGVsc2UgewogICAgICAgICBiYXNlRm9yR2V0R1BSID0gYmFzZUdQUjsKIAotICAgICAgICBmYWls
dXJlQ2FzZXMuYXBwZW5kKGJyYW5jaFN0cnVjdHVyZShzdHViSml0LAorICAgICAgICBmYWlsdXJl
Q2FzZXMuYXBwZW5kKHN0dWJKaXQuYnJhbmNoU3RydWN0dXJlKAogICAgICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6Ok5vdEVxdWFsLCAKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNz
KGJhc2VGb3JHZXRHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIAogICAgICAgICAg
ICAgc3RydWN0dXJlKSk7CkBAIC05MTgsNyArOTE4LDcgQEAgc3RhdGljIGJvb2wgZW1pdFB1dFJl
cGxhY2VTdHViKAogCiAgICAgc2l6ZV90IG51bWJlck9mUGFkZGluZ0J5dGVzID0gYWxsb2NhdG9y
LnByZXNlcnZlUmV1c2VkUmVnaXN0ZXJzQnlQdXNoaW5nKHN0dWJKaXQpOwogCi0gICAgTWFjcm9B
c3NlbWJsZXI6Okp1bXAgYmFkU3RydWN0dXJlID0gYnJhbmNoU3RydWN0dXJlKHN0dWJKaXQsCisg
ICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgYmFkU3RydWN0dXJlID0gc3R1YkppdC5icmFuY2hTdHJ1
Y3R1cmUoCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwKICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwK
ICAgICAgICAgc3RydWN0dXJlKTsKQEAgLTEwNTksNyArMTA1OSw3IEBAIHN0YXRpYyBib29sIGVt
aXRQdXRUcmFuc2l0aW9uU3R1YigKICAgICAgICAgICAgIAogICAgIEFTU0VSVChvbGRTdHJ1Y3R1
cmUtPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SGFzQmVlbkludmFsaWRhdGVkKCkpOwogICAgIAot
ICAgIGZhaWx1cmVDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKHN0dWJKaXQsCisgICAgZmFp
bHVyZUNhc2VzLmFwcGVuZChzdHViSml0LmJyYW5jaFN0cnVjdHVyZSgKICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6Ok5vdEVxdWFsLCAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFz
ZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgCiAgICAgICAgIG9sZFN0cnVjdHVy
ZSkpOwpAQCAtMTUzMiw3ICsxNTMyLDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeVJl
cGF0Y2hJbigKICAgICAgICAgICAgIG5lZWRUb1Jlc3RvcmVTY3JhdGNoID0gZmFsc2U7CiAgICAg
ICAgIAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QgZmFpbHVyZUNhc2VzOwotICAg
ICAgICBmYWlsdXJlQ2FzZXMuYXBwZW5kKGJyYW5jaFN0cnVjdHVyZShzdHViSml0LAorICAgICAg
ICBmYWlsdXJlQ2FzZXMuYXBwZW5kKHN0dWJKaXQuYnJhbmNoU3RydWN0dXJlKAogICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3MoYmFzZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwKICAgICAgICAg
ICAgIHN0cnVjdHVyZSkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFs
aXplZFRodW5rSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9T
cGVjaWFsaXplZFRodW5rSklULmgJKHJldmlzaW9uIDE4OTI2NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVua0pJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw3
ICs2OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGxvYWRKU1N0cmluZ0FyZ3Vt
ZW50KFZNJiB2bSwgaW50IGFyZ3VtZW50LCBSZWdpc3RlcklEIGRzdCkKICAgICAgICAgewogICAg
ICAgICAgICAgbG9hZENlbGxBcmd1bWVudChhcmd1bWVudCwgZHN0KTsKLSAgICAgICAgICAgIG1f
ZmFpbHVyZXMuYXBwZW5kKGJyYW5jaFN0cnVjdHVyZSgqdGhpcywgTm90RXF1YWwsIAorICAgICAg
ICAgICAgbV9mYWlsdXJlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCAKICAgICAg
ICAgICAgICAgICBBZGRyZXNzKGRzdCwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgCiAg
ICAgICAgICAgICAgICAgdm0uc3RyaW5nU3RydWN0dXJlLmdldCgpKSk7CiAgICAgICAgIH0K
</data>
<flag name="review"
          id="285628"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>