activeandtrueXmarkXactiveandfalseYmarkfalseactiveiftrueXYmarkXactiveiffalseXYmarkYactiveadd0XmarkXactiveaddsXYmarksaddXYactivefirst0XmarknilactivefirstsXconsYZmarkconsYfirstXZactivefromXmarkconsXfromsXactiveandX1X2andactiveX1X2activeifX1X2X3ifactiveX1X2X3activeaddX1X2addactiveX1X2activefirstX1X2firstactiveX1X2activefirstX1X2firstX1activeX2andmarkX1X2markandX1X2ifmarkX1X2X3markifX1X2X3addmarkX1X2markaddX1X2firstmarkX1X2markfirstX1X2firstX1markX2markfirstX1X2properandX1X2andproperX1properX2propertrueoktrueproperfalseokfalseproperifX1X2X3ifproperX1properX2properX3properaddX1X2addproperX1properX2proper0ok0propersXsproperXproperfirstX1X2firstproperX1properX2properniloknilproperconsX1X2consproperX1properX2properfromXfromproperXandokX1okX2okandX1X2ifokX1okX2okX3okifX1X2X3addokX1okX2okaddX1X2sokXoksXfirstokX1okX2okfirstX1X2consokX1okX2okconsX1X2fromokXokfromXtopmarkXtopproperXtopokXtopactiveXactiveaddsXYsaddXYactiveaddsXYaddXYactivefirstsXconsYZconsYfirstXZactivefirstsXconsYZfirstXZactivefromXconsXfromsXactivefromXfromsXactivefromXsXactiveandX1X2andactiveX1X2activeandX1X2activeX1activeifX1X2X3ifactiveX1X2X3activeifX1X2X3activeX1activeaddX1X2addactiveX1X2activeaddX1X2activeX1activefirstX1X2firstactiveX1X2activefirstX1X2activeX1activefirstX1X2firstX1activeX2activefirstX1X2activeX2andmarkX1X2andX1X2ifmarkX1X2X3ifX1X2X3addmarkX1X2addX1X2firstmarkX1X2firstX1X2firstX1markX2firstX1X2properandX1X2andproperX1properX2properandX1X2properX1properandX1X2properX2properifX1X2X3ifproperX1properX2properX3properifX1X2X3properX1properifX1X2X3properX2properifX1X2X3properX3properaddX1X2addproperX1properX2properaddX1X2properX1properaddX1X2properX2propersXsproperXpropersXproperXproperfirstX1X2firstproperX1properX2properfirstX1X2properX1properfirstX1X2properX2properconsX1X2consproperX1properX2properconsX1X2properX1properconsX1X2properX2properfromXfromproperXproperfromXproperXandokX1okX2andX1X2ifokX1okX2okX3ifX1X2X3addokX1okX2addX1X2sokXsXfirstokX1okX2firstX1X2consokX1okX2consX1X2fromokXfromXtopmarkXtopproperXtopmarkXproperXtopokXtopactiveXtopokXactiveXtruetopokXtopactiveXtopmarkXtopproperXtrue1234567891011121314151617181920212223242526272829301top111ok111active111mark1111proper111and211112true00false00if31111213add211112000s10first211112nil00cons20from11top10topokXtopactiveX1top111ok1111active111and211true00mark10false00if311add211000s111first211nil00cons212from111proper11top10topokXactiveXfalse24689111213151618192123242526272829activeifX1X2X3activeX1activeandX1X2activeX1activeaddX1X2activeX1activefirstX1X2activeX1activefirstX1X2activeX2true24691316192122232425262728active11activeaddsXYsaddXYfalse246791011131416171921222324252627activeaddsXYaddXYfalse2471114171920212223242526activefirstsXconsYZconsYfirstXZfalse19activefirstsXconsYZfirstXZfalse18activefromXconsXfromsXfalse18activefromXfromsXfalse17activefromXsXfalse17activeandX1X2andactiveX1X2false16activeifX1X2X3ifactiveX1X2X3false15activeaddX1X2addactiveX1X2false15activefirstX1X2firstactiveX1X2false14activefirstX1X2firstX1activeX2false13topmarkXproperXfalse12properandX1X2properX2properandX1X2properX1properifX1X2X3properX1properifX1X2X3properX2properifX1X2X3properX3properaddX1X2properX1properaddX1X2properX2propersXproperXproperfirstX1X2properX1properfirstX1X2properX2properconsX1X2properX1properconsX1X2properX2properfromXproperXtrue12proper11properandX1X2andproperX1properX2false11andokX1okX2andX1X2andmarkX1X2andX1X2true10and22andmarkX1X2andX1X2and21properifX1X2X3ifproperX1properX2properX3false10ifokX1okX2okX3ifX1X2X3ifmarkX1X2X3ifX1X2X3true9if32ifmarkX1X2X3ifX1X2X3if31properaddX1X2addproperX1properX2false8addokX1okX2addX1X2addmarkX1X2addX1X2true8add22addmarkX1X2addX1X2add21properfirstX1X2firstproperX1properX2false7firstX1markX2firstX1X2firstmarkX1X2firstX1X2firstokX1okX2firstX1X2truefirst22firstmarkX1X2firstX1X2first21propersXsproperXfalseproperconsX1X2consproperX1properX2falseproperfromXfromproperXfalsesokXsXtrues11consokX1okX2consX1X2truecons22fromokXfromXtruefrom11