activefgXYmarkfXfgXYactivefX1X2factiveX1X2activegXgactiveXfmarkX1X2markfX1X2gmarkXmarkgXproperfX1X2fproperX1properX2propergXgproperXfokX1okX2okfX1X2gokXokgXtopmarkXtopproperXtopokXtopactiveXactivefgXYfXfgXYactivefX1X2activeX1activefX1X2factiveX1X2activegXactiveXactivegXgactiveXfmarkX1X2fX1X2gmarkXgXproperfX1X2properX2properfX1X2properX1properfX1X2fproperX1properX2propergXproperXpropergXgproperXfokX1okX2fX1X2gokXgXtopmarkXproperXtopmarkXtopproperXtopokXactiveXtopokXtopactiveXtruetopokXtopactiveXtopmarkXtopproperXtrue1top11010top1412ok1114proper1010mark1013active1114f211020g1110topokXtopactiveX1top1110top1210ok1114proper1010mark1010active1010f211020g1210topokXactiveXfalseactivefX1X2activeX1activegXactiveXtrueactive11activegXgactiveXfalseactivefX1X2factiveX1X2falseactivefgXYfXfgXYfalsetopmarkXproperXfalseproperfX1X2properX2properfX1X2properX1propergXproperXtrueproper11propergXgproperXfalsegmarkXgXgokXgXtrueg11properfX1X2fproperX1properX2falsefmarkX1X2fX1X2fokX1okX2fX1X2truef22fmarkX1X2fX1X2f21