-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdebuglog.json
7 lines (7 loc) · 141 KB
/
debuglog.json
1
2
3
4
5
6
7
{"name":"jengine","version":"0.0.0","main":"index.js","repository":"","author":"","license":"BSD","files":["src/utils.js","src/utils/events.js","src/utils/hierarchy.js","src/utils/object.js","src/utils/support.js","src/utils/core_helpers.js","src/jengine.js","src/renderers.js","src/renderers/core.js","src/renderers/canvas.js","src/game.js","src/scene.js","src/game_object.js"],"level":"info","message":"","timestamp":"2013-09-17T07:35:26.493Z"}
{"name":"jengine","version":"0.0.0","main":"index.js","repository":"","author":"","license":"BSD","files":["src/utils.js","src/utils/events.js","src/utils/hierarchy.js","src/utils/object.js","src/utils/support.js","src/utils/core_helpers.js","src/jengine.js","src/renderers.js","src/renderers/core.js","src/renderers/canvas.js","src/game.js","src/scene.js","src/game_object.js"],"level":"info","message":"","timestamp":"2013-09-17T07:37:24.387Z"}
{"0":47,"1":47,"2":32,"3":32,"4":10,"5":47,"6":47,"7":32,"8":32,"9":74,"10":69,"11":110,"12":103,"13":105,"14":110,"15":101,"16":10,"17":47,"18":47,"19":32,"20":32,"21":86,"22":101,"23":114,"24":115,"25":105,"26":111,"27":110,"28":58,"29":32,"30":60,"31":37,"32":61,"33":32,"34":86,"35":69,"36":82,"37":83,"38":73,"39":79,"40":78,"41":32,"42":37,"43":62,"44":10,"45":47,"46":47,"47":32,"48":32,"49":10,"50":10,"51":40,"52":102,"53":117,"54":110,"55":99,"56":116,"57":105,"58":111,"59":110,"60":40,"61":41,"62":32,"63":123,"64":10,"65":32,"66":32,"67":118,"68":97,"69":114,"70":32,"71":74,"72":69,"73":110,"74":103,"75":105,"76":110,"77":101,"78":32,"79":61,"80":32,"81":123,"82":125,"83":59,"84":10,"85":32,"86":32,"87":118,"88":97,"89":114,"90":32,"91":114,"92":111,"93":111,"94":116,"95":32,"96":61,"97":32,"98":116,"99":104,"100":105,"101":115,"102":59,"103":10,"104":32,"105":32,"106":114,"107":111,"108":111,"109":116,"110":46,"111":74,"112":69,"113":110,"114":103,"115":105,"116":110,"117":101,"118":32,"119":61,"120":32,"121":74,"122":69,"123":110,"124":103,"125":105,"126":110,"127":101,"128":59,"length":129,"parent":{"0":123,"1":10,"2":32,"3":32,"4":34,"5":110,"6":97,"7":109,"8":101,"9":34,"10":58,"11":32,"12":34,"13":117,"14":110,"15":100,"16":101,"17":114,"18":115,"19":99,"20":111,"21":114,"22":101,"23":34,"24":44,"25":10,"26":32,"27":32,"28":34,"29":100,"30":101,"31":115,"32":99,"33":114,"34":105,"35":112,"36":116,"37":105,"38":111,"39":110,"40":34,"41":58,"42":32,"43":34,"44":74,"45":97,"46":118,"47":97,"48":83,"49":99,"50":114,"51":105,"52":112,"53":116,"54":39,"55":115,"56":32,"57":102,"58":117,"59":110,"60":99,"61":116,"62":105,"63":111,"64":110,"65":97,"66":108,"67":32,"68":112,"69":114,"70":111,"71":103,"72":114,"73":97,"74":109,"75":109,"76":105,"77":110,"78":103,"79":32,"80":104,"81":101,"82":108,"83":112,"84":101,"85":114,"86":32,"87":108,"88":105,"89":98,"90":114,"91":97,"92":114,"93":121,"94":46,"95":34,"96":44,"97":10,"98":32,"99":32,"100":34,"101":104,"102":111,"103":109,"104":101,"105":112,"106":97,"107":103,"108":101,"109":34,"110":58,"111":32,"112":34,"113":104,"114":116,"115":116,"116":112,"117":58,"118":47,"119":47,"120":117,"121":110,"122":100,"123":101,"124":114,"125":115,"126":99,"127":111,"128":114,"129":101,"130":106,"131":115,"132":46,"133":111,"134":114,"135":103,"136":34,"137":44,"138":10,"139":32,"140":32,"141":34,"142":107,"143":101,"144":121,"145":119,"146":111,"147":114,"148":100,"149":115,"150":34,"151":58,"152":32,"153":91,"154":10,"155":32,"156":32,"157":32,"158":32,"159":34,"160":117,"161":116,"162":105,"163":108,"164":34,"165":44,"166":10,"167":32,"168":32,"169":32,"170":32,"171":34,"172":102,"173":117,"174":110,"175":99,"176":116,"177":105,"178":111,"179":110,"180":97,"181":108,"182":34,"183":44,"184":10,"185":32,"186":32,"187":32,"188":32,"189":34,"190":115,"191":101,"192":114,"193":118,"194":101,"195":114,"196":34,"197":44,"198":10,"199":32,"200":32,"201":32,"202":32,"203":34,"204":99,"205":108,"206":105,"207":101,"208":110,"209":116,"210":34,"211":44,"212":10,"213":32,"214":32,"215":32,"216":32,"217":34,"218":98,"219":114,"220":111,"221":119,"222":115,"223":101,"224":114,"225":34,"226":10,"227":32,"228":32,"229":93,"230":44,"231":10,"232":32,"233":32,"234":34,"235":97,"236":117,"237":116,"238":104,"239":111,"240":114,"241":34,"242":58,"243":32,"244":123,"245":10,"246":32,"247":32,"248":32,"249":32,"250":34,"251":110,"252":97,"253":109,"254":101,"255":34,"256":58,"257":32,"258":34,"259":74,"260":101,"261":114,"262":101,"263":109,"264":121,"265":32,"266":65,"267":115,"268":104,"269":107,"270":101,"271":110,"272":97,"273":115,"274":34,"275":44,"276":10,"277":32,"278":32,"279":32,"280":32,"281":34,"282":101,"283":109,"284":97,"285":105,"286":108,"287":34,"288":58,"289":32,"290":34,"291":106,"292":101,"293":114,"294":101,"295":109,"296":121,"297":64,"298":100,"299":111,"300":99,"301":117,"302":109,"303":101,"304":110,"305":116,"306":99,"307":108,"308":111,"309":117,"310":100,"311":46,"312":111,"313":114,"314":103,"315":34,"316":10,"317":32,"318":32,"319":125,"320":44,"321":10,"322":32,"323":32,"324":34,"325":114,"326":101,"327":112,"328":111,"329":115,"330":105,"331":116,"332":111,"333":114,"334":121,"335":34,"336":58,"337":32,"338":123,"339":10,"340":32,"341":32,"342":32,"343":32,"344":34,"345":116,"346":121,"347":112,"348":101,"349":34,"350":58,"351":32,"352":34,"353":103,"354":105,"355":116,"356":34,"357":44,"358":10,"359":32,"360":32,"361":32,"362":32,"363":34,"364":117,"365":114,"366":108,"367":34,"368":58,"369":32,"370":34,"371":103,"372":105,"373":116,"374":58,"375":47,"376":47,"377":103,"378":105,"379":116,"380":104,"381":117,"382":98,"383":46,"384":99,"385":111,"386":109,"387":47,"388":106,"389":97,"390":115,"391":104,"392":107,"393":101,"394":110,"395":97,"396":115,"397":47,"398":117,"399":110,"400":100,"401":101,"402":114,"403":115,"404":99,"405":111,"406":114,"407":101,"408":46,"409":103,"410":105,"411":116,"412":34,"413":10,"414":32,"415":32,"416":125,"417":44,"418":10,"419":32,"420":32,"421":34,"422":109,"423":97,"424":105,"425":110,"426":34,"427":58,"428":32,"429":34,"430":117,"431":110,"432":100,"433":101,"434":114,"435":115,"436":99,"437":111,"438":114,"439":101,"440":46,"441":106,"442":115,"443":34,"444":44,"445":10,"446":32,"447":32,"448":34,"449":118,"450":101,"451":114,"452":115,"453":105,"454":111,"455":110,"456":34,"457":58,"458":32,"459":34,"460":49,"461":46,"462":53,"463":46,"464":49,"465":34,"466":44,"467":10,"468":32,"469":32,"470":34,"471":100,"472":101,"473":118,"474":68,"475":101,"476":112,"477":101,"478":110,"479":100,"480":101,"481":110,"482":99,"483":105,"484":101,"485":115,"486":34,"487":58,"488":32,"489":123,"490":10,"491":32,"492":32,"493":32,"494":32,"495":34,"496":112,"497":104,"498":97,"499":110,"500":116,"501":111,"502":109,"503":106,"504":115,"505":34,"506":58,"507":32,"508":34,"509":49,"510":46,"511":57,"512":46,"513":48,"514":45,"515":49,"516":34,"517":10,"518":32,"519":32,"520":125,"521":44,"522":10,"523":32,"524":32,"525":34,"526":115,"527":99,"528":114,"529":105,"530":112,"531":116,"532":115,"533":34,"534":58,"535":32,"536":123,"537":10,"538":32,"539":32,"540":32,"541":32,"542":34,"543":116,"544":101,"545":115,"546":116,"547":34,"548":58,"549":32,"550":34,"551":112,"552":104,"553":97,"554":110,"555":116,"556":111,"557":109,"558":106,"559":115,"560":32,"561":116,"562":101,"563":115,"564":116,"565":47,"566":118,"567":101,"568":110,"569":100,"570":111,"571":114,"572":47,"573":114,"574":117,"575":110,"576":110,"577":101,"578":114,"579":46,"580":106,"581":115,"582":32,"583":116,"584":101,"585":115,"586":116,"587":47,"588":105,"589":110,"590":100,"591":101,"592":120,"593":46,"594":104,"595":116,"596":109,"597":108,"598":63,"599":110,"600":111,"601":103,"602":108,"603":111,"604":98,"605":97,"606":108,"607":115,"608":61,"609":116,"610":114,"611":117,"612":101,"613":34,"614":10,"615":32,"616":32,"617":125,"618":44,"619":10,"620":32,"621":32,"622":34,"623":108,"624":105,"625":99,"626":101,"627":110,"628":115,"629":101,"630":34,"631":58,"632":32,"633":34,"634":77,"635":73,"636":84,"637":34,"638":44,"639":10,"640":32,"641":32,"642":34,"643":114,"644":101,"645":97,"646":100,"647":109,"648":101,"649":34,"650":58,"651":32,"652":34,"653":32,"654":32,"655":32,"656":32,"657":32,"658":32,"659":32,"660":32,"661":32,"662":32,"663":32,"664":32,"665":32,"666":32,"667":32,"668":32,"669":32,"670":32,"671":32,"672":32,"673":32,"674":32,"675":32,"676":95,"677":95,"678":92,"679":110,"680":32,"681":32,"682":32,"683":32,"684":32,"685":32,"686":32,"687":32,"688":32,"689":32,"690":32,"691":32,"692":32,"693":32,"694":32,"695":32,"696":32,"697":32,"698":32,"699":32,"700":32,"701":32,"702":47,"703":92,"704":92,"705":32,"706":92,"707":92,"708":32,"709":32,"710":32,"711":32,"712":32,"713":32,"714":32,"715":32,"716":32,"717":32,"718":32,"719":32,"720":32,"721":32,"722":32,"723":32,"724":32,"725":32,"726":32,"727":32,"728":32,"729":32,"730":32,"731":32,"732":32,"733":32,"734":32,"735":32,"736":32,"737":32,"738":32,"739":32,"740":32,"741":32,"742":32,"743":32,"744":32,"745":32,"746":32,"747":32,"748":32,"749":32,"750":32,"751":32,"752":32,"753":32,"754":32,"755":32,"756":32,"757":32,"758":32,"759":32,"760":32,"761":32,"762":32,"763":32,"764":32,"765":95,"766":95,"767":92,"768":110,"769":32,"770":32,"771":32,"772":32,"773":32,"774":95,"775":95,"776":32,"777":32,"778":95,"779":95,"780":32,"781":32,"782":32,"783":32,"784":95,"785":95,"786":95,"787":32,"788":32,"789":32,"790":32,"791":92,"792":92,"793":95,"794":92,"795":92,"796":32,"797":92,"798":92,"799":32,"800":32,"801":32,"802":32,"803":32,"804":95,"805":95,"806":32,"807":32,"808":32,"809":95,"810":32,"811":95,"812":95,"813":32,"814":32,"815":32,"816":95,"817":95,"818":95,"819":95,"820":32,"821":32,"822":32,"823":32,"824":95,"825":95,"826":95,"827":32,"828":32,"829":32,"830":32,"831":95,"832":95,"833":95,"834":32,"835":32,"836":32,"837":95,"838":32,"839":95,"840":95,"841":32,"842":32,"843":32,"844":32,"845":95,"846":95,"847":32,"848":32,"849":32,"850":32,"851":32,"852":32,"853":32,"854":47,"855":92,"856":92,"857":95,"858":92,"859":92,"860":32,"861":32,"862":32,"863":32,"864":95,"865":95,"866":95,"867":95,"868":92,"869":110,"870":32,"871":32,"872":32,"873":32,"874":47,"875":92,"876":92,"877":32,"878":92,"879":92,"880":47,"881":92,"882":92,"883":32,"884":92,"885":92,"886":32,"887":47,"888":39,"889":32,"890":95,"891":32,"892":96,"893":92,"894":92,"895":32,"896":32,"897":47,"898":39,"899":95,"900":32,"901":32,"902":92,"903":92,"904":32,"905":32,"906":47,"907":39,"908":95,"909":95,"910":96,"911":92,"912":92,"913":47,"914":92,"915":92,"916":32,"917":32,"918":95,"919":95,"920":92,"921":92,"922":47,"923":32,"924":44,"925":95,"926":95,"927":92,"928":92,"929":32,"930":32,"931":47,"932":32,"933":95,"934":95,"935":95,"936":92,"937":92,"938":32,"939":47,"940":32,"941":95,"942":95,"943":96,"944":92,"945":92,"946":47,"947":92,"948":92,"949":32,"950":32,"951":95,"952":95,"953":92,"954":92,"955":47,"956":39,"957":95,"958":95,"959":96,"960":92,"961":92,"962":32,"963":32,"964":32,"965":32,"966":32,"967":92,"968":92,"969":47,"970":92,"971":92,"972":32,"973":92,"974":92,"975":32,"976":32,"977":47,"978":39,"979":44,"980":95,"981":95,"982":92,"983":92,"984":92,"985":110,"986":32,"987":32,"988":32,"989":32,"990":92,"991":92,"992":32,"993":92,"994":92,"995":32,"996":92,"997":92,"998":95,"999":92,"1000":92,"1001":32,"1002":92,"1003":92,"1004":47,"1005":92,"1006":92,"1007":32,"1008":92,"1009":92,"1010":47,"1011":92,"1012":92,"1013":32,"1014":92,"1015":92,"1016":47,"1017":92,"1018":92,"1019":32,"1020":92,"1021":92,"1022":32,"1023":92,"1024":92,"1025":32,"1026":92,"1027":92,"1028":47,"1029":92,"1030":92,"1031":32,"1032":32,"1033":95,"1034":95,"1035":47,"1036":92,"1037":92,"1038":32,"1039":92,"1040":92,"1041":32,"1042":92,"1043":92,"1044":47,"1045":47,"1046":92,"1047":92,"1048":95,"1049":95,"1050":44,"1051":32,"1052":96,"1053":92,"1054":92,"1055":47,"1056":92,"1057":92,"1058":32,"1059":92,"1060":92,"1061":95,"1062":95,"1063":47,"1064":47,"1065":92,"1066":92,"1067":32,"1068":92,"1069":92,"1070":32,"1071":92,"1072":92,"1073":32,"1074":92,"1075":92,"1076":32,"1077":92,"1078":92,"1079":32,"1080":92,"1081":92,"1082":47,"1083":47,"1084":92,"1085":92,"1086":32,"1087":32,"1088":95,"1089":95,"1090":47,"1091":32,"1092":32,"1093":95,"1094":95,"1095":32,"1096":32,"1097":92,"1098":92,"1099":32,"1100":92,"1101":92,"1102":32,"1103":92,"1104":92,"1105":47,"1106":92,"1107":92,"1108":95,"1109":95,"1110":44,"1111":32,"1112":96,"1113":92,"1114":92,"1115":92,"1116":110,"1117":32,"1118":32,"1119":32,"1120":32,"1121":32,"1122":92,"1123":92,"1124":32,"1125":92,"1126":92,"1127":95,"1128":95,"1129":95,"1130":95,"1131":47,"1132":92,"1133":92,"1134":32,"1135":92,"1136":92,"1137":95,"1138":92,"1139":92,"1140":32,"1141":92,"1142":92,"1143":95,"1144":92,"1145":92,"1146":32,"1147":92,"1148":92,"1149":95,"1150":95,"1151":95,"1152":44,"1153":95,"1154":92,"1155":92,"1156":32,"1157":92,"1158":92,"1159":95,"1160":95,"1161":95,"1162":95,"1163":92,"1164":92,"1165":92,"1166":92,"1167":32,"1168":92,"1169":92,"1170":95,"1171":92,"1172":92,"1173":92,"1174":92,"1175":47,"1176":92,"1177":92,"1178":95,"1179":95,"1180":95,"1181":95,"1182":47,"1183":92,"1184":92,"1185":32,"1186":92,"1187":92,"1188":95,"1189":95,"1190":95,"1191":95,"1192":92,"1193":92,"1194":32,"1195":92,"1196":92,"1197":95,"1198":95,"1199":95,"1200":95,"1201":47,"1202":92,"1203":92,"1204":32,"1205":92,"1206":92,"1207":95,"1208":92,"1209":92,"1210":92,"1211":92,"1212":32,"1213":92,"1214":92,"1215":95,"1216":95,"1217":95,"1218":95,"1219":92,"1220":92,"1221":47,"1222":92,"1223":92,"1224":95,"1225":92,"1226":92,"1227":32,"1228":95,"1229":92,"1230":92,"1231":32,"1232":92,"1233":92,"1234":32,"1235":92,"1236":92,"1237":47,"1238":92,"1239":92,"1240":95,"1241":95,"1242":95,"1243":95,"1244":47,"1245":92,"1246":110,"1247":32,"1248":32,"1249":32,"1250":32,"1251":32,"1252":32,"1253":92,"1254":92,"1255":47,"1256":95,"1257":95,"1258":95,"1259":47,"1260":32,"1261":32,"1262":92,"1263":92,"1264":47,"1265":95,"1266":47,"1267":92,"1268":92,"1269":47,"1270":95,"1271":47,"1272":92,"1273":92,"1274":47,"1275":95,"1276":95,"1277":44,"1278":95,"1279":32,"1280":47,"1281":92,"1282":92,"1283":47,"1284":95,"1285":95,"1286":95,"1287":95,"1288":47,"1289":32,"1290":92,"1291":92,"1292":47,"1293":95,"1294":47,"1295":32,"1296":92,"1297":92,"1298":47,"1299":95,"1300":95,"1301":95,"1302":47,"1303":32,"1304":32,"1305":92,"1306":92,"1307":47,"1308":95,"1309":95,"1310":95,"1311":95,"1312":47,"1313":92,"1314":92,"1315":47,"1316":95,"1317":95,"1318":95,"1319":47,"1320":32,"1321":32,"1322":92,"1323":92,"1324":47,"1325":95,"1326":47,"1327":32,"1328":92,"1329":92,"1330":47,"1331":95,"1332":95,"1333":95,"1334":95,"1335":47,"1336":92,"1337":92,"1338":47,"1339":95,"1340":47,"1341":47,"1342":92,"1343":92,"1344":32,"1345":92,"1346":92,"1347":95,"1348":92,"1349":92,"1350":32,"1351":92,"1352":92,"1353":47,"1354":95,"1355":95,"1356":95,"1357":47,"1358":92,"1359":110,"1360":32,"1361":32,"1362":32,"1363":32,"1364":32,"1365":32,"1366":32,"1367":32,"1368":32,"1369":32,"1370":32,"1371":32,"1372":32,"1373":32,"1374":32,"1375":32,"1376":32,"1377":32,"1378":32,"1379":32,"1380":32,"1381":32,"1382":32,"1383":32,"1384":32,"1385":32,"1386":32,"1387":32,"1388":32,"1389":32,"1390":32,"1391":32,"1392":32,"1393":32,"1394":32,"1395":32,"1396":32,"1397":32,"1398":32,"1399":32,"1400":32,"1401":32,"1402":32,"1403":32,"1404":32,"1405":32,"1406":32,"1407":32,"1408":32,"1409":32,"1410":32,"1411":32,"1412":32,"1413":32,"1414":32,"1415":32,"1416":32,"1417":32,"1418":32,"1419":32,"1420":32,"1421":32,"1422":32,"1423":32,"1424":32,"1425":32,"1426":32,"1427":32,"1428":32,"1429":32,"1430":32,"1431":32,"1432":32,"1433":32,"1434":32,"1435":32,"1436":32,"1437":32,"1438":32,"1439":32,"1440":32,"1441":32,"1442":92,"1443":92,"1444":32,"1445":92,"1446":92,"1447":95,"1448":95,"1449":95,"1450":95,"1451":47,"1452":92,"1453":110,"1454":32,"1455":32,"1456":32,"1457":32,"1458":32,"1459":32,"1460":32,"1461":32,"1462":32,"1463":32,"1464":32,"1465":32,"1466":32,"1467":32,"1468":32,"1469":32,"1470":32,"1471":32,"1472":32,"1473":32,"1474":32,"1475":32,"1476":32,"1477":32,"1478":32,"1479":32,"1480":32,"1481":32,"1482":32,"1483":32,"1484":32,"1485":32,"1486":32,"1487":32,"1488":32,"1489":32,"1490":32,"1491":32,"1492":32,"1493":32,"1494":32,"1495":32,"1496":32,"1497":32,"1498":32,"1499":32,"1500":32,"1501":32,"1502":32,"1503":32,"1504":32,"1505":32,"1506":32,"1507":32,"1508":32,"1509":32,"1510":32,"1511":32,"1512":32,"1513":32,"1514":32,"1515":32,"1516":32,"1517":32,"1518":32,"1519":32,"1520":32,"1521":32,"1522":32,"1523":32,"1524":32,"1525":32,"1526":32,"1527":32,"1528":32,"1529":32,"1530":32,"1531":32,"1532":32,"1533":32,"1534":32,"1535":32,"1536":32,"1537":92,"1538":92,"1539":47,"1540":95,"1541":95,"1542":95,"1543":47,"1544":92,"1545":110,"1546":92,"1547":110,"1548":85,"1549":110,"1550":100,"1551":101,"1552":114,"1553":115,"1554":99,"1555":111,"1556":114,"1557":101,"1558":46,"1559":106,"1560":115,"1561":32,"1562":105,"1563":115,"1564":32,"1565":97,"1566":32,"1567":117,"1568":116,"1569":105,"1570":108,"1571":105,"1572":116,"1573":121,"1574":45,"1575":98,"1576":101,"1577":108,"1578":116,"1579":32,"1580":108,"1581":105,"1582":98,"1583":114,"1584":97,"1585":114,"1586":121,"1587":32,"1588":102,"1589":111,"1590":114,"1591":32,"1592":74,"1593":97,"1594":118,"1595":97,"1596":83,"1597":99,"1598":114,"1599":105,"1600":112,"1601":116,"1602":32,"1603":116,"1604":104,"1605":97,"1606":116,"1607":32,"1608":112,"1609":114,"1610":111,"1611":118,"1612":105,"1613":100,"1614":101,"1615":115,"1616":92,"1617":110,"1618":115,"1619":117,"1620":112,"1621":112,"1622":111,"1623":114,"1624":116,"1625":32,"1626":102,"1627":111,"1628":114,"1629":32,"1630":116,"1631":104,"1632":101,"1633":32,"1634":117,"1635":115,"1636":117,"1637":97,"1638":108,"1639":32,"1640":102,"1641":117,"1642":110,"1643":99,"1644":116,"1645":105,"1646":111,"1647":110,"1648":97,"1649":108,"1650":32,"1651":115,"1652":117,"1653":115,"1654":112,"1655":101,"1656":99,"1657":116,"1658":115,"1659":32,"1660":40,"1661":101,"1662":97,"1663":99,"1664":104,"1665":44,"1666":32,"1667":109,"1668":97,"1669":112,"1670":44,"1671":32,"1672":114,"1673":101,"1674":100,"1675":117,"1676":99,"1677":101,"1678":44,"1679":32,"1680":102,"1681":105,"1682":108,"1683":116,"1684":101,"1685":114,"1686":46,"1687":46,"1688":46,"1689":41,"1690":92,"1691":110,"1692":119,"1693":105,"1694":116,"1695":104,"1696":111,"1697":117,"1698":116,"1699":32,"1700":101,"1701":120,"1702":116,"1703":101,"1704":110,"1705":100,"1706":105,"1707":110,"1708":103,"1709":32,"1710":97,"1711":110,"1712":121,"1713":32,"1714":99,"1715":111,"1716":114,"1717":101,"1718":32,"1719":74,"1720":97,"1721":118,"1722":97,"1723":83,"1724":99,"1725":114,"1726":105,"1727":112,"1728":116,"1729":32,"1730":111,"1731":98,"1732":106,"1733":101,"1734":99,"1735":116,"1736":115,"1737":46,"1738":92,"1739":110,"1740":92,"1741":110,"1742":70,"1743":111,"1744":114,"1745":32,"1746":68,"1747":111,"1748":99,"1749":115,"1750":44,"1751":32,"1752":76,"1753":105,"1754":99,"1755":101,"1756":110,"1757":115,"1758":101,"1759":44,"1760":32,"1761":84,"1762":101,"1763":115,"1764":116,"1765":115,"1766":44,"1767":32,"1768":97,"1769":110,"1770":100,"1771":32,"1772":112,"1773":114,"1774":101,"1775":45,"1776":112,"1777":97,"1778":99,"1779":107,"1780":101,"1781":100,"1782":32,"1783":100,"1784":111,"1785":119,"1786":110,"1787":108,"1788":111,"1789":97,"1790":100,"1791":115,"1792":44,"1793":32,"1794":115,"1795":101,"1796":101,"1797":58,"1798":92,"1799":110,"1800":104,"1801":116,"1802":116,"1803":112,"1804":58,"1805":47,"1806":47,"1807":117,"1808":110,"1809":100,"1810":101,"1811":114,"1812":115,"1813":99,"1814":111,"1815":114,"1816":101,"1817":106,"1818":115,"1819":46,"1820":111,"1821":114,"1822":103,"1823":92,"1824":110,"1825":92,"1826":110,"1827":85,"1828":110,"1829":100,"1830":101,"1831":114,"1832":115,"1833":99,"1834":111,"1835":114,"1836":101,"1837":32,"1838":105,"1839":115,"1840":32,"1841":97,"1842":110,"1843":32,"1844":111,"1845":112,"1846":101,"1847":110,"1848":45,"1849":115,"1850":111,"1851":117,"1852":114,"1853":99,"1854":101,"1855":100,"1856":32,"1857":99,"1858":111,"1859":109,"1860":112,"1861":111,"1862":110,"1863":101,"1864":110,"1865":116,"1866":32,"1867":111,"1868":102,"1869":32,"1870":68,"1871":111,"1872":99,"1873":117,"1874":109,"1875":101,"1876":110,"1877":116,"1878":67,"1879":108,"1880":111,"1881":117,"1882":100,"1883":58,"1884":92,"1885":110,"1886":104,"1887":116,"1888":116,"1889":112,"1890":115,"1891":58,"1892":47,"1893":47,"1894":103,"1895":105,"1896":116,"1897":104,"1898":117,"1899":98,"1900":46,"1901":99,"1902":111,"1903":109,"1904":47,"1905":100,"1906":111,"1907":99,"1908":117,"1909":109,"1910":101,"1911":110,"1912":116,"1913":99,"1914":108,"1915":111,"1916":117,"1917":100,"1918":92,"1919":110,"1920":92,"1921":110,"1922":77,"1923":97,"1924":110,"1925":121,"1926":32,"1927":116,"1928":104,"1929":97,"1930":110,"1931":107,"1932":115,"1933":32,"1934":116,"1935":111,"1936":32,"1937":111,"1938":117,"1939":114,"1940":32,"1941":99,"1942":111,"1943":110,"1944":116,"1945":114,"1946":105,"1947":98,"1948":117,"1949":116,"1950":111,"1951":114,"1952":115,"1953":58,"1954":92,"1955":110,"1956":104,"1957":116,"1958":116,"1959":112,"1960":115,"1961":58,"1962":47,"1963":47,"1964":103,"1965":105,"1966":116,"1967":104,"1968":117,"1969":98,"1970":46,"1971":99,"1972":111,"1973":109,"1974":47,"1975":106,"1976":97,"1977":115,"1978":104,"1979":107,"1980":101,"1981":110,"1982":97,"1983":115,"1984":47,"1985":117,"1986":110,"1987":100,"1988":101,"1989":114,"1990":115,"1991":99,"1992":111,"1993":114,"1994":101,"1995":47,"1996":99,"1997":111,"1998":110,"1999":116,"2000":114,"2001":105,"2002":98,"2003":117,"2004":116,"2005":111,"2006":114,"2007":115,"2008":92,"2009":110,"2010":34,"2011":44,"2012":10,"2013":32,"2014":32,"2015":34,"2016":114,"2017":101,"2018":97,"2019":100,"2020":109,"2021":101,"2022":70,"2023":105,"2024":108,"2025":101,"2026":110,"2027":97,"2028":109,"2029":101,"2030":34,"2031":58,"2032":32,"2033":34,"2034":82,"2035":69,"2036":65,"2037":68,"2038":77,"2039":69,"2040":46,"2041":109,"2042":100,"2043":34,"2044":44,"2045":10,"2046":32,"2047":32,"2048":34,"2049":98,"2050":117,"2051":103,"2052":115,"2053":34,"2054":58,"2055":32,"2056":123,"2057":10,"2058":32,"2059":32,"2060":32,"2061":32,"2062":34,"2063":117,"2064":114,"2065":108,"2066":34,"2067":58,"2068":32,"2069":34,"2070":104,"2071":116,"2072":116,"2073":112,"2074":115,"2075":58,"2076":47,"2077":47,"2078":103,"2079":105,"2080":116,"2081":104,"2082":117,"2083":98,"2084":46,"2085":99,"2086":111,"2087":109,"2088":47,"2089":106,"2090":97,"2091":115,"2092":104,"2093":107,"2094":101,"2095":110,"2096":97,"2097":115,"2098":47,"2099":117,"2100":110,"2101":100,"2102":101,"2103":114,"2104":115,"2105":99,"2106":111,"2107":114,"2108":101,"2109":47,"2110":105,"2111":115,"2112":115,"2113":117,"2114":101,"2115":115,"2116":34,"2117":10,"2118":32,"2119":32,"2120":125,"2121":44,"2122":10,"2123":32,"2124":32,"2125":34,"2126":95,"2127":105,"2128":100,"2129":34,"2130":58,"2131":32,"2132":34,"2133":117,"2134":110,"2135":100,"2136":101,"2137":114,"2138":115,"2139":99,"2140":111,"2141":114,"2142":101,"2143":64,"2144":49,"2145":46,"2146":53,"2147":46,"2148":49,"2149":34,"2150":44,"2151":10,"2152":32,"2153":32,"2154":34,"2155":95,"2156":102,"2157":114,"2158":111,"2159":109,"2160":34,"2161":58,"2162":32,"2163":34,"2164":117,"2165":110,"2166":100,"2167":101,"2168":114,"2169":115,"2170":99,"2171":111,"2172":114,"2173":101,"2174":64,"2175":34,"2176":10,"2177":125,"2178":10,"2179":0,"2180":7,"2181":0,"2182":0,"2183":0,"2184":123,"2185":10,"2186":32,"2187":32,"2188":34,"2189":110,"2190":97,"2191":109,"2192":101,"2193":34,"2194":58,"2195":32,"2196":34,"2197":98,"2198":97,"2199":99,"2200":107,"2201":98,"2202":111,"2203":110,"2204":101,"2205":34,"2206":44,"2207":10,"2208":32,"2209":32,"2210":34,"2211":100,"2212":101,"2213":115,"2214":99,"2215":114,"2216":105,"2217":112,"2218":116,"2219":105,"2220":111,"2221":110,"2222":34,"2223":58,"2224":32,"2225":34,"2226":71,"2227":105,"2228":118,"2229":101,"2230":32,"2231":121,"2232":111,"2233":117,"2234":114,"2235":32,"2236":74,"2237":83,"2238":32,"2239":65,"2240":112,"2241":112,"2242":32,"2243":115,"2244":111,"2245":109,"2246":101,"2247":32,"2248":66,"2249":97,"2250":99,"2251":107,"2252":98,"2253":111,"2254":110,"2255":101,"2256":32,"2257":119,"2258":105,"2259":116,"2260":104,"2261":32,"2262":77,"2263":111,"2264":100,"2265":101,"2266":108,"2267":115,"2268":44,"2269":32,"2270":86,"2271":105,"2272":101,"2273":119,"2274":115,"2275":44,"2276":32,"2277":67,"2278":111,"2279":108,"2280":108,"2281":101,"2282":99,"2283":116,"2284":105,"2285":111,"2286":110,"2287":115,"2288":44,"2289":32,"2290":97,"2291":110,"2292":100,"2293":32,"2294":69,"2295":118,"2296":101,"2297":110,"2298":116,"2299":115,"2300":46,"2301":34,"2302":44,"2303":10,"2304":32,"2305":32,"2306":34,"2307":117,"2308":114,"2309":108,"2310":34,"2311":58,"2312":32,"2313":34,"2314":104,"2315":116,"2316":116,"2317":112,"2318":58,"2319":47,"2320":47,"2321":98,"2322":97,"2323":99,"2324":107,"2325":98,"2326":111,"2327":110,"2328":101,"2329":106,"2330":115,"2331":46,"2332":111,"2333":114,"2334":103,"2335":34,"2336":44,"2337":10,"2338":32,"2339":32,"2340":34,"2341":107,"2342":101,"2343":121,"2344":119,"2345":111,"2346":114,"2347":100,"2348":115,"2349":34,"2350":58,"2351":32,"2352":91,"2353":10,"2354":32,"2355":32,"2356":32,"2357":32,"2358":34,"2359":109,"2360":111,"2361":100,"2362":101,"2363":108,"2364":34,"2365":44,"2366":10,"2367":32,"2368":32,"2369":32,"2370":32,"2371":34,"2372":118,"2373":105,"2374":101,"2375":119,"2376":34,"2377":44,"2378":10,"2379":32,"2380":32,"2381":32,"2382":32,"2383":34,"2384":99,"2385":111,"2386":110,"2387":116,"2388":114,"2389":111,"2390":108,"2391":108,"2392":101,"2393":114,"2394":34,"2395":44,"2396":10,"2397":32,"2398":32,"2399":32,"2400":32,"2401":34,"2402":114,"2403":111,"2404":117,"2405":116,"2406":101,"2407":114,"2408":34,"2409":44,"2410":10,"2411":32,"2412":32,"2413":32,"2414":32,"2415":34,"2416":115,"2417":101,"2418":114,"2419":118,"2420":101,"2421":114,"2422":34,"2423":44,"2424":10,"2425":32,"2426":32,"2427":32,"2428":32,"2429":34,"2430":99,"2431":108,"2432":105,"2433":101,"2434":110,"2435":116,"2436":34,"2437":44,"2438":10,"2439":32,"2440":32,"2441":32,"2442":32,"2443":34,"2444":98,"2445":114,"2446":111,"2447":119,"2448":115,"2449":101,"2450":114,"2451":34,"2452":10,"2453":32,"2454":32,"2455":93,"2456":44,"2457":10,"2458":32,"2459":32,"2460":34,"2461":97,"2462":117,"2463":116,"2464":104,"2465":111,"2466":114,"2467":34,"2468":58,"2469":32,"2470":123,"2471":10,"2472":32,"2473":32,"2474":32,"2475":32,"2476":34,"2477":110,"2478":97,"2479":109,"2480":101,"2481":34,"2482":58,"2483":32,"2484":34,"2485":74,"2486":101,"2487":114,"2488":101,"2489":109,"2490":121,"2491":32,"2492":65,"2493":115,"2494":104,"2495":107,"2496":101,"2497":110,"2498":97,"2499":115,"2500":34,"2501":44,"2502":10,"2503":32,"2504":32,"2505":32,"2506":32,"2507":34,"2508":101,"2509":109,"2510":97,"2511":105,"2512":108,"2513":34,"2514":58,"2515":32,"2516":34,"2517":106,"2518":101,"2519":114,"2520":101,"2521":109,"2522":121,"2523":64,"2524":100,"2525":111,"2526":99,"2527":117,"2528":109,"2529":101,"2530":110,"2531":116,"2532":99,"2533":108,"2534":111,"2535":117,"2536":100,"2537":46,"2538":111,"2539":114,"2540":103,"2541":34,"2542":10,"2543":32,"2544":32,"2545":125,"2546":44,"2547":10,"2548":32,"2549":32,"2550":34,"2551":100,"2552":101,"2553":112,"2554":101,"2555":110,"2556":100,"2557":101,"2558":110,"2559":99,"2560":105,"2561":101,"2562":115,"2563":34,"2564":58,"2565":32,"2566":123,"2567":10,"2568":32,"2569":32,"2570":32,"2571":32,"2572":34,"2573":117,"2574":110,"2575":100,"2576":101,"2577":114,"2578":115,"2579":99,"2580":111,"2581":114,"2582":101,"2583":34,"2584":58,"2585":32,"2586":34,"2587":62,"2588":61,"2589":49,"2590":46,"2591":52,"2592":46,"2593":51,"2594":34,"2595":10,"2596":32,"2597":32,"2598":125,"2599":44,"2600":10,"2601":32,"2602":32,"2603":34,"2604":100,"2605":101,"2606":118,"2607":68,"2608":101,"2609":112,"2610":101,"2611":110,"2612":100,"2613":101,"2614":110,"2615":99,"2616":105,"2617":101,"2618":115,"2619":34,"2620":58,"2621":32,"2622":123,"2623":10,"2624":32,"2625":32,"2626":32,"2627":32,"2628":34,"2629":112,"2630":104,"2631":97,"2632":110,"2633":116,"2634":111,"2635":109,"2636":106,"2637":115,"2638":34,"2639":58,"2640":32,"2641":34,"2642":49,"2643":46,"2644":56,"2645":46,"2646":49,"2647":45,"2648":51,"2649":34,"2650":44,"2651":10,"2652":32,"2653":32,"2654":32,"2655":32,"2656":34,"2657":100,"2658":111,"2659":99,"2660":99,"2661":111,"2662":34,"2663":58,"2664":32,"2665":34,"2666":48,"2667":46,"2668":54,"2669":46,"2670":49,"2671":34,"2672":44,"2673":10,"2674":32,"2675":32,"2676":32,"2677":32,"2678":34,"2679":99,"2680":111,"2681":102,"2682":102,"2683":101,"2684":101,"2685":45,"2686":115,"2687":99,"2688":114,"2689":105,"2690":112,"2691":116,"2692":34,"2693":58,"2694":32,"2695":34,"2696":49,"2697":46,"2698":54,"2699":46,"2700":49,"2701":34,"2702":10,"2703":32,"2704":32,"2705":125,"2706":44,"2707":10,"2708":32,"2709":32,"2710":34,"2711":115,"2712":99,"2713":114,"2714":105,"2715":112,"2716":116,"2717":115,"2718":34,"2719":58,"2720":32,"2721":123,"2722":10,"2723":32,"2724":32,"2725":32,"2726":32,"2727":34,"2728":116,"2729":101,"2730":115,"2731":116,"2732":34,"2733":58,"2734":32,"2735":34,"2736":112,"2737":104,"2738":97,"2739":110,"2740":116,"2741":111,"2742":109,"2743":106,"2744":115,"2745":32,"2746":116,"2747":101,"2748":115,"2749":116,"2750":47,"2751":118,"2752":101,"2753":110,"2754":100,"2755":111,"2756":114,"2757":47,"2758":114,"2759":117,"2760":110,"2761":110,"2762":101,"2763":114,"2764":46,"2765":106,"2766":115,"2767":32,"2768":116,"2769":101,"2770":115,"2771":116,"2772":47,"2773":105,"2774":110,"2775":100,"2776":101,"2777":120,"2778":46,"2779":104,"2780":116,"2781":109,"2782":108,"2783":63,"2784":110,"2785":111,"2786":103,"2787":108,"2788":111,"2789":98,"2790":97,"2791":108,"2792":115,"2793":61,"2794":116,"2795":114,"2796":117,"2797":101,"2798":32,"2799":38,"2800":38,"2801":32,"2802":99,"2803":111,"2804":102,"2805":102,"2806":101,"2807":101,"2808":32,"2809":116,"2810":101,"2811":115,"2812":116,"2813":47,"2814":109,"2815":111,"2816":100,"2817":101,"2818":108,"2819":46,"2820":99,"2821":111,"2822":102,"2823":102,"2824":101,"2825":101,"2826":34,"2827":10,"2828":32,"2829":32,"2830":125,"2831":44,"2832":10,"2833":32,"2834":32,"2835":34,"2836":109,"2837":97,"2838":105,"2839":110,"2840":34,"2841":58,"2842":32,"2843":34,"2844":98,"2845":97,"2846":99,"2847":107,"2848":98,"2849":111,"2850":110,"2851":101,"2852":46,"2853":106,"2854":115,"2855":34,"2856":44,"2857":10,"2858":32,"2859":32,"2860":34,"2861":118,"2862":101,"2863":114,"2864":115,"2865":105,"2866":111,"2867":110,"2868":34,"2869":58,"2870":32,"2871":34,"2872":49,"2873":46,"2874":48,"2875":46,"2876":48,"2877":34,"2878":44,"2879":10,"2880":32,"2881":32,"2882":34,"2883":114,"2884":101,"2885":97,"2886":100,"2887":109,"2888":101,"2889":34,"2890":58,"2891":32,"2892":34,"2893":32,"2894":32,"2895":32,"2896":32,"2897":32,"2898":95,"2899":95,"2900":95,"2901":95,"2902":32,"2903":32,"2904":32,"2905":32,"2906":32,"2907":32,"2908":32,"2909":32,"2910":32,"2911":32,"2912":32,"2913":32,"2914":32,"2915":32,"2916":32,"2917":32,"2918":32,"2919":32,"2920":32,"2921":32,"2922":32,"2923":95,"2924":95,"2925":32,"2926":32,"2927":32,"2928":32,"2929":32,"2930":32,"2931":95,"2932":95,"2933":32,"2934":32,"2935":32,"2936":32,"2937":32,"2938":32,"2939":32,"2940":32,"2941":32,"2942":32,"2943":32,"2944":32,"2945":32,"2946":32,"2947":32,"2948":32,"2949":32,"2950":32,"2951":32,"2952":32,"2953":32,"2954":32,"2955":32,"2956":32,"2957":32,"2958":32,"2959":32,"2960":32,"2961":32,"2962":32,"2963":32,"2964":32,"2965":32,"2966":32,"2967":32,"2968":32,"2969":32,"2970":32,"2971":32,"2972":32,"2973":32,"2974":32,"2975":32,"2976":32,"2977":32,"2978":32,"2979":32,"2980":32,"2981":32,"2982":92,"2983":110,"2984":32,"2985":32,"2986":32,"2987":32,"2988":47,"2989":92,"2990":92,"2991":32,"2992":32,"2993":95,"2994":96,"2995":92,"2996":92,"2997":32,"2998":32,"2999":32,"3000":32,"3001":32,"3002":32,"3003":32,"3004":32,"3005":32,"3006":32,"3007":32,"3008":32,"3009":32,"3010":32,"3011":32,"3012":32,"3013":32,"3014":32,"3015":47,"3016":92,"3017":92,"3018":32,"3019":92,"3020":92,"3021":32,"3022":32,"3023":32,"3024":32,"3025":47,"3026":92,"3027":92,"3028":32,"3029":92,"3030":92,"3031":32,"3032":32,"3033":32,"3034":32,"3035":32,"3036":32,"3037":32,"3038":32,"3039":32,"3040":32,"3041":32,"3042":32,"3043":32,"3044":32,"3045":32,"3046":32,"3047":32,"3048":32,"3049":32,"3050":32,"3051":32,"3052":32,"3053":32,"3054":32,"3055":32,"3056":32,"3057":32,"3058":32,"3059":32,"3060":32,"3061":32,"3062":32,"3063":32,"3064":32,"3065":32,"3066":95,"3067":95,"3068":32,"3069":32,"3070":32,"3071":32,"3072":32,"3073":32,"3074":32,"3075":32,"3076":32,"3077":32,"3078":32,"3079":92,"3080":110,"3081":32,"3082":32,"3083":32,"3084":32,"3085":92,"3086":92,"3087":32,"3088":92,"3089":92,"3090":32,"3091":92,"3092":92,"3093":32,"3094":92,"3095":92,"3096":32,"3097":92,"3098":92,"3099":32,"3100":32,"3101":32,"3102":32,"3103":32,"3104":95,"3105":95,"3106":32,"3107":32,"3108":32,"3109":32,"3110":32,"3111":32,"3112":95,"3113":95,"3114":95,"3115":92,"3116":92,"3117":32,"3118":92,"3119":92,"3120":32,"3121":92,"3122":92,"3123":47,"3124":39,"3125":92,"3126":92,"3127":92,"3128":92,"3129":32,"3130":92,"3131":92,"3132":32,"3133":92,"3134":92,"3135":95,"3136":95,"3137":95,"3138":95,"3139":32,"3140":32,"3141":32,"3142":32,"3143":95,"3144":95,"3145":95,"3146":32,"3147":32,"3148":32,"3149":32,"3150":32,"3151":95,"3152":95,"3153":95,"3154":32,"3155":32,"3156":32,"3157":32,"3158":32,"3159":32,"3160":95,"3161":95,"3162":32,"3163":32,"3164":32,"3165":32,"3166":32,"3167":32,"3168":47,"3169":92,"3170":92,"3171":95,"3172":92,"3173":92,"3174":32,"3175":32,"3176":32,"3177":32,"3178":95,"3179":95,"3180":95,"3181":95,"3182":32,"3183":32,"3184":92,"3185":110,"3186":32,"3187":32,"3188":32,"3189":32,"3190":32,"3191":92,"3192":92,"3193":32,"3194":92,"3195":92,"3196":32,"3197":32,"3198":95,"3199":32,"3200":60,"3201":39,"3202":32,"3203":32,"3204":47,"3205":39,"3206":95,"3207":95,"3208":96,"3209":92,"3210":92,"3211":32,"3212":32,"3213":32,"3214":47,"3215":39,"3216":95,"3217":95,"3218":95,"3219":92,"3220":92,"3221":32,"3222":92,"3223":92,"3224":32,"3225":44,"3226":32,"3227":60,"3228":32,"3229":92,"3230":92,"3231":32,"3232":92,"3233":92,"3234":32,"3235":39,"3236":95,"3237":95,"3238":96,"3239":92,"3240":92,"3241":32,"3242":32,"3243":47,"3244":32,"3245":95,"3246":95,"3247":96,"3248":92,"3249":92,"3250":32,"3251":47,"3252":39,"3253":32,"3254":95,"3255":32,"3256":96,"3257":92,"3258":92,"3259":32,"3260":32,"3261":47,"3262":39,"3263":95,"3264":95,"3265":96,"3266":92,"3267":92,"3268":32,"3269":32,"3270":32,"3271":32,"3272":92,"3273":92,"3274":47,"3275":92,"3276":92,"3277":32,"3278":92,"3279":92,"3280":32,"3281":32,"3282":47,"3283":39,"3284":44,"3285":95,"3286":95,"3287":92,"3288":92,"3289":32,"3290":92,"3291":110,"3292":32,"3293":32,"3294":32,"3295":32,"3296":32,"3297":32,"3298":92,"3299":92,"3300":32,"3301":92,"3302":92,"3303":32,"3304":92,"3305":92,"3306":32,"3307":92,"3308":92,"3309":32,"3310":92,"3311":92,"3312":47,"3313":92,"3314":92,"3315":32,"3316":92,"3317":92,"3318":32,"3319":92,"3320":92,"3321":46,"3322":92,"3323":92,"3324":95,"3325":47,"3326":92,"3327":92,"3328":32,"3329":92,"3330":92,"3331":95,"3332":95,"3333":47,"3334":92,"3335":92,"3336":32,"3337":92,"3338":92,"3339":32,"3340":92,"3341":92,"3342":92,"3343":92,"3344":96,"3345":92,"3346":92,"3347":92,"3348":92,"3349":32,"3350":92,"3351":92,"3352":32,"3353":92,"3354":92,"3355":32,"3356":92,"3357":92,"3358":32,"3359":92,"3360":92,"3361":47,"3362":92,"3363":92,"3364":32,"3365":92,"3366":92,"3367":32,"3368":92,"3369":92,"3370":32,"3371":92,"3372":92,"3373":47,"3374":92,"3375":92,"3376":32,"3377":92,"3378":92,"3379":47,"3380":92,"3381":92,"3382":32,"3383":92,"3384":92,"3385":47,"3386":92,"3387":92,"3388":32,"3389":32,"3390":95,"3391":95,"3392":47,"3393":32,"3394":32,"3395":95,"3396":95,"3397":32,"3398":92,"3399":92,"3400":32,"3401":92,"3402":92,"3403":32,"3404":92,"3405":92,"3406":47,"3407":92,"3408":92,"3409":95,"3410":95,"3411":44,"3412":32,"3413":96,"3414":92,"3415":92,"3416":92,"3417":110,"3418":32,"3419":32,"3420":32,"3421":32,"3422":32,"3423":32,"3424":32,"3425":92,"3426":92,"3427":32,"3428":92,"3429":92,"3430":95,"3431":95,"3432":95,"3433":95,"3434":47,"3435":92,"3436":92,"3437":32,"3438":92,"3439":92,"3440":95,"3441":95,"3442":47,"3443":46,"3444":92,"3445":92,"3446":95,"3447":92,"3448":92,"3449":32,"3450":92,"3451":92,"3452":95,"3453":95,"3454":95,"3455":95,"3456":92,"3457":92,"3458":92,"3459":92,"3460":32,"3461":92,"3462":92,"3463":95,"3464":92,"3465":92,"3466":32,"3467":92,"3468":92,"3469":95,"3470":92,"3471":92,"3472":32,"3473":92,"3474":92,"3475":95,"3476":44,"3477":95,"3478":95,"3479":47,"3480":92,"3481":92,"3482":32,"3483":92,"3484":92,"3485":95,"3486":95,"3487":95,"3488":95,"3489":47,"3490":92,"3491":92,"3492":32,"3493":92,"3494":92,"3495":95,"3496":92,"3497":92,"3498":32,"3499":92,"3500":92,"3501":95,"3502":92,"3503":92,"3504":32,"3505":92,"3506":92,"3507":95,"3508":95,"3509":95,"3510":95,"3511":92,"3512":92,"3513":47,"3514":92,"3515":92,"3516":95,"3517":92,"3518":92,"3519":95,"3520":92,"3521":92,"3522":32,"3523":92,"3524":92,"3525":32,"3526":92,"3527":92,"3528":47,"3529":92,"3530":92,"3531":95,"3532":95,"3533":95,"3534":95,"3535":47,"3536":92,"3537":110,"3538":32,"3539":32,"3540":32,"3541":32,"3542":32,"3543":32,"3544":32,"3545":32,"3546":92,"3547":92,"3548":47,"3549":95,"3550":95,"3551":95,"3552":47,"3553":32,"3554":32,"3555":92,"3556":92,"3557":47,"3558":95,"3559":95,"3560":47,"3561":92,"3562":92,"3563":47,"3564":95,"3565":47,"3566":92,"3567":92,"3568":47,"3569":95,"3570":95,"3571":95,"3572":95,"3573":47,"3574":32,"3575":92,"3576":92,"3577":47,"3578":95,"3579":47,"3580":92,"3581":92,"3582":47,"3583":95,"3584":47,"3585":92,"3586":92,"3587":47,"3588":95,"3589":95,"3590":95,"3591":47,"3592":32,"3593":32,"3594":92,"3595":92,"3596":47,"3597":95,"3598":95,"3599":95,"3600":47,"3601":32,"3602":32,"3603":92,"3604":92,"3605":47,"3606":95,"3607":47,"3608":92,"3609":92,"3610":47,"3611":95,"3612":47,"3613":92,"3614":92,"3615":47,"3616":95,"3617":95,"3618":95,"3619":95,"3620":47,"3621":92,"3622":92,"3623":47,"3624":95,"3625":47,"3626":92,"3627":92,"3628":32,"3629":92,"3630":92,"3631":95,"3632":92,"3633":92,"3634":32,"3635":92,"3636":92,"3637":47,"3638":95,"3639":95,"3640":95,"3641":47,"3642":32,"3643":92,"3644":110,"3645":32,"3646":32,"3647":32,"3648":32,"3649":32,"3650":32,"3651":32,"3652":32,"3653":32,"3654":32,"3655":32,"3656":32,"3657":32,"3658":32,"3659":32,"3660":32,"3661":32,"3662":32,"3663":32,"3664":32,"3665":32,"3666":32,"3667":32,"3668":32,"3669":32,"3670":32,"3671":32,"3672":32,"3673":32,"3674":32,"3675":32,"3676":32,"3677":32,"3678":32,"3679":32,"3680":32,"3681":32,"3682":32,"3683":32,"3684":32,"3685":32,"3686":32,"3687":32,"3688":32,"3689":32,"3690":32,"3691":32,"3692":32,"3693":32,"3694":32,"3695":32,"3696":32,"3697":32,"3698":32,"3699":32,"3700":32,"3701":32,"3702":32,"3703":32,"3704":32,"3705":32,"3706":32,"3707":32,"3708":32,"3709":32,"3710":32,"3711":32,"3712":32,"3713":32,"3714":32,"3715":32,"3716":32,"3717":32,"3718":32,"3719":32,"3720":92,"3721":92,"3722":32,"3723":92,"3724":92,"3725":95,"3726":95,"3727":95,"3728":95,"3729":47,"3730":32,"3731":32,"3732":32,"3733":32,"3734":32,"3735":32,"3736":92,"3737":110,"3738":32,"3739":32,"3740":32,"3741":32,"3742":32,"3743":32,"3744":32,"3745":32,"3746":32,"3747":32,"3748":32,"3749":32,"3750":32,"3751":32,"3752":32,"3753":32,"3754":32,"3755":32,"3756":32,"3757":32,"3758":32,"3759":32,"3760":32,"3761":32,"3762":32,"3763":32,"3764":32,"3765":32,"3766":32,"3767":32,"3768":32,"3769":32,"3770":32,"3771":32,"3772":32,"3773":32,"3774":32,"3775":32,"3776":32,"3777":32,"3778":32,"3779":32,"3780":32,"3781":32,"3782":32,"3783":32,"3784":32,"3785":32,"3786":32,"3787":32,"3788":32,"3789":32,"3790":32,"3791":32,"3792":32,"3793":32,"3794":32,"3795":32,"3796":32,"3797":32,"3798":32,"3799":32,"3800":32,"3801":32,"3802":32,"3803":32,"3804":32,"3805":32,"3806":32,"3807":32,"3808":32,"3809":32,"3810":32,"3811":32,"3812":32,"3813":32,"3814":92,"3815":92,"3816":47,"3817":95,"3818":95,"3819":95,"3820":47,"3821":32,"3822":32,"3823":32,"3824":32,"3825":32,"3826":32,"3827":32,"3828":92,"3829":110,"3830":32,"3831":32,"3832":32,"3833":32,"3834":40,"3835":95,"3836":39,"3837":95,"3838":95,"3839":95,"3840":95,"3841":95,"3842":95,"3843":95,"3844":95,"3845":95,"3846":95,"3847":95,"3848":95,"3849":95,"3850":95,"3851":95,"3852":95,"3853":95,"3854":95,"3855":95,"3856":95,"3857":95,"3858":95,"3859":95,"3860":95,"3861":95,"3862":95,"3863":95,"3864":95,"3865":95,"3866":95,"3867":95,"3868":95,"3869":95,"3870":95,"3871":95,"3872":95,"3873":95,"3874":95,"3875":95,"3876":95,"3877":95,"3878":95,"3879":95,"3880":95,"3881":95,"3882":95,"3883":95,"3884":95,"3885":95,"3886":95,"3887":95,"3888":95,"3889":95,"3890":95,"3891":95,"3892":95,"3893":95,"3894":95,"3895":95,"3896":95,"3897":95,"3898":95,"3899":95,"3900":95,"3901":95,"3902":95,"3903":95,"3904":95,"3905":95,"3906":95,"3907":95,"3908":95,"3909":95,"3910":95,"3911":95,"3912":95,"3913":95,"3914":95,"3915":95,"3916":39,"3917":95,"3918":41,"3919":92,"3920":110,"3921":32,"3922":32,"3923":32,"3924":32,"3925":40,"3926":95,"3927":46,"3928":226,"3929":128,"3930":148,"3931":226,"3932":128,"3933":148,"3934":226,"3935":128,"3936":148,"3937":226,"3938":128,"3939":148,"3940":226,"3941":128,"3942":148,"3943":226,"3944":128,"3945":148,"3946":226,"3947":128,"3948":148,"3949":226,"3950":128,"3951":148,"3952":226,"3953":128,"3954":148,"3955":226,"3956":128,"3957":148,"3958":226,"3959":128,"3960":148,"3961":226,"3962":128,"3963":148,"3964":226,"3965":128,"3966":148,"3967":226,"3968":128,"3969":148,"3970":226,"3971":128,"3972":148,"3973":226,"3974":128,"3975":148,"3976":226,"3977":128,"3978":148,"3979":226,"3980":128,"3981":148,"3982":226,"3983":128,"3984":148,"3985":226,"3986":128,"3987":148,"3988":226,"3989":128,"3990":148,"3991":226,"3992":128,"3993":148,"3994":226,"3995":128,"3996":148,"3997":226,"3998":128,"3999":148,"4000":226,"4001":128,"4002":148,"4003":226,"4004":128,"4005":148,"4006":226,"4007":128,"4008":148,"4009":226,"4010":128,"4011":148,"4012":226,"4013":128,"4014":148,"4015":226,"4016":128,"4017":148,"4018":226,"4019":128,"4020":148,"4021":226,"4022":128,"4023":148,"4024":226,"4025":128,"4026":148,"4027":226,"4028":128,"4029":148,"4030":226,"4031":128,"4032":148,"4033":226,"4034":128,"4035":148,"4036":226,"4037":128,"4038":148,"4039":226,"4040":128,"4041":148,"4042":226,"4043":128,"4044":148,"4045":226,"4046":128,"4047":148,"4048":226,"4049":128,"4050":148,"4051":226,"4052":128,"4053":148,"4054":226,"4055":128,"4056":148,"4057":226,"4058":128,"4059":148,"4060":226,"4061":128,"4062":148,"4063":226,"4064":128,"4065":148,"4066":226,"4067":128,"4068":148,"4069":226,"4070":128,"4071":148,"4072":226,"4073":128,"4074":148,"4075":226,"4076":128,"4077":148,"4078":226,"4079":128,"4080":148,"4081":226,"4082":128,"4083":148,"4084":226,"4085":128,"4086":148,"4087":226,"4088":128,"4089":148,"4090":226,"4091":128,"4092":148,"4093":226,"4094":128,"4095":148,"4096":226,"4097":128,"4098":148,"4099":226,"4100":128,"4101":148,"4102":226,"4103":128,"4104":148,"4105":226,"4106":128,"4107":148,"4108":226,"4109":128,"4110":148,"4111":226,"4112":128,"4113":148,"4114":226,"4115":128,"4116":148,"4117":226,"4118":128,"4119":148,"4120":226,"4121":128,"4122":148,"4123":226,"4124":128,"4125":148,"4126":226,"4127":128,"4128":148,"4129":226,"4130":128,"4131":148,"4132":226,"4133":128,"4134":148,"4135":226,"4136":128,"4137":148,"4138":226,"4139":128,"4140":148,"4141":226,"4142":128,"4143":148,"4144":226,"4145":128,"4146":148,"4147":226,"4148":128,"4149":148,"4150":226,"4151":128,"4152":148,"4153":226,"4154":128,"4155":148,"4156":226,"4157":128,"4158":148,"4159":226,"4160":128,"4161":148,"4162":226,"4163":128,"4164":148,"4165":46,"4166":95,"4167":41,"4168":92,"4169":110,"4170":32,"4171":32,"4172":32,"4173":32,"4174":32,"4175":32,"4176":32,"4177":32,"4178":32,"4179":32,"4180":32,"4181":32,"4182":32,"4183":32,"4184":32,"4185":32,"4186":32,"4187":32,"4188":32,"4189":32,"4190":32,"4191":32,"4192":32,"4193":32,"4194":32,"4195":32,"4196":32,"4197":32,"4198":32,"4199":32,"4200":32,"4201":32,"4202":32,"4203":32,"4204":32,"4205":32,"4206":32,"4207":32,"4208":32,"4209":32,"4210":32,"4211":32,"4212":32,"4213":32,"4214":32,"4215":32,"4216":32,"4217":92,"4218":110,"4219":32,"4220":32,"4221":32,"4222":32,"4223":32,"4224":32,"4225":32,"4226":32,"4227":32,"4228":32,"4229":32,"4230":32,"4231":32,"4232":32,"4233":32,"4234":32,"4235":32,"4236":32,"4237":32,"4238":32,"4239":32,"4240":32,"4241":32,"4242":32,"4243":32,"4244":32,"4245":32,"4246":32,"4247":32,"4248":32,"4249":32,"4250":32,"4251":32,"4252":32,"4253":32,"4254":32,"4255":32,"4256":32,"4257":32,"4258":32,"4259":32,"4260":32,"4261":32,"4262":32,"4263":32,"4264":32,"4265":92,"4266":110,"4267":66,"4268":97,"4269":99,"4270":107,"4271":98,"4272":111,"4273":110,"4274":101,"4275":32,"4276":115,"4277":117,"4278":112,"4279":112,"4280":108,"4281":105,"4282":101,"4283":115,"4284":32,"4285":115,"4286":116,"4287":114,"4288":117,"4289":99,"4290":116,"4291":117,"4292":114,"4293":101,"4294":32,"4295":116,"4296":111,"4297":32,"4298":74,"4299":97,"4300":118,"4301":97,"4302":83,"4303":99,"4304":114,"4305":105,"4306":112,"4307":116,"4308":45,"4309":104,"4310":101,"4311":97,"4312":118,"4313":121,"4314":32,"4315":97,"4316":112,"4317":112,"4318":108,"4319":105,"4320":99,"4321":97,"4322":116,"4323":105,"4324":111,"4325":110,"4326":115,"4327":32,"4328":98,"4329":121,"4330":32,"4331":112,"4332":114,"4333":111,"4334":118,"4335":105,"4336":100,"4337":105,"4338":110,"4339":103,"4340":32,"4341":109,"4342":111,"4343":100,"4344":101,"4345":108,"4346":115,"4347":32,"4348":107,"4349":101,"4350":121,"4351":45,"4352":118,"4353":97,"4354":108,"4355":117,"4356":101,"4357":32,"4358":98,"4359":105,"4360":110,"4361":100,"4362":105,"4363":110,"4364":103,"4365":32,"4366":97,"4367":110,"4368":100,"4369":32,"4370":99,"4371":117,"4372":115,"4373":116,"4374":111,"4375":109,"4376":32,"4377":101,"4378":118,"4379":101,"4380":110,"4381":116,"4382":115,"4383":44,"4384":32,"4385":99,"4386":111,"4387":108,"4388":108,"4389":101,"4390":99,"4391":116,"4392":105,"4393":111,"4394":110,"4395":115,"4396":32,"4397":119,"4398":105,"4399":116,"4400":104,"4401":32,"4402":97,"4403":32,"4404":114,"4405":105,"4406":99,"4407":104,"4408":32,"4409":65,"4410":80,"4411":73,"4412":32,"4413":111,"4414":102,"4415":32,"4416":101,"4417":110,"4418":117,"4419":109,"4420":101,"4421":114,"4422":97,"4423":98,"4424":108,"4425":101,"4426":32,"4427":102,"4428":117,"4429":110,"4430":99,"4431":116,"4432":105,"4433":111,"4434":110,"4435":115,"4436":44,"4437":32,"4438":118,"4439":105,"4440":101,"4441":119,"4442":115,"4443":32,"4444":119,"4445":105,"4446":116,"4447":104,"4448":32,"4449":100,"4450":101,"4451":99,"4452":108,"4453":97,"4454":114,"4455":97,"4456":116,"4457":105,"4458":118,"4459":101,"4460":32,"4461":101,"4462":118,"4463":101,"4464":110,"4465":116,"4466":32,"4467":104,"4468":97,"4469":110,"4470":100,"4471":108,"4472":105,"4473":110,"4474":103,"4475":44,"4476":32,"4477":97,"4478":110,"4479":100,"4480":32,"4481":99,"4482":111,"4483":110,"4484":110,"4485":101,"4486":99,"4487":116,"4488":115,"4489":32,"4490":105,"4491":116,"4492":32,"4493":97,"4494":108,"4495":108,"4496":32,"4497":116,"4498":111,"4499":32,"4500":121,"4501":111,"4502":117,"4503":114,"4504":32,"4505":101,"4506":120,"4507":105,"4508":115,"4509":116,"4510":105,"4511":110,"4512":103,"4513":32,"4514":97,"4515":112,"4516":112,"4517":108,"4518":105,"4519":99,"4520":97,"4521":116,"4522":105,"4523":111,"4524":110,"4525":32,"4526":111,"4527":118,"4528":101,"4529":114,"4530":32,"4531":97,"4532":32,"4533":82,"4534":69,"4535":83,"4536":84,"4537":102,"4538":117,"4539":108,"4540":32,"4541":74,"4542":83,"4543":79,"4544":78,"4545":32,"4546":105,"4547":110,"4548":116,"4549":101,"4550":114,"4551":102,"4552":97,"4553":99,"4554":101,"4555":46,"4556":92,"4557":110,"4558":92,"4559":110,"4560":70,"4561":111,"4562":114,"4563":32,"4564":68,"4565":111,"4566":99,"4567":115,"4568":44,"4569":32,"4570":76,"4571":105,"4572":99,"4573":101,"4574":110,"4575":115,"4576":101,"4577":44,"4578":32,"4579":84,"4580":101,"4581":115,"4582":116,"4583":115,"4584":44,"4585":32,"4586":112,"4587":114,"4588":101,"4589":45,"4590":112,"4591":97,"4592":99,"4593":107,"4594":101,"4595":100,"4596":32,"4597":100,"4598":111,"4599":119,"4600":110,"4601":108,"4602":111,"4603":97,"4604":100,"4605":115,"4606":44,"4607":32,"4608":97,"4609":110,"4610":100,"4611":32,"4612":101,"4613":118,"4614":101,"4615":114,"4616":121,"4617":116,"4618":104,"4619":105,"4620":110,"4621":103,"4622":32,"4623":101,"4624":108,"4625":115,"4626":101,"4627":44,"4628":32,"4629":114,"4630":101,"4631":97,"4632":108,"4633":108,"4634":121,"4635":44,"4636":32,"4637":115,"4638":101,"4639":101,"4640":58,"4641":92,"4642":110,"4643":104,"4644":116,"4645":116,"4646":112,"4647":58,"4648":47,"4649":47,"4650":98,"4651":97,"4652":99,"4653":107,"4654":98,"4655":111,"4656":110,"4657":101,"4658":106,"4659":115,"4660":46,"4661":111,"4662":114,"4663":103,"4664":92,"4665":110,"4666":92,"4667":110,"4668":84,"4669":111,"4670":32,"4671":115,"4672":117,"4673":103,"4674":103,"4675":101,"4676":115,"4677":116,"4678":32,"4679":97,"4680":32,"4681":102,"4682":101,"4683":97,"4684":116,"4685":117,"4686":114,"4687":101,"4688":44,"4689":32,"4690":114,"4691":101,"4692":112,"4693":111,"4694":114,"4695":116,"4696":32,"4697":97,"4698":32,"4699":98,"4700":117,"4701":103,"4702":44,"4703":32,"4704":111,"4705":114,"4706":32,"4707":103,"4708":101,"4709":110,"4710":101,"4711":114,"4712":97,"4713":108,"4714":32,"4715":100,"4716":105,"4717":115,"4718":99,"4719":117,"4720":115,"4721":115,"4722":105,"4723":111,"4724":110,"4725":58,"4726":92,"4727":110,"4728":104,"4729":116,"4730":116,"4731":112,"4732":58,"4733":47,"4734":47,"4735":103,"4736":105,"4737":116,"4738":104,"4739":117,"4740":98,"4741":46,"4742":99,"4743":111,"4744":109,"4745":47,"4746":100,"4747":111,"4748":99,"4749":117,"4750":109,"4751":101,"4752":110,"4753":116,"4754":99,"4755":108,"4756":111,"4757":117,"4758":100,"4759":47,"4760":98,"4761":97,"4762":99,"4763":107,"4764":98,"4765":111,"4766":110,"4767":101,"4768":47,"4769":105,"4770":115,"4771":115,"4772":117,"4773":101,"4774":115,"4775":47,"4776":92,"4777":110,"4778":92,"4779":110,"4780":65,"4781":108,"4782":108,"4783":32,"4784":99,"4785":111,"4786":110,"4787":116,"4788":114,"4789":105,"4790":98,"4791":117,"4792":116,"4793":111,"4794":114,"4795":115,"4796":32,"4797":97,"4798":114,"4799":101,"4800":32,"4801":108,"4802":105,"4803":115,"4804":116,"4805":101,"4806":100,"4807":32,"4808":104,"4809":101,"4810":114,"4811":101,"4812":58,"4813":92,"4814":110,"4815":104,"4816":116,"4817":116,"4818":112,"4819":58,"4820":47,"4821":47,"4822":103,"4823":105,"4824":116,"4825":104,"4826":117,"4827":98,"4828":46,"4829":99,"4830":111,"4831":109,"4832":47,"4833":100,"4834":111,"4835":99,"4836":117,"4837":109,"4838":101,"4839":110,"4840":116,"4841":99,"4842":108,"4843":111,"4844":117,"4845":100,"4846":47,"4847":98,"4848":97,"4849":99,"4850":107,"4851":98,"4852":111,"4853":110,"4854":101,"4855":47,"4856":99,"4857":111,"4858":110,"4859":116,"4860":114,"4861":105,"4862":98,"4863":117,"4864":116,"4865":111,"4866":114,"4867":115,"4868":92,"4869":110,"4870":92,"4871":110,"4872":83,"4873":112,"4874":101,"4875":99,"4876":105,"4877":97,"4878":108,"4879":32,"4880":116,"4881":104,"4882":97,"4883":110,"4884":107,"4885":115,"4886":32,"4887":116,"4888":111,"4889":32,"4890":82,"4891":111,"4892":98,"4893":101,"4894":114,"4895":116,"4896":32,"4897":75,"4898":105,"4899":101,"4900":102,"4901":102,"4902":101,"4903":114,"4904":32,"4905":102,"4906":111,"4907":114,"4908":32,"4909":116,"4910":104,"4911":101,"4912":32,"4913":111,"4914":114,"4915":105,"4916":103,"4917":105,"4918":110,"4919":97,"4920":108,"4921":32,"4922":112,"4923":104,"4924":105,"4925":108,"4926":111,"4927":115,"4928":111,"4929":112,"4930":104,"4931":121,"4932":32,"4933":98,"4934":101,"4935":104,"4936":105,"4937":110,"4938":100,"4939":32,"4940":66,"4941":97,"4942":99,"4943":107,"4944":98,"4945":111,"4946":110,"4947":101,"4948":46,"4949":32,"4950":92,"4951":110,"4952":104,"4953":116,"4954":116,"4955":112,"4956":58,"4957":47,"4958":47,"4959":103,"4960":105,"4961":116,"4962":104,"4963":117,"4964":98,"4965":46,"4966":99,"4967":111,"4968":109,"4969":47,"4970":98,"4971":114,"4972":111,"4973":111,"4974":102,"4975":97,"4976":92,"4977":110,"4978":34,"4979":44,"4980":10,"4981":32,"4982":32,"4983":34,"4984":114,"4985":101,"4986":97,"4987":100,"4988":109,"4989":101,"4990":70,"4991":105,"4992":108,"4993":101,"4994":110,"4995":97,"4996":109,"4997":101,"4998":34,"4999":58,"5000":32,"5001":34,"5002":82,"5003":69,"5004":65,"5005":68,"5006":77,"5007":69,"5008":46,"5009":109,"5010":100,"5011":34,"5012":44,"5013":10,"5014":32,"5015":32,"5016":34,"5017":95,"5018":105,"5019":100,"5020":34,"5021":58,"5022":32,"5023":34,"5024":98,"5025":97,"5026":99,"5027":107,"5028":98,"5029":111,"5030":110,"5031":101,"5032":64,"5033":49,"5034":46,"5035":48,"5036":46,"5037":48,"5038":34,"5039":44,"5040":10,"5041":32,"5042":32,"5043":34,"5044":95,"5045":102,"5046":114,"5047":111,"5048":109,"5049":34,"5050":58,"5051":32,"5052":34,"5053":98,"5054":97,"5055":99,"5056":107,"5057":98,"5058":111,"5059":110,"5060":101,"5061":64,"5062":34,"5063":10,"5064":125,"5065":10,"5066":0,"5067":0,"5068":0,"5069":0,"5070":0,"5071":0,"5072":123,"5073":10,"5074":32,"5075":32,"5076":34,"5077":110,"5078":97,"5079":109,"5080":101,"5081":34,"5082":58,"5083":32,"5084":34,"5085":106,"5086":101,"5087":110,"5088":103,"5089":105,"5090":110,"5091":101,"5092":34,"5093":44,"5094":10,"5095":32,"5096":32,"5097":34,"5098":118,"5099":101,"5100":114,"5101":115,"5102":105,"5103":111,"5104":110,"5105":34,"5106":58,"5107":32,"5108":34,"5109":48,"5110":46,"5111":48,"5112":46,"5113":48,"5114":34,"5115":44,"5116":10,"5117":32,"5118":32,"5119":34,"5120":109,"5121":97,"5122":105,"5123":110,"5124":34,"5125":58,"5126":32,"5127":34,"5128":105,"5129":110,"5130":100,"5131":101,"5132":120,"5133":46,"5134":106,"5135":115,"5136":34,"5137":44,"5138":10,"5139":32,"5140":32,"5141":34,"5142":114,"5143":101,"5144":112,"5145":111,"5146":115,"5147":105,"5148":116,"5149":111,"5150":114,"5151":121,"5152":34,"5153":58,"5154":32,"5155":34,"5156":34,"5157":44,"5158":10,"5159":32,"5160":32,"5161":34,"5162":97,"5163":117,"5164":116,"5165":104,"5166":111,"5167":114,"5168":34,"5169":58,"5170":32,"5171":34,"5172":34,"5173":44,"5174":10,"5175":32,"5176":32,"5177":34,"5178":108,"5179":105,"5180":99,"5181":101,"5182":110,"5183":115,"5184":101,"5185":34,"5186":58,"5187":32,"5188":34,"5189":66,"5190":83,"5191":68,"5192":34,"5193":44,"5194":10,"5195":32,"5196":32,"5197":34,"5198":102,"5199":105,"5200":108,"5201":101,"5202":115,"5203":34,"5204":58,"5205":32,"5206":91,"5207":10,"5208":32,"5209":32,"5210":32,"5211":32,"5212":34,"5213":115,"5214":114,"5215":99,"5216":47,"5217":117,"5218":116,"5219":105,"5220":108,"5221":115,"5222":46,"5223":106,"5224":115,"5225":34,"5226":44,"5227":10,"5228":32,"5229":32,"5230":32,"5231":32,"5232":34,"5233":115,"5234":114,"5235":99,"5236":47,"5237":117,"5238":116,"5239":105,"5240":108,"5241":115,"5242":47,"5243":101,"5244":118,"5245":101,"5246":110,"5247":116,"5248":115,"5249":46,"5250":106,"5251":115,"5252":34,"5253":44,"5254":10,"5255":32,"5256":32,"5257":32,"5258":32,"5259":34,"5260":115,"5261":114,"5262":99,"5263":47,"5264":117,"5265":116,"5266":105,"5267":108,"5268":115,"5269":47,"5270":104,"5271":105,"5272":101,"5273":114,"5274":97,"5275":114,"5276":99,"5277":104,"5278":121,"5279":46,"5280":106,"5281":115,"5282":34,"5283":44,"5284":10,"5285":32,"5286":32,"5287":32,"5288":32,"5289":34,"5290":115,"5291":114,"5292":99,"5293":47,"5294":117,"5295":116,"5296":105,"5297":108,"5298":115,"5299":47,"5300":111,"5301":98,"5302":106,"5303":101,"5304":99,"5305":116,"5306":46,"5307":106,"5308":115,"5309":34,"5310":44,"5311":10,"5312":32,"5313":32,"5314":32,"5315":32,"5316":34,"5317":115,"5318":114,"5319":99,"5320":47,"5321":117,"5322":116,"5323":105,"5324":108,"5325":115,"5326":47,"5327":115,"5328":117,"5329":112,"5330":112,"5331":111,"5332":114,"5333":116,"5334":46,"5335":106,"5336":115,"5337":34,"5338":44,"5339":10,"5340":32,"5341":32,"5342":32,"5343":32,"5344":34,"5345":115,"5346":114,"5347":99,"5348":47,"5349":117,"5350":116,"5351":105,"5352":108,"5353":115,"5354":47,"5355":99,"5356":111,"5357":114,"5358":101,"5359":95,"5360":104,"5361":101,"5362":108,"5363":112,"5364":101,"5365":114,"5366":115,"5367":46,"5368":106,"5369":115,"5370":34,"5371":44,"5372":10,"5373":32,"5374":32,"5375":32,"5376":32,"5377":34,"5378":115,"5379":114,"5380":99,"5381":47,"5382":106,"5383":101,"5384":110,"5385":103,"5386":105,"5387":110,"5388":101,"5389":46,"5390":106,"5391":115,"5392":34,"5393":44,"5394":10,"5395":32,"5396":32,"5397":32,"5398":32,"5399":34,"5400":115,"5401":114,"5402":99,"5403":47,"5404":114,"5405":101,"5406":110,"5407":100,"5408":101,"5409":114,"5410":101,"5411":114,"5412":115,"5413":46,"5414":106,"5415":115,"5416":34,"5417":44,"5418":10,"5419":32,"5420":32,"5421":32,"5422":32,"5423":34,"5424":115,"5425":114,"5426":99,"5427":47,"5428":114,"5429":101,"5430":110,"5431":100,"5432":101,"5433":114,"5434":101,"5435":114,"5436":115,"5437":47,"5438":99,"5439":111,"5440":114,"5441":101,"5442":46,"5443":106,"5444":115,"5445":34,"5446":44,"5447":10,"5448":32,"5449":32,"5450":32,"5451":32,"5452":34,"5453":115,"5454":114,"5455":99,"5456":47,"5457":114,"5458":101,"5459":110,"5460":100,"5461":101,"5462":114,"5463":101,"5464":114,"5465":115,"5466":47,"5467":99,"5468":97,"5469":110,"5470":118,"5471":97,"5472":115,"5473":46,"5474":106,"5475":115,"5476":34,"5477":44,"5478":10,"5479":32,"5480":32,"5481":32,"5482":32,"5483":34,"5484":115,"5485":114,"5486":99,"5487":47,"5488":103,"5489":97,"5490":109,"5491":101,"5492":46,"5493":106,"5494":115,"5495":34,"5496":44,"5497":10,"5498":32,"5499":32,"5500":32,"5501":32,"5502":34,"5503":115,"5504":114,"5505":99,"5506":47,"5507":115,"5508":99,"5509":101,"5510":110,"5511":101,"5512":46,"5513":106,"5514":115,"5515":34,"5516":44,"5517":10,"5518":32,"5519":32,"5520":32,"5521":32,"5522":34,"5523":115,"5524":114,"5525":99,"5526":47,"5527":103,"5528":97,"5529":109,"5530":101,"5531":95,"5532":111,"5533":98,"5534":106,"5535":101,"5536":99,"5537":116,"5538":46,"5539":106,"5540":115,"5541":34,"5542":10,"5543":32,"5544":32,"5545":93,"5546":10,"5547":125,"5548":10,"5549":0,"5550":0,"5551":0,"5552":118,"5553":97,"5554":114,"5555":32,"5556":112,"5557":97,"5558":116,"5559":104,"5560":32,"5561":61,"5562":32,"5563":114,"5564":101,"5565":113,"5566":117,"5567":105,"5568":114,"5569":101,"5570":40,"5571":39,"5572":112,"5573":97,"5574":116,"5575":104,"5576":39,"5577":41,"5578":59,"5579":10,"5580":118,"5581":97,"5582":114,"5583":32,"5584":98,"5585":117,"5586":105,"5587":108,"5588":100,"5589":32,"5590":61,"5591":32,"5592":114,"5593":101,"5594":113,"5595":117,"5596":105,"5597":114,"5598":101,"5599":40,"5600":112,"5601":97,"5602":116,"5603":104,"5604":46,"5605":106,"5606":111,"5607":105,"5608":110,"5609":40,"5610":112,"5611":114,"5612":111,"5613":99,"5614":101,"5615":115,"5616":115,"5617":46,"5618":99,"5619":119,"5620":100,"5621":40,"5622":41,"5623":44,"5624":32,"5625":39,"5626":110,"5627":111,"5628":100,"5629":101,"5630":95,"5631":109,"5632":111,"5633":100,"5634":117,"5635":108,"5636":101,"5637":115,"5638":39,"5639":44,"5640":32,"5641":39,"5642":106,"5643":101,"5644":110,"5645":103,"5646":105,"5647":110,"5648":101,"5649":39,"5650":44,"5651":32,"5652":39,"5653":115,"5654":99,"5655":114,"5656":105,"5657":112,"5658":116,"5659":115,"5660":39,"5661":44,"5662":32,"5663":39,"5664":98,"5665":117,"5666":105,"5667":108,"5668":100,"5669":46,"5670":106,"5671":115,"5672":39,"5673":41,"5674":41,"5675":59,"5676":10,"5677":118,"5678":97,"5679":114,"5680":32,"5681":106,"5682":32,"5683":61,"5684":32,"5685":123,"5686":125,"5687":59,"5688":10,"5689":118,"5690":97,"5691":114,"5692":32,"5693":102,"5694":117,"5695":110,"5696":99,"5697":32,"5698":61,"5699":32,"5700":110,"5701":101,"5702":119,"5703":32,"5704":70,"5705":117,"5706":110,"5707":99,"5708":116,"5709":105,"5710":111,"5711":110,"5712":40,"5713":98,"5714":117,"5715":105,"5716":108,"5717":100,"5718":46,"5719":99,"5720":111,"5721":109,"5722":112,"5723":105,"5724":108,"5725":101,"5726":40,"5727":41,"5728":41,"5729":59,"5730":10,"5731":102,"5732":117,"5733":110,"5734":99,"5735":46,"5736":97,"5737":112,"5738":112,"5739":108,"5740":121,"5741":40,"5742":106,"5743":41,"5744":59,"5745":10,"5746":109,"5747":111,"5748":100,"5749":117,"5750":108,"5751":101,"5752":46,"5753":101,"5754":120,"5755":112,"5756":111,"5757":114,"5758":116,"5759":115,"5760":32,"5761":61,"5762":32,"5763":106,"5764":46,"5765":74,"5766":69,"5767":110,"5768":103,"5769":105,"5770":110,"5771":101,"5772":59,"5773":0,"5774":0,"5775":0,"5776":118,"5777":97,"5778":114,"5779":32,"5780":115,"5781":99,"5782":114,"5783":105,"5784":112,"5785":116,"5786":115,"5787":32,"5788":61,"5789":32,"5790":109,"5791":111,"5792":100,"5793":117,"5794":108,"5795":101,"5796":46,"5797":101,"5798":120,"5799":112,"5800":111,"5801":114,"5802":116,"5803":115,"5804":32,"5805":61,"5806":32,"5807":123,"5808":125,"5809":59,"5810":10,"5811":118,"5812":97,"5813":114,"5814":32,"5815":112,"5816":97,"5817":99,"5818":107,"5819":97,"5820":103,"5821":101,"5822":74,"5823":83,"5824":79,"5825":78,"5826":32,"5827":61,"5828":32,"5829":114,"5830":101,"5831":113,"5832":117,"5833":105,"5834":114,"5835":101,"5836":40,"5837":39,"5838":46,"5839":46,"5840":47,"5841":112,"5842":97,"5843":99,"5844":107,"5845":97,"5846":103,"5847":101,"5848":46,"5849":106,"5850":115,"5851":111,"5852":110,"5853":39,"5854":41,"5855":59,"5856":10,"5857":118,"5858":97,"5859":114,"5860":32,"5861":85,"5862":32,"5863":61,"5864":32,"5865":114,"5866":101,"5867":113,"5868":117,"5869":105,"5870":114,"5871":101,"5872":40,"5873":39,"5874":117,"5875":110,"5876":100,"5877":101,"5878":114,"5879":115,"5880":99,"5881":111,"5882":114,"5883":101,"5884":39,"5885":41,"5886":59,"5887":10,"5888":118,"5889":97,"5890":114,"5891":32,"5892":102,"5893":115,"5894":32,"5895":61,"5896":32,"5897":114,"5898":101,"5899":113,"5900":117,"5901":105,"5902":114,"5903":101,"5904":40,"5905":39,"5906":102,"5907":115,"5908":39,"5909":41,"5910":59,"5911":10,"5912":118,"5913":97,"5914":114,"5915":32,"5916":112,"5917":97,"5918":116,"5919":104,"5920":32,"5921":61,"5922":32,"5923":114,"5924":101,"5925":113,"5926":117,"5927":105,"5928":114,"5929":101,"5930":40,"5931":39,"5932":112,"5933":97,"5934":116,"5935":104,"5936":39,"5937":41,"5938":59,"5939":10,"5940":118,"5941":97,"5942":114,"5943":32,"5944":108,"5945":111,"5946":103,"5947":103,"5948":101,"5949":114,"5950":32,"5951":61,"5952":32,"5953":114,"5954":101,"5955":113,"5956":117,"5957":105,"5958":114,"5959":101,"5960":40,"5961":39,"5962":108,"5963":111,"5964":103,"5965":103,"5966":101,"5967":114,"5968":39,"5969":41,"5970":59,"5971":10,"5972":118,"5973":97,"5974":114,"5975":32,"5976":114,"5977":101,"5978":97,"5979":100,"5980":70,"5981":105,"5982":108,"5983":101,"5984":32,"5985":61,"5986":32,"5987":102,"5988":117,"5989":110,"5990":99,"5991":116,"5992":105,"5993":111,"5994":110,"5995":40,"5996":102,"5997":105,"5998":108,"5999":101,"6000":110,"6001":97,"6002":109,"6003":101,"6004":44,"6005":32,"6006":116,"6007":101,"6008":109,"6009":112,"6010":108,"6011":97,"6012":116,"6013":101,"6014":79,"6015":98,"6016":106,"6017":101,"6018":99,"6019":116,"6020":41,"6021":32,"6022":123,"6023":10,"6024":32,"6025":32,"6026":118,"6027":97,"6028":114,"6029":32,"6030":102,"6031":105,"6032":108,"6033":101,"6034":32,"6035":61,"6036":32,"6037":102,"6038":115,"6039":46,"6040":114,"6041":101,"6042":97,"6043":100,"6044":70,"6045":105,"6046":108,"6047":101,"6048":83,"6049":121,"6050":110,"6051":99,"6052":40,"6053":10,"6054":32,"6055":32,"6056":32,"6057":32,"6058":112,"6059":97,"6060":116,"6061":104,"6062":46,"6063":110,"6064":111,"6065":114,"6066":109,"6067":97,"6068":108,"6069":105,"6070":122,"6071":101,"6072":40,"6073":10,"6074":32,"6075":32,"6076":32,"6077":32,"6078":32,"6079":32,"6080":112,"6081":97,"6082":116,"6083":104,"6084":46,"6085":106,"6086":111,"6087":105,"6088":110,"6089":40,"6090":10,"6091":32,"6092":32,"6093":32,"6094":32,"6095":32,"6096":32,"6097":32,"6098":32,"6099":95,"6100":95,"6101":100,"6102":105,"6103":114,"6104":110,"6105":97,"6106":109,"6107":101,"6108":44,"6109":10,"6110":32,"6111":32,"6112":32,"6113":32,"6114":32,"6115":32,"6116":32,"6117":32,"6118":39,"6119":46,"6120":46,"6121":39,"6122":44,"6123":10,"6124":32,"6125":32,"6126":32,"6127":32,"6128":32,"6129":32,"6130":32,"6131":32,"6132":102,"6133":105,"6134":108,"6135":101,"6136":110,"6137":97,"6138":109,"6139":101,"6140":10,"6141":32,"6142":32,"6143":32,"6144":32,"6145":32,"6146":32,"6147":41,"6148":10,"6149":32,"6150":32,"6151":32,"6152":32,"6153":41,"6154":10,"6155":32,"6156":32,"6157":41,"6158":59,"6159":10,"6160":10,"6161":32,"6162":32,"6163":108,"6164":111,"6165":103,"6166":103,"6167":101,"6168":114,"6169":46,"6170":105,"6171":110,"6172":102,"6173":111,"6174":40,"6175":102,"6176":105,"6177":108,"6178":101,"6179":41,"6180":59,"6181":10,"6182":32,"6183":32,"6184":105,"6185":102,"6186":32,"6187":40,"6188":85,"6189":46,"6190":105,"6191":115,"6192":79,"6193":98,"6194":106,"6195":101,"6196":99,"6197":116,"6198":40,"6199":116,"6200":101,"6201":109,"6202":112,"6203":108,"6204":97,"6205":116,"6206":101,"6207":79,"6208":98,"6209":106,"6210":101,"6211":99,"6212":116,"6213":41,"6214":41,"6215":32,"6216":123,"6217":10,"6218":32,"6219":32,"6220":32,"6221":32,"6222":108,"6223":111,"6224":103,"6225":103,"6226":101,"6227":114,"6228":46,"6229":105,"6230":110,"6231":102,"6232":111,"6233":40,"6234":116,"6235":101,"6236":109,"6237":112,"6238":108,"6239":97,"6240":116,"6241":101,"6242":79,"6243":98,"6244":106,"6245":101,"6246":99,"6247":116,"6248":41,"6249":59,"6250":10,"6251":32,"6252":32,"6253":32,"6254":32,"6255":102,"6256":105,"6257":108,"6258":101,"6259":32,"6260":61,"6261":32,"6262":85,"6263":46,"6264":116,"6265":101,"6266":109,"6267":112,"6268":108,"6269":97,"6270":116,"6271":101,"6272":40,"6273":102,"6274":105,"6275":108,"6276":101,"6277":44,"6278":32,"6279":116,"6280":101,"6281":109,"6282":112,"6283":108,"6284":97,"6285":116,"6286":101,"6287":79,"6288":98,"6289":106,"6290":101,"6291":99,"6292":116,"6293":41,"6294":59,"6295":10,"6296":32,"6297":32,"6298":125,"6299":10,"6300":32,"6301":32,"6302":114,"6303":101,"6304":116,"6305":117,"6306":114,"6307":110,"6308":32,"6309":102,"6310":105,"6311":108,"6312":101,"6313":59,"6314":10,"6315":125,"6316":59,"6317":10,"6318":10,"6319":115,"6320":99,"6321":114,"6322":105,"6323":112,"6324":116,"6325":115,"6326":46,"6327":99,"6328":111,"6329":109,"6330":112,"6331":105,"6332":108,"6333":101,"6334":32,"6335":61,"6336":32,"6337":102,"6338":117,"6339":110,"6340":99,"6341":116,"6342":105,"6343":111,"6344":110,"6345":40,"6346":41,"6347":32,"6348":123,"6349":10,"6350":32,"6351":32,"6352":118,"6353":97,"6354":114,"6355":32,"6356":102,"6357":105,"6358":108,"6359":101,"6360":115,"6361":32,"6362":61,"6363":32,"6364":112,"6365":97,"6366":99,"6367":107,"6368":97,"6369":103,"6370":101,"6371":74,"6372":83,"6373":79,"6374":78,"6375":46,"6376":102,"6377":105,"6378":108,"6379":101,"6380":115,"6381":59,"6382":10,"6383":32,"6384":32,"6385":47,"6386":47,"6387":32,"6388":118,"6389":97,"6390":114,"6391":32,"6392":117,"6393":116,"6394":105,"6395":108,"6396":70,"6397":105,"6398":108,"6399":101,"6400":115,"6401":32,"6402":61,"6403":32,"6404":85,"6405":46,"6406":100,"6407":101,"6408":116,"6409":101,"6410":99,"6411":116,"6412":40,"6413":102,"6414":105,"6415":108,"6416":101,"6417":115,"6418":44,"6419":32,"6420":102,"6421":117,"6422":110,"6423":99,"6424":116,"6425":105,"6426":111,"6427":110,"6428":40,"6429":102,"6430":105,"6431":108,"6432":101,"6433":41,"6434":32,"6435":123,"6436":114,"6437":101,"6438":116,"6439":117,"6440":114,"6441":110,"6442":32,"6443":40,"6444":110,"6445":101,"6446":119,"6447":32,"6448":82,"6449":101,"6450":103,"6451":69,"6452":120,"6453":112,"6454":40,"6455":39,"6456":94,"6457":115,"6458":114,"6459":99,"6460":92,"6461":47,"6462":117,"6463":116,"6464":105,"6465":108,"6466":115,"6467":40,"6468":46,"6469":106,"6470":115,"6471":36,"6472":124,"6473":92,"6474":47,"6475":46,"6476":42,"6477":41,"6478":39,"6479":44,"6480":32,"6481":39,"6482":105,"6483":39,"6484":41,"6485":41,"6486":46,"6487":116,"6488":101,"6489":115,"6490":116,"6491":40,"6492":102,"6493":105,"6494":108,"6495":101,"6496":41,"6497":125,"6498":41,"6499":59,"6500":10,"6501":32,"6502":32,"6503":47,"6504":47,"6505":32,"6506":102,"6507":105,"6508":108,"6509":101,"6510":115,"6511":32,"6512":61,"6513":32,"6514":85,"6515":46,"6516":119,"6517":105,"6518":116,"6519":104,"6520":111,"6521":117,"6522":116,"6523":40,"6524":102,"6525":105,"6526":108,"6527":101,"6528":115,"6529":44,"6530":32,"6531":117,"6532":116,"6533":105,"6534":108,"6535":70,"6536":105,"6537":108,"6538":101,"6539":115,"6540":41,"6541":59,"6542":10,"6543":32,"6544":32,"6545":10,"6546":32,"6547":32,"6548":118,"6549":97,"6550":114,"6551":32,"6552":115,"6553":99,"6554":114,"6555":105,"6556":112,"6557":116,"6558":32,"6559":61,"6560":32,"6561":91,"6562":93,"6563":59,"6564":10,"6565":32,"6566":32,"6567":115,"6568":99,"6569":114,"6570":105,"6571":112,"6572":116,"6573":46,"6574":112,"6575":117,"6576":115,"6577":104,"6578":40,"6579":114,"6580":101,"6581":97,"6582":100,"6583":70,"6584":105,"6585":108,"6586":101,"6587":40,"6588":39,"6589":46,"6590":47,"6591":104,"6592":101,"6593":97,"6594":100,"6595":101,"6596":114,"6597":46,"6598":106,"6599":115,"6600":39,"6601":44,"6602":32,"6603":123,"6604":86,"6605":69,"6606":82,"6607":83,"6608":73,"6609":79,"6610":78,"6611":58,"6612":32,"6613":112,"6614":97,"6615":99,"6616":107,"6617":97,"6618":103,"6619":101,"6620":74,"6621":83,"6622":79,"6623":78,"6624":46,"6625":118,"6626":101,"6627":114,"6628":115,"6629":105,"6630":111,"6631":110,"6632":125,"6633":41,"6634":41,"6635":59,"6636":10,"6637":32,"6638":32,"6639":85,"6640":46,"6641":101,"6642":97,"6643":99,"6644":104,"6645":40,"6646":102,"6647":105,"6648":108,"6649":101,"6650":115,"6651":44,"6652":32,"6653":102,"6654":117,"6655":110,"6656":99,"6657":116,"6658":105,"6659":111,"6660":110,"6661":40,"6662":102,"6663":105,"6664":108,"6665":101,"6666":41,"6667":32,"6668":123,"6669":10,"6670":32,"6671":32,"6672":32,"6673":32,"6674":118,"6675":97,"6676":114,"6677":32,"6678":102,"6679":105,"6680":108,"6681":101,"6682":83,"6683":116,"6684":114,"6685":32,"6686":61,"6687":32,"6688":34,"6689":40,"6690":102,"6691":117,"6692":110,"6693":99,"6694":116,"6695":105,"6696":111,"6697":110,"6698":40,"6699":41,"6700":32,"6701":123,"6702":34,"6703":59,"6704":10,"6705":32,"6706":32,"6707":32,"6708":32,"6709":102,"6710":105,"6711":108,"6712":101,"6713":83,"6714":116,"6715":114,"6716":32,"6717":43,"6718":61,"6719":32,"6720":114,"6721":101,"6722":97,"6723":100,"6724":70,"6725":105,"6726":108,"6727":101,"6728":40,"6729":102,"6730":105,"6731":108,"6732":101,"6733":41,"6734":59,"6735":10,"6736":32,"6737":32,"6738":32,"6739":32,"6740":102,"6741":105,"6742":108,"6743":101,"6744":83,"6745":116,"6746":114,"6747":32,"6748":43,"6749":61,"6750":32,"6751":39,"6752":125,"6753":41,"6754":40,"6755":41,"6756":59,"6757":39,"6758":59,"6759":10,"6760":32,"6761":32,"6762":32,"6763":32,"6764":115,"6765":99,"6766":114,"6767":105,"6768":112,"6769":116,"6770":46,"6771":112,"6772":117,"6773":115,"6774":104,"6775":40,"6776":102,"6777":105,"6778":108,"6779":101,"6780":83,"6781":116,"6782":114,"6783":41,"6784":59,"6785":10,"6786":32,"6787":32,"6788":125,"6789":41,"6790":59,"6791":10,"6792":32,"6793":32,"6794":115,"6795":99,"6796":114,"6797":105,"6798":112,"6799":116,"6800":46,"6801":112,"6802":117,"6803":115,"6804":104,"6805":40,"6806":114,"6807":101,"6808":97,"6809":100,"6810":70,"6811":105,"6812":108,"6813":101,"6814":40,"6815":39,"6816":46,"6817":47,"6818":102,"6819":111,"6820":111,"6821":116,"6822":101,"6823":114,"6824":46,"6825":106,"6826":115,"6827":39,"6828":41,"6829":41,"6830":59,"6831":10,"6832":32,"6833":32,"6834":114,"6835":101,"6836":116,"6837":117,"6838":114,"6839":110,"6840":32,"6841":115,"6842":99,"6843":114,"6844":105,"6845":112,"6846":116,"6847":46,"6848":106,"6849":111,"6850":105,"6851":110,"6852":40,"6853":34,"6854":92,"6855":110,"6856":92,"6857":110,"6858":34,"6859":41,"6860":59,"6861":10,"6862":125,"6863":59,"6864":123,"6865":10,"6866":32,"6867":32,"6868":34,"6869":110,"6870":97,"6871":109,"6872":101,"6873":34,"6874":58,"6875":32,"6876":34,"6877":106,"6878":101,"6879":110,"6880":103,"6881":105,"6882":110,"6883":101,"6884":34,"6885":44,"6886":10,"6887":32,"6888":32,"6889":34,"6890":118,"6891":101,"6892":114,"6893":115,"6894":105,"6895":111,"6896":110,"6897":34,"6898":58,"6899":32,"6900":34,"6901":48,"6902":46,"6903":48,"6904":46,"6905":48,"6906":34,"6907":44,"6908":10,"6909":32,"6910":32,"6911":34,"6912":109,"6913":97,"6914":105,"6915":110,"6916":34,"6917":58,"6918":32,"6919":34,"6920":105,"6921":110,"6922":100,"6923":101,"6924":120,"6925":46,"6926":106,"6927":115,"6928":34,"6929":44,"6930":10,"6931":32,"6932":32,"6933":34,"6934":114,"6935":101,"6936":112,"6937":111,"6938":115,"6939":105,"6940":116,"6941":111,"6942":114,"6943":121,"6944":34,"6945":58,"6946":32,"6947":34,"6948":34,"6949":44,"6950":10,"6951":32,"6952":32,"6953":34,"6954":97,"6955":117,"6956":116,"6957":104,"6958":111,"6959":114,"6960":34,"6961":58,"6962":32,"6963":34,"6964":34,"6965":44,"6966":10,"6967":32,"6968":32,"6969":34,"6970":108,"6971":105,"6972":99,"6973":101,"6974":110,"6975":115,"6976":101,"6977":34,"6978":58,"6979":32,"6980":34,"6981":66,"6982":83,"6983":68,"6984":34,"6985":44,"6986":10,"6987":32,"6988":32,"6989":34,"6990":102,"6991":105,"6992":108,"6993":101,"6994":115,"6995":34,"6996":58,"6997":32,"6998":91,"6999":10,"7000":32,"7001":32,"7002":32,"7003":32,"7004":34,"7005":115,"7006":114,"7007":99,"7008":47,"7009":117,"7010":116,"7011":105,"7012":108,"7013":115,"7014":46,"7015":106,"7016":115,"7017":34,"7018":44,"7019":10,"7020":32,"7021":32,"7022":32,"7023":32,"7024":34,"7025":115,"7026":114,"7027":99,"7028":47,"7029":117,"7030":116,"7031":105,"7032":108,"7033":115,"7034":47,"7035":101,"7036":118,"7037":101,"7038":110,"7039":116,"7040":115,"7041":46,"7042":106,"7043":115,"7044":34,"7045":44,"7046":10,"7047":32,"7048":32,"7049":32,"7050":32,"7051":34,"7052":115,"7053":114,"7054":99,"7055":47,"7056":117,"7057":116,"7058":105,"7059":108,"7060":115,"7061":47,"7062":104,"7063":105,"7064":101,"7065":114,"7066":97,"7067":114,"7068":99,"7069":104,"7070":121,"7071":46,"7072":106,"7073":115,"7074":34,"7075":44,"7076":10,"7077":32,"7078":32,"7079":32,"7080":32,"7081":34,"7082":115,"7083":114,"7084":99,"7085":47,"7086":117,"7087":116,"7088":105,"7089":108,"7090":115,"7091":47,"7092":111,"7093":98,"7094":106,"7095":101,"7096":99,"7097":116,"7098":46,"7099":106,"7100":115,"7101":34,"7102":44,"7103":10,"7104":32,"7105":32,"7106":32,"7107":32,"7108":34,"7109":115,"7110":114,"7111":99,"7112":47,"7113":117,"7114":116,"7115":105,"7116":108,"7117":115,"7118":47,"7119":115,"7120":117,"7121":112,"7122":112,"7123":111,"7124":114,"7125":116,"7126":46,"7127":106,"7128":115,"7129":34,"7130":44,"7131":10,"7132":32,"7133":32,"7134":32,"7135":32,"7136":34,"7137":115,"7138":114,"7139":99,"7140":47,"7141":117,"7142":116,"7143":105,"7144":108,"7145":115,"7146":47,"7147":99,"7148":111,"7149":114,"7150":101,"7151":95,"7152":104,"7153":101,"7154":108,"7155":112,"7156":101,"7157":114,"7158":115,"7159":46,"7160":106,"7161":115,"7162":34,"7163":44,"7164":10,"7165":32,"7166":32,"7167":32,"7168":32,"7169":34,"7170":115,"7171":114,"7172":99,"7173":47,"7174":106,"7175":101,"7176":110,"7177":103,"7178":105,"7179":110,"7180":101,"7181":46,"7182":106,"7183":115,"7184":34,"7185":44,"7186":10,"7187":32,"7188":32,"7189":32,"7190":32,"7191":34,"7192":115,"7193":114,"7194":99,"7195":47,"7196":114,"7197":101,"7198":110,"7199":100,"7200":101,"7201":114,"7202":101,"7203":114,"7204":115,"7205":46,"7206":106,"7207":115,"7208":34,"7209":44,"7210":10,"7211":32,"7212":32,"7213":32,"7214":32,"7215":34,"7216":115,"7217":114,"7218":99,"7219":47,"7220":114,"7221":101,"7222":110,"7223":100,"7224":101,"7225":114,"7226":101,"7227":114,"7228":115,"7229":47,"7230":99,"7231":111,"7232":114,"7233":101,"7234":46,"7235":106,"7236":115,"7237":34,"7238":44,"7239":10,"7240":32,"7241":32,"7242":32,"7243":32,"7244":34,"7245":115,"7246":114,"7247":99,"7248":47,"7249":114,"7250":101,"7251":110,"7252":100,"7253":101,"7254":114,"7255":101,"7256":114,"7257":115,"7258":47,"7259":99,"7260":97,"7261":110,"7262":118,"7263":97,"7264":115,"7265":46,"7266":106,"7267":115,"7268":34,"7269":44,"7270":10,"7271":32,"7272":32,"7273":32,"7274":32,"7275":34,"7276":115,"7277":114,"7278":99,"7279":47,"7280":103,"7281":97,"7282":109,"7283":101,"7284":46,"7285":106,"7286":115,"7287":34,"7288":44,"7289":10,"7290":32,"7291":32,"7292":32,"7293":32,"7294":34,"7295":115,"7296":114,"7297":99,"7298":47,"7299":115,"7300":99,"7301":101,"7302":110,"7303":101,"7304":46,"7305":106,"7306":115,"7307":34,"7308":44,"7309":10,"7310":32,"7311":32,"7312":32,"7313":32,"7314":34,"7315":115,"7316":114,"7317":99,"7318":47,"7319":103,"7320":97,"7321":109,"7322":101,"7323":95,"7324":111,"7325":98,"7326":106,"7327":101,"7328":99,"7329":116,"7330":46,"7331":106,"7332":115,"7333":34,"7334":10,"7335":32,"7336":32,"7337":93,"7338":10,"7339":125,"7340":10,"7341":127,"7342":0,"7343":0,"7344":47,"7345":47,"7346":32,"7347":32,"7348":10,"7349":47,"7350":47,"7351":32,"7352":32,"7353":74,"7354":69,"7355":110,"7356":103,"7357":105,"7358":110,"7359":101,"7360":10,"7361":47,"7362":47,"7363":32,"7364":32,"7365":86,"7366":101,"7367":114,"7368":115,"7369":105,"7370":111,"7371":110,"7372":58,"7373":32,"7374":60,"7375":37,"7376":61,"7377":32,"7378":86,"7379":69,"7380":82,"7381":83,"7382":73,"7383":79,"7384":78,"7385":32,"7386":37,"7387":62,"7388":10,"7389":47,"7390":47,"7391":32,"7392":32,"7393":10,"7394":10,"7395":40,"7396":102,"7397":117,"7398":110,"7399":99,"7400":116,"7401":105,"7402":111,"7403":110,"7404":40,"7405":41,"7406":32,"7407":123,"7408":10,"7409":32,"7410":32,"7411":118,"7412":97,"7413":114,"7414":32,"7415":74,"7416":69,"7417":110,"7418":103,"7419":105,"7420":110,"7421":101,"7422":32,"7423":61,"7424":32,"7425":123,"7426":125,"7427":59,"7428":10,"7429":32,"7430":32,"7431":118,"7432":97,"7433":114,"7434":32,"7435":114,"7436":111,"7437":111,"7438":116,"7439":32,"7440":61,"7441":32,"7442":116,"7443":104,"7444":105,"7445":115,"7446":59,"7447":10,"7448":32,"7449":32,"7450":114,"7451":111,"7452":111,"7453":116,"7454":46,"7455":74,"7456":69,"7457":110,"7458":103,"7459":105,"7460":110,"7461":101,"7462":32,"7463":61,"7464":32,"7465":74,"7466":69,"7467":110,"7468":103,"7469":105,"7470":110,"7471":101,"7472":59,"7473":64,"7474":216,"7475":4,"7476":0,"7477":0,"7478":0,"7479":0,"7480":160,"7481":209,"7482":178,"7483":211,"7484":224,"7485":127,"7486":0,"7487":0,"7488":160,"7489":209,"7490":178,"7491":211,"7492":29,"7493":0,"7494":0,"7495":0,"7496":30,"7497":0,"7498":0,"7499":0,"7500":24,"7501":0,"7502":0,"7503":0,"7504":104,"7505":202,"7506":33,"7507":39,"7508":181,"7509":21,"7510":0,"7511":0,"7512":176,"7513":202,"7514":33,"7515":39,"7516":181,"7517":21,"7518":0,"7519":0,"7520":112,"7521":4,"7522":0,"7523":0,"7524":0,"7525":0,"7526":0,"7527":0,"7528":0,"7529":0,"7530":0,"7531":0,"7532":224,"7533":127,"7534":0,"7535":0,"7536":1,"7537":0,"7538":0,"7539":0,"7540":0,"7541":0,"7542":0,"7543":0,"7544":0,"7545":0,"7546":0,"7547":0,"7548":0,"7549":0,"7550":0,"7551":0,"7552":0,"7553":0,"7554":0,"7555":0,"7556":0,"7557":0,"7558":0,"7559":0,"7560":0,"7561":0,"7562":0,"7563":0,"7564":0,"7565":0,"7566":0,"7567":0,"7568":31,"7569":0,"7570":0,"7571":0,"7572":28,"7573":0,"7574":0,"7575":0,"7576":144,"7577":66,"7578":216,"7579":4,"7580":0,"7581":0,"7582":0,"7583":0,"7584":168,"7585":209,"7586":178,"7587":211,"7588":224,"7589":127,"7590":0,"7591":0,"7592":0,"7593":224,"7594":166,"7595":211,"7596":32,"7597":0,"7598":0,"7599":0,"7600":33,"7601":0,"7602":0,"7603":0,"7604":17,"7605":0,"7606":0,"7607":0,"7608":152,"7609":201,"7610":33,"7611":39,"7612":181,"7613":21,"7614":0,"7615":0,"7616":48,"7617":205,"7618":33,"7619":39,"7620":181,"7621":21,"7622":0,"7623":0,"7624":108,"7625":4,"7626":0,"7627":0,"7628":0,"7629":0,"7630":0,"7631":0,"7632":0,"7633":0,"7634":0,"7635":0,"7636":0,"7637":0,"7638":0,"7639":0,"7640":34,"7641":0,"7642":0,"7643":0,"7644":0,"7645":0,"7646":0,"7647":0,"7648":1,"7649":0,"7650":0,"7651":0,"7652":0,"7653":0,"7654":0,"7655":0,"7656":208,"7657":77,"7658":216,"7659":4,"7660":0,"7661":0,"7662":0,"7663":0,"7664":95,"7665":4,"7666":0,"7667":0,"7668":8,"7669":0,"7670":0,"7671":0,"7672":152,"7673":205,"7674":33,"7675":39,"7676":181,"7677":21,"7678":0,"7679":0,"7680":176,"7681":69,"7682":216,"7683":4,"7684":0,"7685":0,"7686":0,"7687":0,"7688":176,"7689":209,"7690":178,"7691":211,"7692":224,"7693":127,"7694":0,"7695":0,"7696":192,"7697":207,"7698":33,"7699":39,"7700":35,"7701":0,"7702":0,"7703":0,"7704":36,"7705":0,"7706":0,"7707":0,"7708":0,"7709":0,"7710":0,"7711":0,"7712":16,"7713":229,"7714":166,"7715":211,"7716":224,"7717":127,"7718":0,"7719":0,"7720":224,"7721":199,"7722":33,"7723":39,"7724":181,"7725":21,"7726":0,"7727":0,"7728":1,"7729":0,"7730":0,"7731":0,"7732":255,"7733":255,"7734":255,"7735":255,"7736":96,"7737":253,"7738":252,"7739":4,"7740":0,"7741":0,"7742":0,"7743":0,"7744":16,"7745":69,"7746":216,"7747":4,"7748":0,"7749":0,"7750":0,"7751":0,"7752":192,"7753":209,"7754":178,"7755":211,"7756":224,"7757":127,"7758":0,"7759":0,"7760":9,"7761":0,"7762":0,"7763":0,"7764":37,"7765":0,"7766":0,"7767":0,"7768":38,"7769":0,"7770":0,"7771":0,"7772":181,"7773":21,"7774":0,"7775":0,"7776":184,"7777":209,"7778":178,"7779":211,"7780":224,"7781":127,"7782":0,"7783":0,"7784":176,"7785":64,"7786":216,"7787":4,"7788":0,"7789":0,"7790":0,"7791":0,"7792":200,"7793":209,"7794":178,"7795":211,"7796":224,"7797":127,"7798":0,"7799":0,"7800":0,"7801":0,"7802":0,"7803":0,"7804":39,"7805":0,"7806":0,"7807":0,"7808":40,"7809":0,"7810":0,"7811":0,"7812":1,"7813":0,"7814":0,"7815":0,"7816":0,"7817":206,"7818":33,"7819":39,"7820":181,"7821":21,"7822":0,"7823":0,"7824":64,"7825":206,"7826":33,"7827":39,"7828":181,"7829":21,"7830":0,"7831":0,"7832":156,"7833":4,"7834":0,"7835":0,"7836":41,"7837":0,"7838":0,"7839":0,"7840":1,"7841":0,"7842":0,"7843":0,"7844":0,"7845":0,"7846":0,"7847":0,"7848":0,"7849":0,"7850":0,"7851":0,"7852":0,"7853":0,"7854":0,"7855":0,"7856":0,"7857":0,"7858":0,"7859":0,"7860":0,"7861":0,"7862":0,"7863":0,"7864":0,"7865":0,"7866":0,"7867":0,"7868":0,"7869":0,"7870":0,"7871":0,"7872":0,"7873":0,"7874":0,"7875":0,"7876":0,"7877":0,"7878":0,"7879":0,"7880":255,"7881":255,"7882":255,"7883":255,"7884":172,"7885":3,"7886":0,"7887":0,"7888":176,"7889":69,"7890":216,"7891":4,"7892":0,"7893":0,"7894":0,"7895":0,"7896":216,"7897":209,"7898":178,"7899":211,"7900":224,"7901":127,"7902":0,"7903":0,"7904":80,"7905":210,"7906":178,"7907":211,"7908":42,"7909":0,"7910":0,"7911":0,"7912":43,"7913":0,"7914":0,"7915":0,"7916":181,"7917":21,"7918":0,"7919":0,"7920":208,"7921":209,"7922":178,"7923":211,"7924":224,"7925":127,"7926":0,"7927":0,"7928":32,"7929":195,"7930":33,"7931":39,"7932":181,"7933":21,"7934":0,"7935":0,"7936":0,"7937":0,"7938":0,"7939":0,"7940":167,"7941":4,"7942":0,"7943":0,"7944":176,"7945":206,"7946":33,"7947":39,"7948":181,"7949":21,"7950":0,"7951":0,"7952":32,"7953":207,"7954":33,"7955":39,"7956":181,"7957":21,"7958":0,"7959":0,"7960":4,"7961":0,"7962":0,"7963":0,"7964":1,"7965":0,"7966":0,"7967":0,"7968":96,"7969":207,"7970":33,"7971":39,"7972":181,"7973":21,"7974":0,"7975":0,"7976":32,"7977":212,"7978":178,"7979":211,"7980":224,"7981":127,"7982":0,"7983":0,"7984":64,"7985":134,"7986":10,"7987":39,"7988":181,"7989":21,"7990":0,"7991":0,"7992":115,"7993":107,"7994":37,"7995":58,"7996":5,"7997":0,"7998":0,"7999":0,"8000":0,"8001":0,"8002":0,"8003":0,"8004":0,"8005":0,"8006":0,"8007":0,"8008":0,"8009":0,"8010":0,"8011":0,"8012":0,"8013":0,"8014":0,"8015":0,"8016":0,"8017":0,"8018":0,"8019":0,"8020":0,"8021":0,"8022":0,"8023":0,"8024":255,"8025":255,"8026":255,"8027":255,"8028":224,"8029":127,"8030":0,"8031":0,"8032":176,"8033":69,"8034":216,"8035":4,"8036":0,"8037":0,"8038":0,"8039":0,"8040":232,"8041":209,"8042":178,"8043":211,"8044":224,"8045":127,"8046":0,"8047":0,"8048":200,"8049":227,"8050":166,"8051":211,"8052":44,"8053":0,"8054":0,"8055":0,"8056":45,"8057":0,"8058":0,"8059":0,"8060":181,"8061":21,"8062":0,"8063":0,"8064":224,"8065":209,"8066":178,"8067":211,"8068":224,"8069":127,"8070":0,"8071":0,"8072":216,"8073":167,"8074":24,"8075":39,"8076":181,"8077":21,"8078":0,"8079":0,"8080":0,"8081":0,"8082":0,"8083":39,"8084":169,"8085":4,"8086":0,"8087":0,"8088":64,"8089":207,"8090":33,"8091":39,"8092":181,"8093":21,"8094":0,"8095":0,"8096":0,"8097":0,"8098":0,"8099":0,"8100":0,"8101":0,"8102":0,"8103":0,"8104":73,"8105":185,"8106":162,"8107":84,"8108":172,"8109":3,"8110":0,"8111":0,"8112":0,"8113":0,"8114":0,"8115":0,"8116":0,"8117":0,"8118":0,"8119":0,"8120":0,"8121":0,"8122":0,"8123":0,"8124":0,"8125":0,"8126":0,"8127":0,"8128":0,"8129":0,"8130":0,"8131":0,"8132":0,"8133":0,"8134":0,"8135":0,"8136":233,"8137":237,"8138":247,"8139":163,"8140":84,"8141":7,"8142":0,"8143":0,"8144":0,"8145":0,"8146":0,"8147":0,"8148":0,"8149":0,"8150":0,"8151":0,"8152":145,"8153":172,"8154":160,"8155":84,"8156":172,"8157":3,"8158":0,"8159":0,"8160":0,"8161":0,"8162":0,"8163":0,"8164":0,"8165":0,"8166":0,"8167":0,"8168":9,"8169":238,"8170":247,"8171":163,"8172":84,"8173":7,"8174":0,"8175":0,"8176":0,"8177":0,"8178":0,"8179":0,"8180":0,"8181":0,"8182":0,"8183":0,"8184":0,"8185":0,"8186":0,"8187":0,"8188":0,"8189":0,"8190":0,"8191":0,"length":8192,"used":7480},"offset":7344,"level":"info","message":"","timestamp":"2013-09-17T07:40:54.980Z"}
{"VERSION":"0.0.0","level":"info","message":"","timestamp":"2013-09-17T07:40:55.115Z"}
{"level":"info","message":"// \n// JEngine\n// Version: 0.0.0\n// \n\n(function() {\n var JEngine = {};\n var root = this;\n root.JEngine = JEngine;\n\n(function() {JEngine.Utils = {};})();\n\n(function() {// Regular expression used to split event strings.\nvar eventSplitter = /\\s+/;\n\n// Implement fancy features of the Events API such as multiple event\n// names `\"change blur\"` and jQuery-style event maps `{change: action}`\n// in terms of the existing API.\nvar eventsApi = function (obj, action, name, rest) {\n var key, names, i, l;\n if (!name) {\n return true;\n }\n\n // Handle event maps.\n if (typeof name === 'object') {\n for (key in name) {\n if (name.hasOwnProperty(key)) {\n obj[action].apply(obj, [key, name[key]].concat(rest));\n }\n }\n return false;\n }\n\n // Handle space separated event names.\n if (eventSplitter.test(name)) {\n names = name.split(eventSplitter);\n for (i = 0, l = names.length; i < l; i++) {\n obj[action].apply(obj, [names[i]].concat(rest));\n }\n return false;\n }\n\n return true;\n};\n\n// A difficult-to-believe, but optimized internal dispatch function for\n// triggering events. Tries to keep the usual cases speedy (most internal\n// Backbone events have 3 arguments).\nvar triggerEvents = function (events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args);\n }\n};\n\nvar Events = JEngine.Utils.Events = {\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n on: function (name, callback, context) {\n if (!eventsApi(this, 'on', name, [callback, context]) || !callback) return this;\n this._events || (this._events = {});\n var events = this._events[name] || (this._events[name] = []);\n events.push({callback: callback, context: context, ctx: context || this});\n return this;\n },\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, it will be removed.\n once: function (name, callback, context) {\n if (!eventsApi(this, 'once', name, [callback, context]) || !callback) return this;\n var self = this;\n var once = _.once(function() {\n self.off(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n return this.on(name, once, context);\n },\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n off: function (name, callback, context) {\n var retain, ev, events, names, i, l, j, k;\n if (!this._events || !eventsApi(this, 'off', name, [callback, context])) return this;\n if (!name && !callback && !context) {\n this._events = {};\n return this;\n }\n\n names = name ? [name] : _.keys(this._events);\n for (i = 0, l = names.length; i < l; i++) {\n name = names[i];\n if (events = this._events[name]) {\n this._events[name] = retain = [];\n if (callback || context) {\n for (j = 0, k = events.length; j < k; j++) {\n ev = events[j];\n if ((callback && callback !== ev.callback && callback !== ev.callback._callback) ||\n (context && context !== ev.context)) {\n retain.push(ev);\n }\n }\n }\n if (!retain.length) delete this._events[name];\n }\n }\n\n return this;\n },\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n trigger: function (name, options, args) {\n if (!this._events) return this;\n if (typeof args == 'undefined') {\n args = options;\n options = {};\n }\n options || (options = {});\n if (!_.hasKey(options, 'capture')) {\n options.capture = (this._eventsDefaultCapture || false);\n }\n if (!_.hasKey(options, 'bubble')) {\n options.bubble = true;\n }\n args || (args = []);\n if (!eventsApi(this, 'trigger', name, args)) return this;\n var events = this._events[name];\n var allEvents = this._events.all;\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, arguments);\n if (options.bubble) {\n if (options.capture) {\n var children = (this.children || []);\n children.forEach(function(child) {\n if (typeof child.trigger === 'function') child.trigger(arguments);\n });\n } else {\n if (this.parent && typeof this.parent.trigger === 'function') this.parent.trigger(arguments);\n }\n }\n return this;\n },\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n stopListening: function (obj, name, callback) {\n var listeners = this._listeners;\n if (!listeners) return this;\n var deleteListener = !name && !callback;\n if (typeof name === 'object') callback = this;\n if (obj) (listeners = {})[obj._listenerId] = obj;\n for (var id in listeners) {\n listeners[id].off(name, callback, this);\n if (deleteListener) delete this._listeners[id];\n }\n return this;\n }\n\n};\n\n\nvar listenMethods = {listenTo: 'on', listenToOnce: 'once'};\n\n// Inversion-of-control versions of `on` and `once`. Tell *this* object to\n// listen to an event in another object ... keeping track of what it's\n// listening to.\n_.each(listenMethods, function(implementation, method) {\n Events[method] = function(obj, name, callback) {\n var listeners = this._listeners || (this._listeners = {});\n var id = obj._listenerId || (obj._listenerId = _.uniqueId('l'));\n listeners[id] = obj;\n if (typeof name === 'object') callback = this;\n obj[implementation](name, callback, this);\n return this;\n };\n});\n\n// Aliases for backwards compatibility.\nEvents.bind = Events.on;\nEvents.unbind = Events.off;})();\n\n(function() {var Hierarchy = JEngine.Utils.Hierarchy = {\n add: function() {\n var self = this;\n self.children || (self.children = []);\n var children = _.flatten(slice.call(arguments));\n children.forEach(function(child) {\n if (!_.include(children, child)) {\n self.children.push(child);\n child.parent = self;\n child.trigger && child.trigger('added');\n }\n });\n self.trigger && self.trigger('addedChild');\n return this;\n },\n\n remove: function() {\n var self = this;\n self.children || (self.children = []);\n var children = _.flatten(slice.call(arguments));\n children.forEach(function(child) {\n if (!_.include(children, child)) {\n self.children = _.without(self.children, child);\n child.parent = undefined;\n child.trigger && child.trigger('removed');\n }\n });\n self.trigger && self.trigger('removeChild');\n return this;\n },\n\n removeSelf: function() {\n var self = this;\n if (self.parent && typeof self.parent.remove === 'function') {\n self.parent.remove(self);\n }\n self.parent = undefined;\n return this;\n },\n\n addTo: function(parent) {\n var self = this;\n if (parent && typeof parent.add === 'function') {\n parent.add(self);\n }\n return this;\n }\n};})();\n\n(function() {var Obj = JEngine.Utils.Obj = function(options) {\n this.handleOptions(options);\n };\n\n _.extend(Obj, {\n extend: function (protoProps, staticProps) {\n var parent = this,\n child,\n Parent;\n // The constructor function for the new subclass is either defined by you\n // (the \"constructor\" property in your `extend` definition), or defaulted\n // by us to simply call the parent's constructor.\n if (protoProps && _.has(protoProps, 'constructor')) {\n child = protoProps.constructor;\n } else {\n child = function () { return parent.apply(this, arguments); };\n }\n\n // Add static properties to the constructor function, if supplied.\n _.extend(child, parent, staticProps);\n\n // Set the prototype chain to inherit from `parent`, without calling\n // `parent`'s constructor function.\n Parent = function () { this.constructor = child; };\n Parent.prototype = parent.prototype;\n child.prototype = new Parent();\n\n // Add prototype properties (instance properties) to the subclass,\n // if supplied.\n if (protoProps) {\n _.extend(child.prototype, protoProps);\n }\n\n // Set a convenience property in case the parent's prototype is needed\n // later.\n child.__super__ = parent;\n child.prototype.__super__ = parent.prototype;\n\n return child;\n }\n });\n\n _.extend(Obj.prototype, Events, Hierarchy, {\n handleOptions: function(options, defaults) {\n defaults || (defaults = this.defaults || {});\n options = options || {};\n this.options = _.defaults(options, defaults);\n return this;\n },\n\n _super: function () {\n var self = this,\n caller = arguments.callee.caller,\n funcName = _.detect(_.functions(self), function (attr) {\n return self[attr] === caller;\n }),\n args = arguments.length > 0 ? arguments : caller.arguments;\n if (funcName) {\n if (self.__super__) {\n var sClass = this.__super__;\n if (typeof sClass[funcName] === 'function') {\n sClass[funcName].apply(this, args);\n } else {\n console.warn('Super method for \"' + funcName + '\" not found!');\n }\n }\n }\n },\n\n clone: function() {\n \n }\n });\n\n return Obj;\n};})();\n\n(function() {_.extend(JEngine.Utils, {\n supportsWebGL: function() {\n try {\n var canvas = document.createElement('CANVAS');\n if (canvas.getContext('webgl') || canvas.getContext('experimental-webgl')) {\n return true;\n }\n } catch (err) {\n return false;\n }\n },\n\n supportsCanvas: function() {\n try {\n var canvas = document.createElement('CANVAS');\n if (canvas.getContext('2d')) {\n return true;\n }\n } catch (err) {\n return false;\n }\n }\n}})();\n\n(function() {var class2type = {};\n\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \").forEach(function(name, i) {\n class2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n});\n\nvar hasOwn = function(class2type) {\n return class2type.hasOwnProperty;\n};\n\n_.extend(JEngine.Utils, {\n extend: function() {\n var options, name, src, copy, copyIsArray, clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false;\n\n // Handle a deep copy situation\n if ( typeof target === \"boolean\" ) {\n deep = target;\n target = arguments[1] || {};\n // skip the boolean and the target\n i = 2;\n }\n\n // Handle case when target is a string or something (possible in deep copy)\n if ( typeof target !== \"object\" && !utils.isFunction(target) ) {\n target = {};\n }\n\n for ( ; i < length; i++ ) {\n // Only deal with non-null/undefined values\n if ( (options = arguments[ i ]) != null ) {\n // Extend the base object\n for ( name in options ) {\n src = target[ name ];\n copy = options[ name ];\n\n // Prevent never-ending loop\n if ( target === copy ) {\n continue;\n }\n\n // Recurse if we're merging plain objects or arrays\n if ( deep && copy && ( utils.isPlainObject(copy) || (copyIsArray = utils.isArray(copy)) ) ) {\n if ( copyIsArray ) {\n copyIsArray = false;\n clone = src && utils.isArray(src) ? src : [];\n\n } else {\n clone = src && utils.isPlainObject(src) ? src : {};\n }\n\n // Never move original objects, clone them\n target[ name ] = utils.extend( deep, clone, copy );\n\n // Don't bring in undefined values\n } else if ( copy !== undefined ) {\n target[ name ] = copy;\n }\n }\n }\n }\n\n // Return the modified object\n return target;\n },\n\n isFunction: function( obj ) {\n return utils.type(obj) === \"function\";\n },\n\n isArray: Array.isArray,\n\n isNumeric: function( obj ) {\n return !isNaN(parseFloat(obj)) && isFinite(obj);\n },\n\n type: function( obj ) {\n if (obj == null) {\n return String(obj);\n }\n // Support: Safari <= 5.1 (functionish RegExp)\n return typeof obj === \"object\" || typeof obj === \"function\" ?\n class2type[ toString.call(obj) ] || \"object\" :\n typeof obj;\n },\n\n isWindow: function( obj ) {\n return obj != null && obj === obj.window;\n },\n\n isPlainObject: function( obj ) {\n // Not plain objects:\n // - Any object or value whose internal [[Class]] property is not \"[object Object]\"\n // - DOM nodes\n // - window\n if ( utils.type( obj ) !== \"object\" || obj.nodeType || utils.isWindow( obj ) ) {\n return false;\n }\n\n // Support: Firefox <20\n // The try/catch suppresses exceptions thrown when attempting to access\n // the \"constructor\" property of certain host objects, ie. |window.location|\n // https://bugzilla.mozilla.org/show_bug.cgi?id=814622\n try {\n if ( obj.constructor &&\n !hasOwn.call( obj.constructor.prototype, \"isPrototypeOf\" ) ) {\n return false;\n }\n } catch ( e ) {\n return false;\n }\n\n // If the function hasn't returned already, we're confident that\n // |obj| is a plain object, created by {} or constructed with new Object\n return true;\n },\n\n isEmptyObject: function( obj ) {\n var name;\n for ( name in obj ) {\n return false;\n }\n return true;\n },\n\n error: function( msg ) {\n throw new Error( msg );\n },\n\n noop: function() {},\n});})();\n\n(function() {JEngine.Renderers = module.exports = {};})();\n\n(function() {var NOT_IMPLEMENTED_ERROR = function(method) {\n return new Error('Renderers must respond to \"'+ method +'\"!');\n}\nvar Renderer = JEngine.Renderers.Core = JEngine.Utils.Obj.extend({\n constructor: function(engine) {\n this.setEngine(engine);\n },\n\n setEngine: function(engine) {\n this.engine = engine;\n this.setContext();\n return this;\n },\n\n setContext: function() {\n throw NOT_IMPLEMENTED_ERROR('setContext');\n },\n\n draw: function(/* */) {\n throw NOT_IMPLEMENTED_ERROR('draw');\n },\n\n drawSquare: function(/* */) {\n \n }\n});})();\n\n(function() {var Canvas = JEngine.Renderers.Canvas = JEngine.Renderers.Core.extend({\n setContext: function() {\n this.context = this.engine.canvas.getContext('2d');\n return this;\n }\n});})();\n\n(function() {var Game = JEngine.Game = JEngine.Utils.Obj.extend({\n constructor: function(options) {\n this._super();\n this.rootUrl = this.options.rootUrl;\n this.urlPaths = {};\n this.processPackageJSON();\n this.setElement(this.options.element);\n this.start();\n },\n\n defaults: {\n element: 'body',\n rootUrl: document.location.origin,\n urlPaths: {\n root: '',\n scene: 'scene'\n },\n },\n\n processPackageJSON: function() {\n var self = this;\n this.getJSON('package.json', {\n async: false,\n success: function(json) {\n self.manifest = json;\n self.urlPaths = _.extend({}, self.urlPaths, self.options.urlPaths, self.manifest.urlPaths);\n }\n });\n return this;\n },\n\n getJSON: function(type, path, options) {\n var url;\n if (!options) {\n if (_.isObject(path)) {\n options = path;\n path = type;\n url = this.urlFor(path);\n } else {\n options = {};\n url = this.urlFor(type, path);\n }\n } else {\n url = this.urlFor(type, path);\n }\n options.url = url;\n options.dataFilter = function(data, dataType) {\n if ($.isPlainObject(data)) {\n return data\n }\n if (_.isString(data)) {\n try {\n return JSON.parse(data);\n } catch (err) {\n throw {\n name: 'Bad JSON Response', \n message: 'Failed to parse response from '+ url\n };\n }\n } else {\n throw {\n name: 'Bad JSON Response', \n message: 'Response from '+ url +' was in the wrong format ['+ dataType +']'\n };\n }\n };\n return $.ajax(options);\n },\n\n urlFor: function(type, path) {\n if (!path) {\n path = type;\n type = 'root'\n }\n return _.compact([this.rootUrl, this.urlPaths[type], path]).join('/');\n },\n\n setElement: function(value) {\n var elem = $(value);\n this.$element = elem;\n this.element = elem.get(0);\n this.$element.data({jengine: this});\n return this;\n },\n\n $: function(selector) {\n return this.$element.find(selector);\n },\n\n start: function() {\n this.scene || this.loadScene(this.options.scene || this.manifest.scene);\n this.scene.start();\n return this;\n },\n\n loadScene: function(scene) {\n this.scene && this.scene.unload();\n this.scene = new JEngine.Scene(this, scene);\n return this;\n }\n});})();\n\n(function() {var Scene = module.exports = JEngine.Utils.Obj.extend({\n constructor: function(engine, scene, options) {\n if (this instanceof JEngine.Scene) {\n this.engine = engine;\n this._super(options);\n this.setManifest(scene);\n } else {\n if (scene instanceof JEngine.Scene) {\n scene.engine = engine;\n return scene;\n } else {\n return new JEngine.Scene(engine, scene, options);\n }\n }\n },\n\n setManifest: function(scene) {\n if (scene) {\n if (_.isObject(scene)) {\n this.manifest = scene;\n this.load();\n } else {\n var self = this;\n this.engine.getJSON('scene', scene, function(json) {\n self.manifest = json;\n this.load();\n });\n }\n } else {\n this.load();\n }\n },\n\n load: function() {\n console.log(this.manifest);\n return this;\n },\n\n start: function() {\n if (!this.engine) throw new Error('JEngine Scene cannot start without an engine.');\n return this;\n }\n}, {\n Load: function(scene, options) {\n return JEngine.Scene(false, scene, options);\n }\n});})();\n\n(function() {var GameObject = JEngine.GameObject = JEngine.Utils.Obj.extend({\n constructor: function(manifest) {\n\n }\n}, {\n Create: function(manifest, position, rotation, scale) {\n \n }\n});})();\n\n}).call(this);","timestamp":"2013-09-17T07:45:09.754Z"}
{"level":"info","message":"// \n// JEngine\n// Version: 0.0.0\n// \n\n(function() {\n var JEngine = {};\n var root = this;\n root.JEngine = JEngine;\n\n(function() {JEngine.Utils = {};})();\n\n(function() {// Regular expression used to split event strings.\nvar eventSplitter = /\\s+/;\n\n// Implement fancy features of the Events API such as multiple event\n// names `\"change blur\"` and jQuery-style event maps `{change: action}`\n// in terms of the existing API.\nvar eventsApi = function (obj, action, name, rest) {\n var key, names, i, l;\n if (!name) {\n return true;\n }\n\n // Handle event maps.\n if (typeof name === 'object') {\n for (key in name) {\n if (name.hasOwnProperty(key)) {\n obj[action].apply(obj, [key, name[key]].concat(rest));\n }\n }\n return false;\n }\n\n // Handle space separated event names.\n if (eventSplitter.test(name)) {\n names = name.split(eventSplitter);\n for (i = 0, l = names.length; i < l; i++) {\n obj[action].apply(obj, [names[i]].concat(rest));\n }\n return false;\n }\n\n return true;\n};\n\n// A difficult-to-believe, but optimized internal dispatch function for\n// triggering events. Tries to keep the usual cases speedy (most internal\n// Backbone events have 3 arguments).\nvar triggerEvents = function (events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args);\n }\n};\n\nvar Events = JEngine.Utils.Events = {\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n on: function (name, callback, context) {\n if (!eventsApi(this, 'on', name, [callback, context]) || !callback) return this;\n this._events || (this._events = {});\n var events = this._events[name] || (this._events[name] = []);\n events.push({callback: callback, context: context, ctx: context || this});\n return this;\n },\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, it will be removed.\n once: function (name, callback, context) {\n if (!eventsApi(this, 'once', name, [callback, context]) || !callback) return this;\n var self = this;\n var once = _.once(function() {\n self.off(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n return this.on(name, once, context);\n },\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n off: function (name, callback, context) {\n var retain, ev, events, names, i, l, j, k;\n if (!this._events || !eventsApi(this, 'off', name, [callback, context])) return this;\n if (!name && !callback && !context) {\n this._events = {};\n return this;\n }\n\n names = name ? [name] : _.keys(this._events);\n for (i = 0, l = names.length; i < l; i++) {\n name = names[i];\n if (events = this._events[name]) {\n this._events[name] = retain = [];\n if (callback || context) {\n for (j = 0, k = events.length; j < k; j++) {\n ev = events[j];\n if ((callback && callback !== ev.callback && callback !== ev.callback._callback) ||\n (context && context !== ev.context)) {\n retain.push(ev);\n }\n }\n }\n if (!retain.length) delete this._events[name];\n }\n }\n\n return this;\n },\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n trigger: function (name, options, args) {\n if (!this._events) return this;\n if (typeof args == 'undefined') {\n args = options;\n options = {};\n }\n options || (options = {});\n if (!_.hasKey(options, 'capture')) {\n options.capture = (this._eventsDefaultCapture || false);\n }\n if (!_.hasKey(options, 'bubble')) {\n options.bubble = true;\n }\n args || (args = []);\n if (!eventsApi(this, 'trigger', name, args)) return this;\n var events = this._events[name];\n var allEvents = this._events.all;\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, arguments);\n if (options.bubble) {\n if (options.capture) {\n var children = (this.children || []);\n children.forEach(function(child) {\n if (typeof child.trigger === 'function') child.trigger(arguments);\n });\n } else {\n if (this.parent && typeof this.parent.trigger === 'function') this.parent.trigger(arguments);\n }\n }\n return this;\n },\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n stopListening: function (obj, name, callback) {\n var listeners = this._listeners;\n if (!listeners) return this;\n var deleteListener = !name && !callback;\n if (typeof name === 'object') callback = this;\n if (obj) (listeners = {})[obj._listenerId] = obj;\n for (var id in listeners) {\n listeners[id].off(name, callback, this);\n if (deleteListener) delete this._listeners[id];\n }\n return this;\n }\n\n};\n\n\nvar listenMethods = {listenTo: 'on', listenToOnce: 'once'};\n\n// Inversion-of-control versions of `on` and `once`. Tell *this* object to\n// listen to an event in another object ... keeping track of what it's\n// listening to.\n_.each(listenMethods, function(implementation, method) {\n Events[method] = function(obj, name, callback) {\n var listeners = this._listeners || (this._listeners = {});\n var id = obj._listenerId || (obj._listenerId = _.uniqueId('l'));\n listeners[id] = obj;\n if (typeof name === 'object') callback = this;\n obj[implementation](name, callback, this);\n return this;\n };\n});\n\n// Aliases for backwards compatibility.\nEvents.bind = Events.on;\nEvents.unbind = Events.off;})();\n\n(function() {var Hierarchy = JEngine.Utils.Hierarchy = {\n add: function() {\n var self = this;\n self.children || (self.children = []);\n var children = _.flatten(slice.call(arguments));\n children.forEach(function(child) {\n if (!_.include(children, child)) {\n self.children.push(child);\n child.parent = self;\n child.trigger && child.trigger('added');\n }\n });\n self.trigger && self.trigger('addedChild');\n return this;\n },\n\n remove: function() {\n var self = this;\n self.children || (self.children = []);\n var children = _.flatten(slice.call(arguments));\n children.forEach(function(child) {\n if (!_.include(children, child)) {\n self.children = _.without(self.children, child);\n child.parent = undefined;\n child.trigger && child.trigger('removed');\n }\n });\n self.trigger && self.trigger('removeChild');\n return this;\n },\n\n removeSelf: function() {\n var self = this;\n if (self.parent && typeof self.parent.remove === 'function') {\n self.parent.remove(self);\n }\n self.parent = undefined;\n return this;\n },\n\n addTo: function(parent) {\n var self = this;\n if (parent && typeof parent.add === 'function') {\n parent.add(self);\n }\n return this;\n }\n};})();\n\n(function() {var Obj = JEngine.Utils.Obj = function(options) {\n this.handleOptions(options);\n};\n\n_.extend(Obj, {\n extend: function (protoProps, staticProps) {\n var parent = this,\n child,\n Parent;\n // The constructor function for the new subclass is either defined by you\n // (the \"constructor\" property in your `extend` definition), or defaulted\n // by us to simply call the parent's constructor.\n if (protoProps && _.has(protoProps, 'constructor')) {\n child = protoProps.constructor;\n } else {\n child = function () { return parent.apply(this, arguments); };\n }\n\n // Add static properties to the constructor function, if supplied.\n _.extend(child, parent, staticProps);\n\n // Set the prototype chain to inherit from `parent`, without calling\n // `parent`'s constructor function.\n Parent = function () { this.constructor = child; };\n Parent.prototype = parent.prototype;\n child.prototype = new Parent();\n\n // Add prototype properties (instance properties) to the subclass,\n // if supplied.\n if (protoProps) {\n _.extend(child.prototype, protoProps);\n }\n\n // Set a convenience property in case the parent's prototype is needed\n // later.\n child.__super__ = parent;\n child.prototype.__super__ = parent.prototype;\n\n return child;\n }\n});\n\n_.extend(Obj.prototype, Events, Hierarchy, {\n handleOptions: function(options, defaults) {\n defaults || (defaults = this.defaults || {});\n options = options || {};\n this.options = _.defaults(options, defaults);\n return this;\n },\n\n _super: function () {\n var self = this,\n caller = arguments.callee.caller,\n funcName = _.detect(_.functions(self), function (attr) {\n return self[attr] === caller;\n }),\n args = arguments.length > 0 ? arguments : caller.arguments;\n if (funcName) {\n if (self.__super__) {\n var sClass = this.__super__;\n if (typeof sClass[funcName] === 'function') {\n sClass[funcName].apply(this, args);\n } else {\n console.warn('Super method for \"' + funcName + '\" not found!');\n }\n }\n }\n },\n\n clone: function() {\n \n }\n});})();\n\n(function() {_.extend(JEngine.Utils, {\n supportsWebGL: function() {\n try {\n var canvas = document.createElement('CANVAS');\n if (canvas.getContext('webgl') || canvas.getContext('experimental-webgl')) {\n return true;\n }\n } catch (err) {\n return false;\n }\n },\n\n supportsCanvas: function() {\n try {\n var canvas = document.createElement('CANVAS');\n if (canvas.getContext('2d')) {\n return true;\n }\n } catch (err) {\n return false;\n }\n }\n}})();\n\n(function() {var class2type = {};\n\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \").forEach(function(name, i) {\n class2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n});\n\nvar hasOwn = function(class2type) {\n return class2type.hasOwnProperty;\n};\n\n_.extend(JEngine.Utils, {\n extend: function() {\n var options, name, src, copy, copyIsArray, clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false;\n\n // Handle a deep copy situation\n if ( typeof target === \"boolean\" ) {\n deep = target;\n target = arguments[1] || {};\n // skip the boolean and the target\n i = 2;\n }\n\n // Handle case when target is a string or something (possible in deep copy)\n if ( typeof target !== \"object\" && !utils.isFunction(target) ) {\n target = {};\n }\n\n for ( ; i < length; i++ ) {\n // Only deal with non-null/undefined values\n if ( (options = arguments[ i ]) != null ) {\n // Extend the base object\n for ( name in options ) {\n src = target[ name ];\n copy = options[ name ];\n\n // Prevent never-ending loop\n if ( target === copy ) {\n continue;\n }\n\n // Recurse if we're merging plain objects or arrays\n if ( deep && copy && ( utils.isPlainObject(copy) || (copyIsArray = utils.isArray(copy)) ) ) {\n if ( copyIsArray ) {\n copyIsArray = false;\n clone = src && utils.isArray(src) ? src : [];\n\n } else {\n clone = src && utils.isPlainObject(src) ? src : {};\n }\n\n // Never move original objects, clone them\n target[ name ] = utils.extend( deep, clone, copy );\n\n // Don't bring in undefined values\n } else if ( copy !== undefined ) {\n target[ name ] = copy;\n }\n }\n }\n }\n\n // Return the modified object\n return target;\n },\n\n isFunction: function( obj ) {\n return utils.type(obj) === \"function\";\n },\n\n isArray: Array.isArray,\n\n isNumeric: function( obj ) {\n return !isNaN(parseFloat(obj)) && isFinite(obj);\n },\n\n type: function( obj ) {\n if (obj == null) {\n return String(obj);\n }\n // Support: Safari <= 5.1 (functionish RegExp)\n return typeof obj === \"object\" || typeof obj === \"function\" ?\n class2type[ toString.call(obj) ] || \"object\" :\n typeof obj;\n },\n\n isWindow: function( obj ) {\n return obj != null && obj === obj.window;\n },\n\n isPlainObject: function( obj ) {\n // Not plain objects:\n // - Any object or value whose internal [[Class]] property is not \"[object Object]\"\n // - DOM nodes\n // - window\n if ( utils.type( obj ) !== \"object\" || obj.nodeType || utils.isWindow( obj ) ) {\n return false;\n }\n\n // Support: Firefox <20\n // The try/catch suppresses exceptions thrown when attempting to access\n // the \"constructor\" property of certain host objects, ie. |window.location|\n // https://bugzilla.mozilla.org/show_bug.cgi?id=814622\n try {\n if ( obj.constructor &&\n !hasOwn.call( obj.constructor.prototype, \"isPrototypeOf\" ) ) {\n return false;\n }\n } catch ( e ) {\n return false;\n }\n\n // If the function hasn't returned already, we're confident that\n // |obj| is a plain object, created by {} or constructed with new Object\n return true;\n },\n\n isEmptyObject: function( obj ) {\n var name;\n for ( name in obj ) {\n return false;\n }\n return true;\n },\n\n error: function( msg ) {\n throw new Error( msg );\n },\n\n noop: function() {},\n});})();\n\n(function() {JEngine.Renderers = module.exports = {};})();\n\n(function() {var NOT_IMPLEMENTED_ERROR = function(method) {\n return new Error('Renderers must respond to \"'+ method +'\"!');\n}\nvar Renderer = JEngine.Renderers.Core = JEngine.Utils.Obj.extend({\n constructor: function(engine) {\n this.setEngine(engine);\n },\n\n setEngine: function(engine) {\n this.engine = engine;\n this.setContext();\n return this;\n },\n\n setContext: function() {\n throw NOT_IMPLEMENTED_ERROR('setContext');\n },\n\n draw: function(/* */) {\n throw NOT_IMPLEMENTED_ERROR('draw');\n },\n\n drawSquare: function(/* */) {\n \n }\n});})();\n\n(function() {var Canvas = JEngine.Renderers.Canvas = JEngine.Renderers.Core.extend({\n setContext: function() {\n this.context = this.engine.canvas.getContext('2d');\n return this;\n }\n});})();\n\n(function() {var Game = JEngine.Game = JEngine.Utils.Obj.extend({\n constructor: function(options) {\n this._super();\n this.rootUrl = this.options.rootUrl;\n this.urlPaths = {};\n this.processPackageJSON();\n this.setElement(this.options.element);\n this.start();\n },\n\n defaults: {\n element: 'body',\n rootUrl: document.location.origin,\n urlPaths: {\n root: '',\n scene: 'scene'\n },\n },\n\n processPackageJSON: function() {\n var self = this;\n this.getJSON('package.json', {\n async: false,\n success: function(json) {\n self.manifest = json;\n self.urlPaths = _.extend({}, self.urlPaths, self.options.urlPaths, self.manifest.urlPaths);\n }\n });\n return this;\n },\n\n getJSON: function(type, path, options) {\n var url;\n if (!options) {\n if (_.isObject(path)) {\n options = path;\n path = type;\n url = this.urlFor(path);\n } else {\n options = {};\n url = this.urlFor(type, path);\n }\n } else {\n url = this.urlFor(type, path);\n }\n options.url = url;\n options.dataFilter = function(data, dataType) {\n if ($.isPlainObject(data)) {\n return data\n }\n if (_.isString(data)) {\n try {\n return JSON.parse(data);\n } catch (err) {\n throw {\n name: 'Bad JSON Response', \n message: 'Failed to parse response from '+ url\n };\n }\n } else {\n throw {\n name: 'Bad JSON Response', \n message: 'Response from '+ url +' was in the wrong format ['+ dataType +']'\n };\n }\n };\n return $.ajax(options);\n },\n\n urlFor: function(type, path) {\n if (!path) {\n path = type;\n type = 'root'\n }\n return _.compact([this.rootUrl, this.urlPaths[type], path]).join('/');\n },\n\n setElement: function(value) {\n var elem = $(value);\n this.$element = elem;\n this.element = elem.get(0);\n this.$element.data({jengine: this});\n return this;\n },\n\n $: function(selector) {\n return this.$element.find(selector);\n },\n\n start: function() {\n this.scene || this.loadScene(this.options.scene || this.manifest.scene);\n this.scene.start();\n return this;\n },\n\n loadScene: function(scene) {\n this.scene && this.scene.unload();\n this.scene = new JEngine.Scene(this, scene);\n return this;\n }\n});})();\n\n(function() {var Scene = module.exports = JEngine.Utils.Obj.extend({\n constructor: function(engine, scene, options) {\n if (this instanceof JEngine.Scene) {\n this.engine = engine;\n this._super(options);\n this.setManifest(scene);\n } else {\n if (scene instanceof JEngine.Scene) {\n scene.engine = engine;\n return scene;\n } else {\n return new JEngine.Scene(engine, scene, options);\n }\n }\n },\n\n setManifest: function(scene) {\n if (scene) {\n if (_.isObject(scene)) {\n this.manifest = scene;\n this.load();\n } else {\n var self = this;\n this.engine.getJSON('scene', scene, function(json) {\n self.manifest = json;\n this.load();\n });\n }\n } else {\n this.load();\n }\n },\n\n load: function() {\n console.log(this.manifest);\n return this;\n },\n\n start: function() {\n if (!this.engine) throw new Error('JEngine Scene cannot start without an engine.');\n return this;\n }\n}, {\n Load: function(scene, options) {\n return JEngine.Scene(false, scene, options);\n }\n});})();\n\n(function() {var GameObject = JEngine.GameObject = JEngine.Utils.Obj.extend({\n constructor: function(manifest) {\n\n }\n}, {\n Create: function(manifest, position, rotation, scale) {\n \n }\n});})();\n\n}).call(this);","timestamp":"2013-09-17T07:53:27.915Z"}
{"level":"info","message":"// \n// JEngine\n// Version: 0.0.0\n// \n\n(function() {\n var JEngine = {};\n var root = this;\n root.JEngine = JEngine;\n\n(function() {JEngine.Utils = {};})();\n\n(function() {// Regular expression used to split event strings.\nvar eventSplitter = /\\s+/;\n\n// Implement fancy features of the Events API such as multiple event\n// names `\"change blur\"` and jQuery-style event maps `{change: action}`\n// in terms of the existing API.\nvar eventsApi = function (obj, action, name, rest) {\n var key, names, i, l;\n if (!name) {\n return true;\n }\n\n // Handle event maps.\n if (typeof name === 'object') {\n for (key in name) {\n if (name.hasOwnProperty(key)) {\n obj[action].apply(obj, [key, name[key]].concat(rest));\n }\n }\n return false;\n }\n\n // Handle space separated event names.\n if (eventSplitter.test(name)) {\n names = name.split(eventSplitter);\n for (i = 0, l = names.length; i < l; i++) {\n obj[action].apply(obj, [names[i]].concat(rest));\n }\n return false;\n }\n\n return true;\n};\n\n// A difficult-to-believe, but optimized internal dispatch function for\n// triggering events. Tries to keep the usual cases speedy (most internal\n// Backbone events have 3 arguments).\nvar triggerEvents = function (events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args);\n }\n};\n\nvar Events = JEngine.Utils.Events = {\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n on: function (name, callback, context) {\n if (!eventsApi(this, 'on', name, [callback, context]) || !callback) return this;\n this._events || (this._events = {});\n var events = this._events[name] || (this._events[name] = []);\n events.push({callback: callback, context: context, ctx: context || this});\n return this;\n },\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, it will be removed.\n once: function (name, callback, context) {\n if (!eventsApi(this, 'once', name, [callback, context]) || !callback) return this;\n var self = this;\n var once = _.once(function() {\n self.off(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n return this.on(name, once, context);\n },\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n off: function (name, callback, context) {\n var retain, ev, events, names, i, l, j, k;\n if (!this._events || !eventsApi(this, 'off', name, [callback, context])) return this;\n if (!name && !callback && !context) {\n this._events = {};\n return this;\n }\n\n names = name ? [name] : _.keys(this._events);\n for (i = 0, l = names.length; i < l; i++) {\n name = names[i];\n if (events = this._events[name]) {\n this._events[name] = retain = [];\n if (callback || context) {\n for (j = 0, k = events.length; j < k; j++) {\n ev = events[j];\n if ((callback && callback !== ev.callback && callback !== ev.callback._callback) ||\n (context && context !== ev.context)) {\n retain.push(ev);\n }\n }\n }\n if (!retain.length) delete this._events[name];\n }\n }\n\n return this;\n },\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n trigger: function (name, options, args) {\n if (!this._events) return this;\n if (typeof args == 'undefined') {\n args = options;\n options = {};\n }\n options || (options = {});\n if (!_.hasKey(options, 'capture')) {\n options.capture = (this._eventsDefaultCapture || false);\n }\n if (!_.hasKey(options, 'bubble')) {\n options.bubble = true;\n }\n args || (args = []);\n if (!eventsApi(this, 'trigger', name, args)) return this;\n var events = this._events[name];\n var allEvents = this._events.all;\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, arguments);\n if (options.bubble) {\n if (options.capture) {\n var children = (this.children || []);\n children.forEach(function(child) {\n if (typeof child.trigger === 'function') child.trigger(arguments);\n });\n } else {\n if (this.parent && typeof this.parent.trigger === 'function') this.parent.trigger(arguments);\n }\n }\n return this;\n },\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n stopListening: function (obj, name, callback) {\n var listeners = this._listeners;\n if (!listeners) return this;\n var deleteListener = !name && !callback;\n if (typeof name === 'object') callback = this;\n if (obj) (listeners = {})[obj._listenerId] = obj;\n for (var id in listeners) {\n listeners[id].off(name, callback, this);\n if (deleteListener) delete this._listeners[id];\n }\n return this;\n }\n\n};\n\n\nvar listenMethods = {listenTo: 'on', listenToOnce: 'once'};\n\n// Inversion-of-control versions of `on` and `once`. Tell *this* object to\n// listen to an event in another object ... keeping track of what it's\n// listening to.\n_.each(listenMethods, function(implementation, method) {\n Events[method] = function(obj, name, callback) {\n var listeners = this._listeners || (this._listeners = {});\n var id = obj._listenerId || (obj._listenerId = _.uniqueId('l'));\n listeners[id] = obj;\n if (typeof name === 'object') callback = this;\n obj[implementation](name, callback, this);\n return this;\n };\n});\n\n// Aliases for backwards compatibility.\nEvents.bind = Events.on;\nEvents.unbind = Events.off;})();\n\n(function() {var Hierarchy = JEngine.Utils.Hierarchy = {\n add: function() {\n var self = this;\n self.children || (self.children = []);\n var children = _.flatten(slice.call(arguments));\n children.forEach(function(child) {\n if (!_.include(children, child)) {\n self.children.push(child);\n child.parent = self;\n child.trigger && child.trigger('added');\n }\n });\n self.trigger && self.trigger('addedChild');\n return this;\n },\n\n remove: function() {\n var self = this;\n self.children || (self.children = []);\n var children = _.flatten(slice.call(arguments));\n children.forEach(function(child) {\n if (!_.include(children, child)) {\n self.children = _.without(self.children, child);\n child.parent = undefined;\n child.trigger && child.trigger('removed');\n }\n });\n self.trigger && self.trigger('removeChild');\n return this;\n },\n\n removeSelf: function() {\n var self = this;\n if (self.parent && typeof self.parent.remove === 'function') {\n self.parent.remove(self);\n }\n self.parent = undefined;\n return this;\n },\n\n addTo: function(parent) {\n var self = this;\n if (parent && typeof parent.add === 'function') {\n parent.add(self);\n }\n return this;\n }\n};})();\n\n(function() {var Obj = JEngine.Utils.Obj = function(options) {\n this.handleOptions(options);\n};\n\n_.extend(Obj, {\n extend: function (protoProps, staticProps) {\n var parent = this,\n child,\n Parent;\n // The constructor function for the new subclass is either defined by you\n // (the \"constructor\" property in your `extend` definition), or defaulted\n // by us to simply call the parent's constructor.\n if (protoProps && _.has(protoProps, 'constructor')) {\n child = protoProps.constructor;\n } else {\n child = function () { return parent.apply(this, arguments); };\n }\n\n // Add static properties to the constructor function, if supplied.\n _.extend(child, parent, staticProps);\n\n // Set the prototype chain to inherit from `parent`, without calling\n // `parent`'s constructor function.\n Parent = function () { this.constructor = child; };\n Parent.prototype = parent.prototype;\n child.prototype = new Parent();\n\n // Add prototype properties (instance properties) to the subclass,\n // if supplied.\n if (protoProps) {\n _.extend(child.prototype, protoProps);\n }\n\n // Set a convenience property in case the parent's prototype is needed\n // later.\n child.__super__ = parent;\n child.prototype.__super__ = parent.prototype;\n\n return child;\n }\n});\n\n_.extend(Obj.prototype, Events, Hierarchy, {\n handleOptions: function(options, defaults) {\n defaults || (defaults = this.defaults || {});\n options = options || {};\n this.options = _.defaults(options, defaults);\n return this;\n },\n\n _super: function () {\n var self = this,\n caller = arguments.callee.caller,\n funcName = _.detect(_.functions(self), function (attr) {\n return self[attr] === caller;\n }),\n args = arguments.length > 0 ? arguments : caller.arguments;\n if (funcName) {\n if (self.__super__) {\n var sClass = this.__super__;\n if (typeof sClass[funcName] === 'function') {\n sClass[funcName].apply(this, args);\n } else {\n console.warn('Super method for \"' + funcName + '\" not found!');\n }\n }\n }\n },\n\n clone: function() {\n \n }\n});})();\n\n(function() {_.extend(JEngine.Utils, {\n supportsWebGL: function() {\n try {\n var canvas = document.createElement('CANVAS');\n if (canvas.getContext('webgl') || canvas.getContext('experimental-webgl')) {\n return true;\n }\n } catch (err) {\n return false;\n }\n },\n\n supportsCanvas: function() {\n try {\n var canvas = document.createElement('CANVAS');\n if (canvas.getContext('2d')) {\n return true;\n }\n } catch (err) {\n return false;\n }\n }\n}})();\n\n(function() {var class2type = {};\n\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \").forEach(function(name, i) {\n class2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n});\n\nvar hasOwn = function(class2type) {\n return class2type.hasOwnProperty;\n};\n\n_.extend(JEngine.Utils, {\n extend: function() {\n var options, name, src, copy, copyIsArray, clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false;\n\n // Handle a deep copy situation\n if ( typeof target === \"boolean\" ) {\n deep = target;\n target = arguments[1] || {};\n // skip the boolean and the target\n i = 2;\n }\n\n // Handle case when target is a string or something (possible in deep copy)\n if ( typeof target !== \"object\" && !utils.isFunction(target) ) {\n target = {};\n }\n\n for ( ; i < length; i++ ) {\n // Only deal with non-null/undefined values\n if ( (options = arguments[ i ]) != null ) {\n // Extend the base object\n for ( name in options ) {\n src = target[ name ];\n copy = options[ name ];\n\n // Prevent never-ending loop\n if ( target === copy ) {\n continue;\n }\n\n // Recurse if we're merging plain objects or arrays\n if ( deep && copy && ( utils.isPlainObject(copy) || (copyIsArray = utils.isArray(copy)) ) ) {\n if ( copyIsArray ) {\n copyIsArray = false;\n clone = src && utils.isArray(src) ? src : [];\n\n } else {\n clone = src && utils.isPlainObject(src) ? src : {};\n }\n\n // Never move original objects, clone them\n target[ name ] = utils.extend( deep, clone, copy );\n\n // Don't bring in undefined values\n } else if ( copy !== undefined ) {\n target[ name ] = copy;\n }\n }\n }\n }\n\n // Return the modified object\n return target;\n },\n\n isFunction: function( obj ) {\n return utils.type(obj) === \"function\";\n },\n\n isArray: Array.isArray,\n\n isNumeric: function( obj ) {\n return !isNaN(parseFloat(obj)) && isFinite(obj);\n },\n\n type: function( obj ) {\n if (obj == null) {\n return String(obj);\n }\n // Support: Safari <= 5.1 (functionish RegExp)\n return typeof obj === \"object\" || typeof obj === \"function\" ?\n class2type[ toString.call(obj) ] || \"object\" :\n typeof obj;\n },\n\n isWindow: function( obj ) {\n return obj != null && obj === obj.window;\n },\n\n isPlainObject: function( obj ) {\n // Not plain objects:\n // - Any object or value whose internal [[Class]] property is not \"[object Object]\"\n // - DOM nodes\n // - window\n if ( utils.type( obj ) !== \"object\" || obj.nodeType || utils.isWindow( obj ) ) {\n return false;\n }\n\n // Support: Firefox <20\n // The try/catch suppresses exceptions thrown when attempting to access\n // the \"constructor\" property of certain host objects, ie. |window.location|\n // https://bugzilla.mozilla.org/show_bug.cgi?id=814622\n try {\n if ( obj.constructor &&\n !hasOwn.call( obj.constructor.prototype, \"isPrototypeOf\" ) ) {\n return false;\n }\n } catch ( e ) {\n return false;\n }\n\n // If the function hasn't returned already, we're confident that\n // |obj| is a plain object, created by {} or constructed with new Object\n return true;\n },\n\n isEmptyObject: function( obj ) {\n var name;\n for ( name in obj ) {\n return false;\n }\n return true;\n },\n\n error: function( msg ) {\n throw new Error( msg );\n },\n\n noop: function() {},\n});})();\n\n(function() {JEngine.Renderers = module.exports = {};})();\n\n(function() {var NOT_IMPLEMENTED_ERROR = function(method) {\n return new Error('Renderers must respond to \"'+ method +'\"!');\n}\nvar Renderer = JEngine.Renderers.Core = JEngine.Utils.Obj.extend({\n constructor: function(engine) {\n this.setEngine(engine);\n },\n\n setEngine: function(engine) {\n this.engine = engine;\n this.setContext();\n return this;\n },\n\n setContext: function() {\n throw NOT_IMPLEMENTED_ERROR('setContext');\n },\n\n draw: function(/* */) {\n throw NOT_IMPLEMENTED_ERROR('draw');\n },\n\n drawSquare: function(/* */) {\n \n }\n});})();\n\n(function() {var Canvas = JEngine.Renderers.Canvas = JEngine.Renderers.Core.extend({\n setContext: function() {\n this.context = this.engine.canvas.getContext('2d');\n return this;\n }\n});})();\n\n(function() {var Game = JEngine.Game = JEngine.Utils.Obj.extend({\n constructor: function(options) {\n this._super();\n this.rootUrl = this.options.rootUrl;\n this.urlPaths = {};\n this.processPackageJSON();\n this.setElement(this.options.element);\n this.start();\n },\n\n defaults: {\n element: 'body',\n rootUrl: document.location.origin,\n urlPaths: {\n root: '',\n scene: 'scene'\n },\n },\n\n processPackageJSON: function() {\n var self = this;\n this.getJSON('package.json', {\n async: false,\n success: function(json) {\n self.manifest = json;\n self.urlPaths = _.extend({}, self.urlPaths, self.options.urlPaths, self.manifest.urlPaths);\n }\n });\n return this;\n },\n\n getJSON: function(type, path, options) {\n var url;\n if (!options) {\n if (_.isObject(path)) {\n options = path;\n path = type;\n url = this.urlFor(path);\n } else {\n options = {};\n url = this.urlFor(type, path);\n }\n } else {\n url = this.urlFor(type, path);\n }\n options.url = url;\n options.dataFilter = function(data, dataType) {\n if ($.isPlainObject(data)) {\n return data\n }\n if (_.isString(data)) {\n try {\n return JSON.parse(data);\n } catch (err) {\n throw {\n name: 'Bad JSON Response', \n message: 'Failed to parse response from '+ url\n };\n }\n } else {\n throw {\n name: 'Bad JSON Response', \n message: 'Response from '+ url +' was in the wrong format ['+ dataType +']'\n };\n }\n };\n return $.ajax(options);\n },\n\n urlFor: function(type, path) {\n if (!path) {\n path = type;\n type = 'root'\n }\n return _.compact([this.rootUrl, this.urlPaths[type], path]).join('/');\n },\n\n setElement: function(value) {\n var elem = $(value);\n this.$element = elem;\n this.element = elem.get(0);\n this.$element.data({jengine: this});\n return this;\n },\n\n $: function(selector) {\n return this.$element.find(selector);\n },\n\n start: function() {\n this.scene || this.loadScene(this.options.scene || this.manifest.scene);\n this.scene.start();\n return this;\n },\n\n loadScene: function(scene) {\n this.scene && this.scene.unload();\n this.scene = new JEngine.Scene(this, scene);\n return this;\n }\n});})();\n\n(function() {var Scene = module.exports = JEngine.Utils.Obj.extend({\n constructor: function(engine, scene, options) {\n if (this instanceof JEngine.Scene) {\n this.engine = engine;\n this._super(options);\n this.setManifest(scene);\n } else {\n if (scene instanceof JEngine.Scene) {\n scene.engine = engine;\n return scene;\n } else {\n return new JEngine.Scene(engine, scene, options);\n }\n }\n },\n\n setManifest: function(scene) {\n if (scene) {\n if (_.isObject(scene)) {\n this.manifest = scene;\n this.load();\n } else {\n var self = this;\n this.engine.getJSON('scene', scene, function(json) {\n self.manifest = json;\n this.load();\n });\n }\n } else {\n this.load();\n }\n },\n\n load: function() {\n console.log(this.manifest);\n return this;\n },\n\n start: function() {\n if (!this.engine) throw new Error('JEngine Scene cannot start without an engine.');\n return this;\n }\n}, {\n Load: function(scene, options) {\n return JEngine.Scene(false, scene, options);\n }\n});})();\n\n(function() {var GameObject = JEngine.GameObject = JEngine.Utils.Obj.extend({\n constructor: function(manifest) {\n\n }\n}, {\n Create: function(manifest, position, rotation, scale) {\n \n }\n});})();\n\n}).call(this);","timestamp":"2013-09-17T07:53:37.654Z"}