activeandtrueXmarkXactiveandfalseYmarkfalseactiveiftrueXYmarkXactiveiffalseXYmarkYactiveadd0XmarkXactiveaddsXYmarksaddXYactivefirst0XmarknilactivefirstsXconsYZmarkconsYfirstXZactivefromXmarkconsXfromsXactiveandX1X2andactiveX1X2activeifX1X2X3ifactiveX1X2X3activeaddX1X2addactiveX1X2activefirstX1X2firstactiveX1X2activefirstX1X2firstX1activeX2andmarkX1X2markandX1X2ifmarkX1X2X3markifX1X2X3addmarkX1X2markaddX1X2firstmarkX1X2markfirstX1X2firstX1markX2markfirstX1X2properandX1X2andproperX1properX2propertrueoktrueproperfalseokfalseproperifX1X2X3ifproperX1properX2properX3properaddX1X2addproperX1properX2proper0ok0propersXsproperXproperfirstX1X2firstproperX1properX2properniloknilproperconsX1X2consproperX1properX2properfromXfromproperXandokX1okX2okandX1X2ifokX1okX2okX3okifX1X2X3addokX1okX2okaddX1X2sokXoksXfirstokX1okX2okfirstX1X2consokX1okX2okconsX1X2fromokXokfromXtopmarkXtopproperXtopokXtopactiveXactiveaddsXYaddXYactiveaddsXYsaddXYactivefirstsXconsYZfirstXZactivefirstsXconsYZconsYfirstXZactivefromXsXactivefromXfromsXactivefromXconsXfromsXactiveandX1X2activeX1activeandX1X2andactiveX1X2activeifX1X2X3activeX1activeifX1X2X3ifactiveX1X2X3activeaddX1X2activeX1activeaddX1X2addactiveX1X2activefirstX1X2activeX1activefirstX1X2firstactiveX1X2activefirstX1X2activeX2activefirstX1X2firstX1activeX2andmarkX1X2andX1X2ifmarkX1X2X3ifX1X2X3addmarkX1X2addX1X2firstmarkX1X2firstX1X2firstX1markX2firstX1X2properandX1X2properX2properandX1X2properX1properandX1X2andproperX1properX2properifX1X2X3properX3properifX1X2X3properX2properifX1X2X3properX1properifX1X2X3ifproperX1properX2properX3properaddX1X2properX2properaddX1X2properX1properaddX1X2addproperX1properX2propersXproperXpropersXsproperXproperfirstX1X2properX2properfirstX1X2properX1properfirstX1X2firstproperX1properX2properconsX1X2properX2properconsX1X2properX1properconsX1X2consproperX1properX2properfromXproperXproperfromXfromproperXandokX1okX2andX1X2ifokX1okX2okX3ifX1X2X3addokX1okX2addX1X2sokXsXfirstokX1okX2firstX1X2consokX1okX2consX1X2fromokXfromXtopmarkXproperXtopmarkXtopproperXtopokXactiveXtopokXtopactiveXtruetopokXtopactiveXtopmarkXtopproperXtrue1top1110top12114ok1110proper1110from1012cons201021nil04first2112210s10110add231222000if311922310false09mark1111active1110and211122true00topokXtopactiveX1top1218top10114ok1212proper1412from1212cons21210215nil01first201120s18114add201120001if30112030false00mark1010active1210and241022true06topokXactiveXfalseactiveandX1X2activeX1activeifX1X2X3activeX1activeaddX1X2activeX1activefirstX1X2activeX1activefirstX1X2activeX2true1active1510top1012ok1013proper1210from11112cons201121nil04first211820s1210add261120002if31182430false03mark1110active1410and211225true02activeifX1X2X3activeX1activeaddX1X2activeX1activefirstX1X2activeX1activefirstX1X2activeX21active1110top1013ok1110proper1210from1810cons201220nil08first281421s1011add211020000if32102030false05mark1010active1410and201020true04activeifX1X2X3activeX1activeaddX1X2activeX11active1110top1018ok1010proper1210from1210cons2010214nil00first201020s1210add281821003if38102030false02mark1010active1210and2111229true02activeifX1X2X3activeX11active1118top1010ok1612proper1810from1411cons241020nil02first221522s1110add211020001if31142131false01mark1010active1110and201420true06activefirstX1X2firstX1activeX2falseactivefirstX1X2firstactiveX1X2falseactiveaddX1X2addactiveX1X2falseactiveifX1X2X3ifactiveX1X2X3falseactiveandX1X2andactiveX1X2falseactivefromXconsXfromsXfalseactivefromXfromsXfalseactivefromXsXfalseactivefirstsXconsYZconsYfirstXZfalseactivefirstsXconsYZfirstXZfalseactiveaddsXYsaddXYfalseactiveaddsXYaddXYfalsetopmarkXproperXfalseproperandX1X2properX2properandX1X2properX1properifX1X2X3properX3properifX1X2X3properX2properifX1X2X3properX1properaddX1X2properX2properaddX1X2properX1propersXproperXproperfirstX1X2properX2properfirstX1X2properX1properconsX1X2properX2properconsX1X2properX1properfromXproperXtrue1proper1210top1010ok1010proper1510from1210cons221120nil02first211120s1110add221224001if31122230false00mark1110active1815and211120true01properandX1X2properX2properandX1X2properX1properifX1X2X3properX3properifX1X2X3properX2properifX1X2X3properX1propersXproperXproperfirstX1X2properX2properfirstX1X2properX1properconsX1X2properX2properconsX1X2properX1properfromXproperX1proper1410top1010ok1010proper1110from1110cons2811120nil00first211123s1410add201120000if31142230false01mark1010active1110and2121220true04properandX1X2properX2properandX1X2properX1properifX1X2X3properX3properifX1X2X3properX2properifX1X2X3properX1propersXproperXproperconsX1X2properX2properconsX1X2properX1properfromXproperX1proper1210top1018ok1010proper1110from1110cons211120nil01first201020s1112add2210200010if31112830false02mark1010active1110and211120true01properandX1X2properX2properandX1X2properX1properifX1X2X3properX3properifX1X2X3properX2properifX1X2X3properX1properconsX1X2properX2properconsX1X2properX1properfromXproperX1proper1210top1018ok1010proper1410from1810cons211228nil06first211023s1010add201822002if34122438false00mark1010active1410and281826true00properfromXproperX1proper110110top1012ok1110proper1512from1515cons281526nil01first201020s1010add211020000if31102030false00mark1010active1010and201020true010properfromXfromproperXfalsefromokXfromXtrue1from1110top1011ok1111proper1310from1310cons221028nil08first2110210s1810add211020001if30102130false01mark1010active1410and201920true05properconsX1X2consproperX1properX2falseconsokX1okX2consX1X2true1cons201626top1010ok1418proper11012from1212cons211020nil04first221222s1412add241024001if30102130false04mark1010active1210and201120true01properfirstX1X2firstproperX1properX2falsefirstmarkX1X2firstX1X2firstX1markX2firstX1X2firstokX1okX2firstX1X2true1first211021top10110ok1810proper1810from1210cons201020nil00first211120s1010add211120004if31112430false06mark1111active1311and211220true00firstX1markX2firstX1X2firstokX1okX2firstX1X21first241020top1012ok1811proper1011from1110cons201120nil00first201120s1110add211020000if31102030false00mark1010active1810and211020true00firstX1markX2firstX1X21first2012213top1011ok1010proper1410from1011cons201021nil02first281820s1010add221822001if34192831false04mark1111active1210and261821true03propersXsproperXfalsesokXsXtrue1s1110top1011ok1111proper1310from1310cons221028nil08first2110210s1810add211020001if30102130false01mark1010active1410and201920true05properaddX1X2addproperX1properX2falseaddmarkX1X2addX1X2addokX1okX2addX1X2true1add201220top1010ok1218proper1618from1110cons241026nil00first201120s1212add201120001if34102035false00mark1010active1211and251029true00addmarkX1X2addX1X21add2210213top1011ok1010proper1410from1011cons201021nil02first281820s1010add221822001if34192831false04mark1111active1210and261821true03properifX1X2X3ifproperX1properX2properX3falseifmarkX1X2X3ifX1X2X3ifokX1okX2okX3ifX1X2X3true1if30142030top10114ok1218proper1410from1110cons221220nil05first2015212s1319add201420004if301224310false04mark1010active1210and201220true011ifmarkX1X2X3ifX1X2X31if31102032top1018ok1010proper1210from1511cons261020nil08first211120s1313add211520004if31142131false00mark1111active1812and241422true01properandX1X2andproperX1properX2falseandmarkX1X2andX1X2andokX1okX2andX1X2true1and201220top1010ok1218proper1618from1110cons241026nil00first201120s1212add201120001if34102035false00mark1010active1211and251029true00andmarkX1X2andX1X21and2210213top1011ok1010proper1410from1011cons201021nil02first281820s1010add221822001if34192831false04mark1111active1210and261821true03