PK
qQ?/\ details.html (
OpenRA Details
PK
qQ?
gadget.css (
/* CSS Document */
body {
height: 350px;
width: 200px;
margin: 0px 0px 0px;
font-size: 11px;
font-family: Calibri;
border: none;
scrollbar-arrow-color: #000000;
scrollbar-base-color: #CC0000;
scrollbar-face-color: #CC0000;
scrollbar-highlight-color: #772200;
scrollbar-shadow-color: #550000;
scrollbar-3dlight-color: #FFCC00;
scrollbar-track-color: #440000;
scrollbar-darkshadow-color: #880000;
}
#blogtitle
{
position:absolute;
left:10px;
top: 10px;
color: Navy;
font-weight:bold ;
}
#content {
position:absolute;
left:50px;
top:100px;
width:130px;
height:230px;
z-index:1;
font-size: 12px;
font-family: Calibri;
font-weight: bold;
overflow:auto;
}
a {
border: none;
}
img {
border: none;
}
.title {
position:relative;
width: 84px;
font-family:Calibri,Geneva, Arial, Helvetica, sans-serif;
color: #000000;
vertical-align:top;
overflow-x: hidden;
white-space: nowrap;
text-overflow: ellipsis;
font-size: 11px;
}
.title:hover {
cursor: hand;
color:black ;
}
.arrow:hover {
color: black;
cursor: hand;
}
.sub {
position:relative;
font-size: 9px;
font-family: Geneva, Arial, Helvetica, sans-serif;
color: #000000;
font-weight: normal;
}
#logo{
border: border-color:black;
position:absolute;
top:40px;
width:40px;
height:125px;
color: white;
cursor: hand;
z-index:99;
background='url(images/shade.png)';
}
#mylogo{
border: thin;
position:absolute;
top:10px;
width:130px;
height:25px;
color: white;
cursor: hand;
background='url(images/shade.png)';
}
#error
{
position:absolute;
visibility:visible;
text-align:center;
z-index:99;
width:100%;
top: 45px;
left:5px;
height:39px;
color:grey;
}
PK
qQ?i gadget.html (
OpenRA Gadget
PK
qQ?ۓv$ $ gadget.js ( var xmlHttp = null;
var page = 0;
var g_currentClickedCell;
var g_sHtmlString;
var myWidthVariable ="300px";
var myHeightVariable ="200px";
var updates = 0;
var showPos = 0;
var arrCount = 0;
var idArr = new Array();
var nameArr = new Array();
var addressArr = new Array();
var stateArr = new Array();
var playersArr = new Array();
var mapArr = new Array();
var modArr = new Array();
var ttlArr = new Array();
System.Gadget.onSettingsClosed = settingsClosed;
function getPlayersForMap(mapHash)
{
var text = " 1 ra 2f069fcc457ae941388db3594932c9a93d59615d A Path Beyond Westwood Studios Conquest TEMPERAT 8 2 ra 66570c10873e8e42a7defeee13e8ca45367d8a38 Alaska Anarchy Redux Buddha Conquest SNOW 10 3 ra e1b0b14b0eae199b8ad20c60ff00cdc6fa2901cd All Connected Great for left vs right or top vs bottom Buddha Conquest TEMPERAT 8 4 ra 606c698f9d4f3a69b7e33daec3d175f76bd74335 Bavarian Redux 2v2; Modification of Bavarian Blast hamb Conquest SNOW 4 5 ra 6d6f08ba7a9b6e0ce4bedb21ea5ec3affcfa359b Caffeinated C. Forbes & R. Pepperell Conquest TEMPERAT 8 6 ra 39d1e0e8a7af677aaa848703466a2c4fa30dbdba Center of Attention Buddha Conquest TEMPERAT 8 7 ra 45b808be0a250923d8782c5658b4a0eb741c20f3 Central Conflict Westwood Studios Conquest TEMPERAT 8 8 ra 73a44013b1be48683f7daddb37262bd540804ffb Coastal Influence Westwood Studios Conquest SNOW 8 9 ra 399372de425c9e8e9d49df90fbbc467dcfc52ac7 Convergence 3 vs 3 Team Map. Arcturus Conquest TEMPERAT 6 10 ra 8a7c6ad712732e0d7650597c6815c01b505044dd Crossing the River Westwood Studios Conquest TEMPERAT 4 11 ra 2078b95deeff99695f0d135f0083ab484b41a1d0 Daejeon Buddha Conquest TEMPERAT 10 12 ra 13c4a52185b537b46acb6a9a62a289f81abc0eab East vs West 2v2 Teamplay Map Chris Forbes Conquest TEMPERAT 4 13 ra deb4c77d00d0cc0eca5339e5a55a8eb8e8cc9fae Equal Opportunity Westwood Studios Conquest SNOW 4 14 ra aa70920a89df86b6ec4abdbf5f80d1475a7d4086 Fire Alley 4-10 Buddha Conquest SNOW 10 15 ra 9db755ca4dee7b8da372d721f71422cf83c60e95 First Come, First Served Westwood Studios Conquest TEMPERAT 4 16 ra 3bc995f925d5b1a894513fb3e570ce22784adcf1 Haos Ridges Team map Seru Conquest TEMPERAT 6 17 ra a1e88759117193b080452a4d27f7e205f476d0c9 High & Low Extended Buddha Conquest TEMPERAT 10 18 ra ba403f6bcb4cae934335b78be42f714992b3a71a High & Low Captain Mel Conquest TEMPERAT 8 19 ra 3beaece0b6150f3c742545bba197a9e735aca1ac Island Hoppers Westwood Studios Conquest SNOW 4 20 ra 32e3d46b110da0541991d4f1960dca3ecd6aac35 Island Wars III Buddha Conquest TEMPERAT 6 21 ra a3088b0857f20742b8ebcf78210f2812ae28532e Keep Off The Grass 2 1v1; Modification of Keep Off The Grass hamb Conquest TEMPERAT 2 22 ra 931557da9d74550d2a85d3cb92dc37748beda9ff Crossroads Classic King of the Hill map for 2-man teams Chris Forbes KotH TEMPERAT 4 23 ra 5496ebb99b9982b5edaf55b6cc1b1a2dccf5ecc2 Island Hoppers Island Hoppers, Modified for King of the Hill Westwood Studios KotH SNOW 4 24 ra a59eed0405c242bd01ca2d9638561fe1dfbead07 Marooned II Westwood Studios Conquest TEMPERAT 6 25 ra a34f3239845a6d9dae486e6bca97a637ddbd69c2 Middle Mayhem Westwood Studios Conquest SNOW 4 26 ra d19ec877767c2d9075837afd67a1936db43ccd09 Mjolnir Westwood Studios Conquest TEMPERAT 8 27 ra 735299cd2da69019ebb66d4f689218f5a259c397 North by Northwest Westwood Studios Conquest SNOW 8 28 ra 06f3b987c5113f4b11d6ef52494f9221ad662f40 Ore Isle Buddha Conquest SNOW 8 29 ra 36f491dbfec74723f0ec6b6f6bc28c4454b8c69b Pearly Wastelands Buddha Conquest SNOW 4 30 ra fb94aa975815ae780751e251ed438abd17fa162f Pressure Seru Team Map TEMPERAT 8 31 ra 7f13ad84303ac9e9c7cdb178bb32903d13ae712e Puddles Redux Buddha Conquest TEMPERAT 4 32 ra 6889754a5ec6ca5764a43fe4b269dae9f64ddefb Raraku Westwood Studios Conquest TEMPERAT 8 33 ra 4c19a69d867fb363a76920b72457f9c78b430ad7 Regeneration Basin Westwood Studios Conquest TEMPERAT 8 34 ra af13d472ca2bb0eae60cdbe638a741cbde580e8d Ring of Fire Westwood Studios Conquest SNOW 8 35 ra 3e1e34f90f6c8528e5ffe200ccee30a31a55d50f River War 2 Captain Mel Conquest TEMPERAT 4 36 ra 0e8a3d20464962c80253496c262e6017a84d1236 Seaside 2v2 / Free for all hamb Conquest TEMPERAT 4 37 ra e3012ad4d176928ecbf9ed7c1f16d5005aefd36c Snowy Island Buddha Conquest SNOW 6 38 ra 938993e56bbe5add578f60d8c2bc6523289b5602 Snowy Ridge Free-for-all deathmatch in the snow Chris Forbes Conquest SNOW 3 39 ra 7422387dcbaa64dd250da4907cf944e914b2e8ee Styrian Mountains Winter like in Hell ReFlex Conquest SNOW 2 40 cnc 2b9fed32398d4ee983d8184bd66d0063f4e83970 East vs West 3 3v3 Team Map Paul Chote Conquest WINTER 6 41 cnc 29cb77c148d188caa412fd594409a960783aa764 Storm the Beachhead Remake of the first GDI Mission Westwood Studios Conquest TEMPERAT 2 42 cnc 2b07e1792985b04fd8a0ca9c160984a4ef99f03d Break of Day Unbalanced Petrenko Conquest DESERT 4 43 cnc 0dc2e2c17e1c6ccf2b76bb454d1c1e9d8b16cbec Chokepoint A battle over a small stream with only small passes Tiberian Conquest DESERT 2 44 cnc 91dd8de1a072486d3e76ee326460314f68c1621a Simple Chord 3V3 with 2 Expansions Petrenko Conquest TEMPERAT 6 45 cnc 882c1570ea0dc1297153f618e0a183aa9ab2afd1 Dead In Motion 1V1 Petrenko Conquest WINTER 2 46 cnc 01cab429d40f091fe1731bef3e9af36c04fec74d Tiberium Garden II Large map for 6p FFA, 2v2v2 or 3v3 Chris Forbes Conquest DESERT 6 47 cnc 0615f12889446ac01a114bb0bb688af1fc01c0af Instant Karma Beach to beach - 2V2 Petrenko Conquest DESERT 4 48 cnc 8ac8dcbcd9b3b83fadf67ecd5c9a71e3f91e4093 Into the River Below Im running from the inferno.. Slendermang Conquest WINTER 6 49 cnc 417afae36eb7e2f52143e72dc2816777d0afd6cb Llamas Chris Forbes Conquest WINTER 4 50 cnc 21e1fcce0edc4730ba9f66a5933e90b53d6bde0e Llamas 2 2 Players added Chris Forbes / Petrenko Conquest WINTER 6 51 cnc 366f959c25eb8506b87ff16e4be3ad8b2cd849b5 Minus Two A teambattle over a small stream with only small passes Tiberian (Petrenko) Conquest DESERT 4 52 cnc b76bddd3cbb7c828d1bda040b44216fc8cc46be4 Nullpeter 4v4 Team Map Paul Chote (Petrenko) Conquest WINTER 8 53 cnc eba46f0b247ab52e6b9d044b3711a1f28763e634 Crossing the Rubicon 8 Player North vs South Map Arcturus Conquest TEMPERAT 8 54 cnc 7761208e53d74e2a080255bbe60cf2d2fbc0388c Sea and Cake Use sea for air ambushes Petrenko Conquest DESERT 2 55 cnc 724457304d8a84a14a236d4af6e4c8dec85b575a The Sentinel A 1 versus 1 map in an icy place Tiberian Conquest WINTER 2 56 ra f9ce9066950638c1b10e9d2d34071a4adacb8071 Doughnut 3v3; Capture oil derricks for extra cash hamb Conquest TEMPERAT 6 57 ra 0aac7b28eed9e4c09761929f96c7ecd7d919b3a1 Mjolnir 2 4v4 hamb Conquest TEMPERAT 8 ";
var txt = text;
if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(txt,"text/xml");
}
else
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(txt);
}
var maps = xmlDoc.getElementsByTagName('maps');
for(i = 0; i < maps.length; i = i + 1)
{
if(xmlDoc.getElementsByTagName("hash")[i].childNodes[0].nodeValue == mapHash)
{
return xmlDoc.getElementsByTagName("players")[i].childNodes[0].nodeValue;
}
}
return "";
}
function getNameForMap(mapHash)
{
var text = " 1 ra 2f069fcc457ae941388db3594932c9a93d59615d A Path Beyond Westwood Studios Conquest TEMPERAT 8 2 ra 66570c10873e8e42a7defeee13e8ca45367d8a38 Alaska Anarchy Redux Buddha Conquest SNOW 10 3 ra e1b0b14b0eae199b8ad20c60ff00cdc6fa2901cd All Connected Great for left vs right or top vs bottom Buddha Conquest TEMPERAT 8 4 ra 606c698f9d4f3a69b7e33daec3d175f76bd74335 Bavarian Redux 2v2; Modification of Bavarian Blast hamb Conquest SNOW 4 5 ra 6d6f08ba7a9b6e0ce4bedb21ea5ec3affcfa359b Caffeinated C. Forbes & R. Pepperell Conquest TEMPERAT 8 6 ra 39d1e0e8a7af677aaa848703466a2c4fa30dbdba Center of Attention Buddha Conquest TEMPERAT 8 7 ra 45b808be0a250923d8782c5658b4a0eb741c20f3 Central Conflict Westwood Studios Conquest TEMPERAT 8 8 ra 73a44013b1be48683f7daddb37262bd540804ffb Coastal Influence Westwood Studios Conquest SNOW 8 9 ra 399372de425c9e8e9d49df90fbbc467dcfc52ac7 Convergence 3 vs 3 Team Map. Arcturus Conquest TEMPERAT 6 10 ra 8a7c6ad712732e0d7650597c6815c01b505044dd Crossing the River Westwood Studios Conquest TEMPERAT 4 11 ra 2078b95deeff99695f0d135f0083ab484b41a1d0 Daejeon Buddha Conquest TEMPERAT 10 12 ra 13c4a52185b537b46acb6a9a62a289f81abc0eab East vs West 2v2 Teamplay Map Chris Forbes Conquest TEMPERAT 4 13 ra deb4c77d00d0cc0eca5339e5a55a8eb8e8cc9fae Equal Opportunity Westwood Studios Conquest SNOW 4 14 ra aa70920a89df86b6ec4abdbf5f80d1475a7d4086 Fire Alley 4-10 Buddha Conquest SNOW 10 15 ra 9db755ca4dee7b8da372d721f71422cf83c60e95 First Come, First Served Westwood Studios Conquest TEMPERAT 4 16 ra 3bc995f925d5b1a894513fb3e570ce22784adcf1 Haos Ridges Team map Seru Conquest TEMPERAT 6 17 ra a1e88759117193b080452a4d27f7e205f476d0c9 High & Low Extended Buddha Conquest TEMPERAT 10 18 ra ba403f6bcb4cae934335b78be42f714992b3a71a High & Low Captain Mel Conquest TEMPERAT 8 19 ra 3beaece0b6150f3c742545bba197a9e735aca1ac Island Hoppers Westwood Studios Conquest SNOW 4 20 ra 32e3d46b110da0541991d4f1960dca3ecd6aac35 Island Wars III Buddha Conquest TEMPERAT 6 21 ra a3088b0857f20742b8ebcf78210f2812ae28532e Keep Off The Grass 2 1v1; Modification of Keep Off The Grass hamb Conquest TEMPERAT 2 22 ra 931557da9d74550d2a85d3cb92dc37748beda9ff Crossroads Classic King of the Hill map for 2-man teams Chris Forbes KotH TEMPERAT 4 23 ra 5496ebb99b9982b5edaf55b6cc1b1a2dccf5ecc2 Island Hoppers Island Hoppers, Modified for King of the Hill Westwood Studios KotH SNOW 4 24 ra a59eed0405c242bd01ca2d9638561fe1dfbead07 Marooned II Westwood Studios Conquest TEMPERAT 6 25 ra a34f3239845a6d9dae486e6bca97a637ddbd69c2 Middle Mayhem Westwood Studios Conquest SNOW 4 26 ra d19ec877767c2d9075837afd67a1936db43ccd09 Mjolnir Westwood Studios Conquest TEMPERAT 8 27 ra 735299cd2da69019ebb66d4f689218f5a259c397 North by Northwest Westwood Studios Conquest SNOW 8 28 ra 06f3b987c5113f4b11d6ef52494f9221ad662f40 Ore Isle Buddha Conquest SNOW 8 29 ra 36f491dbfec74723f0ec6b6f6bc28c4454b8c69b Pearly Wastelands Buddha Conquest SNOW 4 30 ra fb94aa975815ae780751e251ed438abd17fa162f Pressure Seru Team Map TEMPERAT 8 31 ra 7f13ad84303ac9e9c7cdb178bb32903d13ae712e Puddles Redux Buddha Conquest TEMPERAT 4 32 ra 6889754a5ec6ca5764a43fe4b269dae9f64ddefb Raraku Westwood Studios Conquest TEMPERAT 8 33 ra 4c19a69d867fb363a76920b72457f9c78b430ad7 Regeneration Basin Westwood Studios Conquest TEMPERAT 8 34 ra af13d472ca2bb0eae60cdbe638a741cbde580e8d Ring of Fire Westwood Studios Conquest SNOW 8 35 ra 3e1e34f90f6c8528e5ffe200ccee30a31a55d50f River War 2 Captain Mel Conquest TEMPERAT 4 36 ra 0e8a3d20464962c80253496c262e6017a84d1236 Seaside 2v2 / Free for all hamb Conquest TEMPERAT 4 37 ra e3012ad4d176928ecbf9ed7c1f16d5005aefd36c Snowy Island Buddha Conquest SNOW 6 38 ra 938993e56bbe5add578f60d8c2bc6523289b5602 Snowy Ridge Free-for-all deathmatch in the snow Chris Forbes Conquest SNOW 3 39 ra 7422387dcbaa64dd250da4907cf944e914b2e8ee Styrian Mountains Winter like in Hell ReFlex Conquest SNOW 2 40 cnc 2b9fed32398d4ee983d8184bd66d0063f4e83970 East vs West 3 3v3 Team Map Paul Chote Conquest WINTER 6 41 cnc 29cb77c148d188caa412fd594409a960783aa764 Storm the Beachhead Remake of the first GDI Mission Westwood Studios Conquest TEMPERAT 2 42 cnc 2b07e1792985b04fd8a0ca9c160984a4ef99f03d Break of Day Unbalanced Petrenko Conquest DESERT 4 43 cnc 0dc2e2c17e1c6ccf2b76bb454d1c1e9d8b16cbec Chokepoint A battle over a small stream with only small passes Tiberian Conquest DESERT 2 44 cnc 91dd8de1a072486d3e76ee326460314f68c1621a Simple Chord 3V3 with 2 Expansions Petrenko Conquest TEMPERAT 6 45 cnc 882c1570ea0dc1297153f618e0a183aa9ab2afd1 Dead In Motion 1V1 Petrenko Conquest WINTER 2 46 cnc 01cab429d40f091fe1731bef3e9af36c04fec74d Tiberium Garden II Large map for 6p FFA, 2v2v2 or 3v3 Chris Forbes Conquest DESERT 6 47 cnc 0615f12889446ac01a114bb0bb688af1fc01c0af Instant Karma Beach to beach - 2V2 Petrenko Conquest DESERT 4 48 cnc 8ac8dcbcd9b3b83fadf67ecd5c9a71e3f91e4093 Into the River Below Im running from the inferno.. Slendermang Conquest WINTER 6 49 cnc 417afae36eb7e2f52143e72dc2816777d0afd6cb Llamas Chris Forbes Conquest WINTER 4 50 cnc 21e1fcce0edc4730ba9f66a5933e90b53d6bde0e Llamas 2 2 Players added Chris Forbes / Petrenko Conquest WINTER 6 51 cnc 366f959c25eb8506b87ff16e4be3ad8b2cd849b5 Minus Two A teambattle over a small stream with only small passes Tiberian (Petrenko) Conquest DESERT 4 52 cnc b76bddd3cbb7c828d1bda040b44216fc8cc46be4 Nullpeter 4v4 Team Map Paul Chote (Petrenko) Conquest WINTER 8 53 cnc eba46f0b247ab52e6b9d044b3711a1f28763e634 Crossing the Rubicon 8 Player North vs South Map Arcturus Conquest TEMPERAT 8 54 cnc 7761208e53d74e2a080255bbe60cf2d2fbc0388c Sea and Cake Use sea for air ambushes Petrenko Conquest DESERT 2 55 cnc 724457304d8a84a14a236d4af6e4c8dec85b575a The Sentinel A 1 versus 1 map in an icy place Tiberian Conquest WINTER 2 56 ra f9ce9066950638c1b10e9d2d34071a4adacb8071 Doughnut 3v3; Capture oil derricks for extra cash hamb Conquest TEMPERAT 6 57 ra 0aac7b28eed9e4c09761929f96c7ecd7d919b3a1 Mjolnir 2 4v4 hamb Conquest TEMPERAT 8 ";
var txt = text;
if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(txt,"text/xml");
}
else
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(txt);
}
var maps = xmlDoc.getElementsByTagName('maps');
for(i = 0; i < maps.length; i = i + 1)
{
if(xmlDoc.getElementsByTagName("hash")[i].childNodes[0].nodeValue == mapHash)
{
return xmlDoc.getElementsByTagName("title")[i].childNodes[0].nodeValue;
}
}
return "";
}
function getState(text)
{
if(text == "1")
{
return "Waiting";
}
if(text == "2")
{
return "Playing";
}
return "Unknown";
}
function getMod(text)
{
if(text.search("@") != -1)
{
var from = 0;
var to = text.search("@");
return text.substring(from,to).toUpperCase();
}
return text;
}
function ifDown(text)
{
if(text.length >= 6)
{
if(text.substring(0,6) == "[down]")
{
return true;
}
}
return false;
}
function getAttribute(text, find)
{
var str = text;
var newLine = "\n";
if(str.search(find) != -1)
{
var from = str.search(find) + find.length + 2;
var to = str.search(newLine);
return text.substring(from,to);
}
return "";
}
function removeCurrentLine(text)
{
var str = text;
while(str.length > 0)
{
if(str.substring(0,1) != "\n")
{
str = str.substring(1);
}
else
{
str = str.substring(1);
break;
}
}
return str;
}
function cleanArray(arr)
{
for(var i = 0; i < arr.length; i++)
{
arr.pop();
}
}
function paraseList(text)
{
var str = text;
var gameLine = "";
updates = updates + 1;
showPos = 0;
arrCount = 0;
cleanArray(idArr);
cleanArray(nameArr);
cleanArray(addressArr);
cleanArray(stateArr);
cleanArray(playersArr);
cleanArray(mapArr);
cleanArray(modArr);
cleanArray(ttlArr);
var pos = "";
var id;
var name;
var address;
var state;
var players;
var map;
var mod;
var ttl;
while(str.length > 4)
{
gameLine = "";
if(str.substring(0,4) == "Game")
{
pos = str.substring(5,6);
str = removeCurrentLine(str);
id = getAttribute(str,"ID");
str = removeCurrentLine(str);
name = getAttribute(str,"Name");
str = removeCurrentLine(str);
address = getAttribute(str,"Address");
str = removeCurrentLine(str);
state = getAttribute(str,"State");
str = removeCurrentLine(str);
players = getAttribute(str,"Players");
str = removeCurrentLine(str);
map = getAttribute(str,"Map");
str = removeCurrentLine(str);
mod = getAttribute(str,"Mods");
str = removeCurrentLine(str);
ttl = getAttribute(str,"TTL");
str = removeCurrentLine(str);
var modOption = System.Gadget.Settings.read('modsOption');
var showOption = System.Gadget.Settings.read('showOption');
if(ifDown(name) == false && (showOption == false || (showOption == true && state == 1)) && (modOption == 0 || (modOption == 1 && getMod(mod) == "RA") || (modOption == 2 && getMod(mod) == "CNC")))
{
idArr.push(id);
nameArr.push(name);
addressArr.push(address);
stateArr.push(state);
playersArr.push(players);
mapArr.push(map);
modArr.push(mod);
ttlArr.push(ttl);
arrCount = arrCount + 1;
var maxPlayers = "";// getPlayersForMap(map);
gameLine = name + "\n" +
"Players: " + players + "/" + maxPlayers + "\n" +
"Mod: " + mod + "\n" +
"\n";
}
}
else
{
break;
}
}
for(var i = 0; i < 5; i++)
{
document.getElementById("cell" + i.toString() + "_1").innerText = "";
document.getElementById("cell" + i.toString() + "_2").innerText = "";
document.getElementById("cell" + i.toString() + "_3").innerText = "";
}
if(arrCount == 0)
{
document.getElementById("cell0_1").innerText = "No current games";
}
else
{
for(var i = 0; i < arrCount && i < 5; i++)
{
document.getElementById("cell" + i.toString() + "_1").innerText = nameArr[i];
document.getElementById("cell" + i.toString() + "_2").innerText = "Players: " + playersArr[i] + "/" + getPlayersForMap(mapArr[i]);
document.getElementById("cell" + i.toString() + "_3").innerText = "Mod: " + getMod(modArr[i]);
}
}
}
function contentIsReady()
{
if(xmlHttp && xmlHttp.readyState == 4){
// Do some magic
var text = xmlHttp.responseText;
paraseList(text);
// Delete the object after the call is done
xmlHttp = null;
}
}
function createXMLHttpRequest(){
xmlHttp = null;
if(typeof XMLHttpRequest != "undefined"){
xmlHttp = new XMLHttpRequest();
}
else if(typeof window.ActiveXObject != "undefined"){
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.4.0");
}
catch(e){
try {
xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
}
catch(e){
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
xmlHttp = null;
}
}
}
}
return xmlHttp;
}
function randomFromTo(from, to)
{
return Math.floor(Math.random() * (to - from + 1) + from);
}
function loadXMLDoc()
{
if(xmlHttp){
xmlHttp.abort();
}
// Create the object each time a call is about to be made
if(createXMLHttpRequest())
{
xmlHttp.onreadystatechange = contentIsReady;
var randomnumber = randomFromTo(1000000,9999999);
xmlHttp.open("GET", "http://master.open-ra.org/list.php?random="+randomnumber.toString(), true);
xmlHttp.send(null);
}
}
function Resize()
{
with (document.body.style)
{
width = 200;
height = 350;
}
}
var intervall = "";
function Setup()
{
System.Gadget.background = "url(../images/background.png)";
SystemSetup();
Resize();
loadXMLDoc();
var time = 0;
var updateOption = System.Gadget.Settings.read('updateOption');
if(intervall = "")
{
window.clearInterval(intervall);
intervall = "";
}
if(updateOption == 0)
{
//each 30 sec
time = 1000 * 30;
}
else if(updateOption == 1)
{
//each min
time = 1000 * 60;
}
else if(updateOption == 2)
{
// each 5 min
time = 1000 * 60 * 5;
}
else if(updateOption == 3)
{
//each 30 min
time = time = 1000 * 60 * 30;
}
intervall = window.setInterval(loadXMLDoc, time);
}
function settingsClosed(event)
{
if (event.closeAction == event.Action.commit)
{
Setup();
}
}
function ShowFlyout(i)
{
if (System.Gadget.Flyout.show == false)
{
System.Gadget.Settings.write("currentClickedCell", i);
System.Gadget.Flyout.file = "Details.html";
if(showPos + i < arrCount)
{
System.Gadget.Flyout.show = true;
}
var i = System.Gadget.Settings.read("currentClickedCell");
if(showPos + i < arrCount)
{
System.Gadget.Settings.write("name",'Name: ' + nameArr[showPos+i] + "");
System.Gadget.Settings.write("address",'Address: ' + addressArr[showPos+i] + "");
System.Gadget.Settings.write("state",'State: ' + getState(stateArr[showPos+i]) + "");
System.Gadget.Settings.write("players",'Players: ' + playersArr[showPos+i] + "");
System.Gadget.Settings.write("map",'Map: ' + getNameForMap(mapArr[showPos+i]) + "");
System.Gadget.Settings.write("mod",'Mod: ' + getMod(modArr[showPos+i]) + "");
System.Gadget.Settings.write("ttl",'TTL: ' + ttlArr[showPos+i]);
}
}
else
{
HideFlyout();
}
}
function HideFlyout()
{
System.Gadget.Flyout.show = false;
}
function SystemSetup()
{
System.Gadget.Flyout.file = "Details.html";
System.Gadget.settingsUI = "Settings.html";
//Set default settings
if(System.Gadget.Settings.read('default') == "")
{
System.Gadget.Settings.write('modsOption',0);
System.Gadget.Settings.write('updateOption',2);
System.Gadget.Settings.write('showOption',true);
System.Gadget.Settings.write('default',"done");
}
}
function CompileDetails()
{
var i = System.Gadget.Settings.read("currentClickedCell");
document.write(System.Gadget.Settings.read("name"));
document.write(System.Gadget.Settings.read("address"));
document.write(System.Gadget.Settings.read("state"));
document.write(System.Gadget.Settings.read("players"));
document.write(System.Gadget.Settings.read("map"));
document.write(System.Gadget.Settings.read("mod"));
document.write(System.Gadget.Settings.read("ttl"));
}
function StartUpPage()
{
document.body.style.width = System.Gadget.document.parentWindow.myWidthVariable;
document.body.style.height = System.Gadget.document.parentWindow.myHeightVariable;
}
PK
qQ?B
gadget.xml (
OpenRA Gadget
Innovate.Gadgets
1.0
Copyright© 2011
A gadget for displaing the latest games on the OpenRA master server.
Full
PK
qQ?q
settings.html (
Setting
Display mod:
Update intervall:
Show waiting games only
Version 1.0b - Created by Holloweye
PK
qQ?a6
utility.js ( ////////////////////////////////////////////
// Code and content Copyright © 2008
// Author Rajesh Lal
// Email: connectrajesh@hotmail.com
// Should not be distributed for commercial use without prior permission from the author
////////////////////////////////////////////
// Add your gadget to http://innovatewithgadget.com to share with everyone
// Keep the 'aboutgadget' DIV in the Settings page, if you wish to distribute personal gadget
// Check latest gadgets shared by other users at at www.innovatewithgadgets.com
////////////////////////////////////////////
// for updating the gadget
var updateAvailable =false;
var globalUpdateMessage ="Go to gadget website";
var globalUpdateURL ="http://innovatewithgadgets.com";
var globalUpdateGadgetXML ="http://csharptricks.com/Projects/Gadgets/Innovate/MyBlog.gadget/Gadget.xml";
// change globalUpdateGadgetXML pointing to your gadget.xml
////////////////////////////////////////////////////////////////////////////
// Message box for debugging the gadget
// For details http://msdn2.microsoft.com/en-us/library/x83z1d9f(VS.85).aspx
////////////////////////////////////////////////////////////////////////////
function Message(prompt)
{
var WshShell = new ActiveXObject("WScript.Shell");
var BtnCode = WshShell.Popup(prompt, 7, "Innovate With Gadgets!", 64);
}
////////////////////////////////////////////////////////////////////////////
// Mid string function not available in Script
////////////////////////////////////////////////////////////////////////////
function Mid(str, start, len)
{
// Make sure start and len are within proper bounds
if (start < 0 || len < 0) return "";
var iEnd, iLen = String(str).length;
if (start + len > iLen)
iEnd = iLen;
else
iEnd = start + len;
return String(str).substring(start,iEnd);
}
////////////////////////////////////////////////////////////////////////////
// for updating the gadget
// include Utility.js in gadget.html
////////////////////////////////////////////////////////////////////////////
function CheckForUpdate()
{
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.load(globalUpdateGadgetXML);
var gadget = xmlDoc.selectNodes("gadget");
var Results = gadget[0].childNodes[2].text;
var InfoURL = gadget[0].childNodes[3].childNodes[1].getAttribute("url");
xmlDoc=null;
if (Results > System.Gadget.version)
{
if (InfoURL.indexOf("http://")==-1)
{
InfoURL = "http://" + InfoURL;
// InfoURL must contain http://
}
globalUpdateURL=InfoURL;
globalUpdateMessage = "An update is available, visit " + globalUpdateURL ;
updateAvailable=true;
UpdateBackground();
}
else
{
globalUpdateMessage = "Go to gadget website";
}
}
function UpdateBackground()
{
if (System.Gadget.Settings.read("mini") ==true)
{
if (updateAvailable)
{
System.Gadget.background = "url(../images/UpdateAvailableSmall.png)";
document.getElementById("mylogo").title =globalUpdateMessage;
document.getElementById("infourl").href = globalUpdateURL;
}
}
else
{
if (updateAvailable)
{
System.Gadget.background = "url(../images/UpdateAvailable.png)";
document.getElementById("mylogo").title =globalUpdateMessage;
document.getElementById("infourl").href = globalUpdateURL;
}
}
}
////////////////////////////////////////////////////////////////////////////
// for Keyboard Access
// Check the complete list key codes in Chapter 13 "Tips and Tricks"
////////////////////////////////////////////////////////////////////////////
function KeyboardAccess(from,id)
{
Message("bab");
switch (window.event.keyCode)
{
case 13: // Simulate onclick event on Enter keypress (key code is 13)
{
if (from==="refresh")
Refresh();
else if (from==="item")
ShowFlyout(id);
else if (from==="paging")
ChangePage(id);
break;
}
}
}
PK
qQ?{&, .git/commit_editmsg ( Fixed update bug
PK
qQ?qiJ .git/config ( [core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
hideDotFiles = dotGitOnly
[remote "origin"]
url = git@github.com:Holloweye/OpenRA-Gadget-for-Windows-7-Vista
fetch = +refs/heads/*:refs/remotes/origin/*
PK
qQ?7I I .git/description ( Unnamed repository; edit this file 'description' to name the repository.
PK
qQ?+is .git/head ( ref: refs/heads/master
PK
qQ?`
.git/index ( DIRC N Nl] 0fN%UMc Details.html N Nm 3_7/n y>]
Gadget.css N NeZ ϸ梬ܙ͜+ Gadget.html N N9 $_wʐqAe Gadget.js N NxW 5ǍdlH@ڃ
Gadget.xml N N
ɕ >_hI]Rb _
Settings.html N Nd βN{LJp3$b
Utility.js N Nc @ O*Fy
V+p): images/background.png N Nx -0Υ|?M q images/icon.png N EN
v# jh"b @ images/shadow.png N Nv[ J+,f`LuƖu images/soviet-logo.png [Q[@klmEkq`PK
qQ?`X .git/hooks/applypatch-msg.sample ( #!/bin/sh
#
# An example hook script to check the commit log message taken by
# applypatch from an e-mail message.
#
# The hook should exit with non-zero status after issuing an
# appropriate message if it wants to stop the commit. The hook is
# allowed to edit the commit message file.
#
# To enable this hook, rename this file to "applypatch-msg".
. git-sh-setup
test -x "$GIT_DIR/hooks/commit-msg" &&
exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"}
:
PK
qQ? .git/hooks/commit-msg.sample ( #!/bin/sh
#
# An example hook script to check the commit log message.
# Called by "git commit" with one argument, the name of the file
# that has the commit message. The hook should exit with non-zero
# status after issuing an appropriate message if it wants to stop the
# commit. The hook is allowed to edit the commit message file.
#
# To enable this hook, rename this file to "commit-msg".
# Uncomment the below to add a Signed-off-by line to the message.
# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
# hook is more suited to it.
#
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
# This example catches duplicate Signed-off-by lines.
test "" = "$(grep '^Signed-off-by: ' "$1" |
sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
echo >&2 Duplicate Signed-off-by lines.
exit 1
}
PK
qQ?lǠ .git/hooks/post-commit.sample ( #!/bin/sh
#
# An example hook script that is called after a successful
# commit is made.
#
# To enable this hook, rename this file to "post-commit".
: Nothing
PK
qQ?}.( ( .git/hooks/post-receive.sample ( #!/bin/sh
#
# An example hook script for the "post-receive" event.
#
# The "post-receive" script is run after receive-pack has accepted a pack
# and the repository has been updated. It is passed arguments in through
# stdin in the form
#
# For example:
# aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master
#
# see contrib/hooks/ for a sample, or uncomment the next line and
# rename the file to "post-receive".
#. /usr/share/doc/git-core/contrib/hooks/post-receive-email
PK
qQ? .git/hooks/post-update.sample ( #!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".
exec git update-server-info
PK
qQ?%[9 .git/hooks/pre-applypatch.sample ( #!/bin/sh
#
# An example hook script to verify what is about to be committed
# by applypatch from an e-mail message.
#
# The hook should exit with non-zero status after issuing an
# appropriate message if it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-applypatch".
. git-sh-setup
test -x "$GIT_DIR/hooks/pre-commit" &&
exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"}
:
PK
qQ? * * .git/hooks/pre-commit.sample ( #!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git commit" with no arguments. The hook should
# exit with non-zero status after issuing an appropriate message if
# it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-commit".
if git rev-parse --verify HEAD >/dev/null 2>&1
then
against=HEAD
else
# Initial commit: diff against an empty tree object
against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
fi
# If you want to allow non-ascii filenames set this variable to true.
allownonascii=$(git config hooks.allownonascii)
# Cross platform projects tend to avoid non-ascii filenames; prevent
# them from being added to the repository. We exploit the fact that the
# printable range starts at the space character and ends with tilde.
if [ "$allownonascii" != "true" ] &&
# Note that the use of brackets around a tr range is ok here, (it's
# even required, for portability to Solaris 10's /usr/bin/tr), since
# the square bracket bytes happen to fall in the designated range.
test "$(git diff --cached --name-only --diff-filter=A -z $against |
LC_ALL=C tr -d '[ -~]\0')"
then
echo "Error: Attempt to add a non-ascii file name."
echo
echo "This can cause problems if you want to work"
echo "with people on other platforms."
echo
echo "To be portable it is advisable to rename the file ..."
echo
echo "If you know what you are doing you can disable this"
echo "check using:"
echo
echo " git config hooks.allownonascii true"
echo
exit 1
fi
exec git diff-index --check --cached $against --
PK
qQ?,.W W .git/hooks/pre-rebase.sample ( #!/bin/sh
#
# Copyright (c) 2006, 2008 Junio C Hamano
#
# The "pre-rebase" hook is run just before "git rebase" starts doing
# its job, and can prevent the command from running by exiting with
# non-zero status.
#
# The hook is called with the following parameters:
#
# $1 -- the upstream the series was forked from.
# $2 -- the branch being rebased (or empty when rebasing the current branch).
#
# This sample shows how to prevent topic branches that are already
# merged to 'next' branch from getting rebased, because allowing it
# would result in rebasing already published history.
publish=next
basebranch="$1"
if test "$#" = 2
then
topic="refs/heads/$2"
else
topic=`git symbolic-ref HEAD` ||
exit 0 ;# we do not interrupt rebasing detached HEAD
fi
case "$topic" in
refs/heads/??/*)
;;
*)
exit 0 ;# we do not interrupt others.
;;
esac
# Now we are dealing with a topic branch being rebased
# on top of master. Is it OK to rebase it?
# Does the topic really exist?
git show-ref -q "$topic" || {
echo >&2 "No such branch $topic"
exit 1
}
# Is topic fully merged to master?
not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
if test -z "$not_in_master"
then
echo >&2 "$topic is fully merged to master; better remove it."
exit 1 ;# we could allow it, but there is no point.
fi
# Is topic ever merged to next? If so you should not be rebasing it.
only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
only_next_2=`git rev-list ^master ${publish} | sort`
if test "$only_next_1" = "$only_next_2"
then
not_in_topic=`git rev-list "^$topic" master`
if test -z "$not_in_topic"
then
echo >&2 "$topic is already up-to-date with master"
exit 1 ;# we could allow it, but there is no point.
else
exit 0
fi
else
not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
/usr/bin/perl -e '
my $topic = $ARGV[0];
my $msg = "* $topic has commits already merged to public branch:\n";
my (%not_in_next) = map {
/^([0-9a-f]+) /;
($1 => 1);
} split(/\n/, $ARGV[1]);
for my $elem (map {
/^([0-9a-f]+) (.*)$/;
[$1 => $2];
} split(/\n/, $ARGV[2])) {
if (!exists $not_in_next{$elem->[0]}) {
if ($msg) {
print STDERR $msg;
undef $msg;
}
print STDERR " $elem->[1]\n";
}
}
' "$topic" "$not_in_next" "$not_in_master"
exit 1
fi
exit 0
################################################################
This sample hook safeguards topic branches that have been
published from being rewound.
The workflow assumed here is:
* Once a topic branch forks from "master", "master" is never
merged into it again (either directly or indirectly).
* Once a topic branch is fully cooked and merged into "master",
it is deleted. If you need to build on top of it to correct
earlier mistakes, a new topic branch is created by forking at
the tip of the "master". This is not strictly necessary, but
it makes it easier to keep your history simple.
* Whenever you need to test or publish your changes to topic
branches, merge them into "next" branch.
The script, being an example, hardcodes the publish branch name
to be "next", but it is trivial to make it configurable via
$GIT_DIR/config mechanism.
With this workflow, you would want to know:
(1) ... if a topic branch has ever been merged to "next". Young
topic branches can have stupid mistakes you would rather
clean up before publishing, and things that have not been
merged into other branches can be easily rebased without
affecting other people. But once it is published, you would
not want to rewind it.
(2) ... if a topic branch has been fully merged to "master".
Then you can delete it. More importantly, you should not
build on top of it -- other people may already want to
change things related to the topic as patches against your
"master", so if you need further changes, it is better to
fork the topic (perhaps with the same name) afresh from the
tip of "master".
Let's look at this example:
o---o---o---o---o---o---o---o---o---o "next"
/ / / /
/ a---a---b A / /
/ / / /
/ / c---c---c---c B /
/ / / \ /
/ / / b---b C \ /
/ / / / \ /
---o---o---o---o---o---o---o---o---o---o---o "master"
A, B and C are topic branches.
* A has one fix since it was merged up to "next".
* B has finished. It has been fully merged up to "master" and "next",
and is ready to be deleted.
* C has not merged to "next" at all.
We would want to allow C to be rebased, refuse A, and encourage
B to be deleted.
To compute (1):
git rev-list ^master ^topic next
git rev-list ^master next
if these match, topic has not merged in next at all.
To compute (2):
git rev-list master..topic
if this is empty, it is fully merged to "master".
PK
qQ? $ .git/hooks/prepare-commit-msg.sample ( #!/bin/sh
#
# An example hook script to prepare the commit log message.
# Called by "git commit" with the name of the file that has the
# commit message, followed by the description of the commit
# message's source. The hook's purpose is to edit the commit
# message file. If the hook fails with a non-zero status,
# the commit is aborted.
#
# To enable this hook, rename this file to "prepare-commit-msg".
# This hook includes three examples. The first comments out the
# "Conflicts:" part of a merge commit.
#
# The second includes the output of "git diff --name-status -r"
# into the message, just before the "git status" output. It is
# commented because it doesn't cope with --amend or with squashed
# commits.
#
# The third example adds a Signed-off-by line to the message, that can
# still be edited. This is rarely a good idea.
case "$2,$3" in
merge,)
/usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;
# ,|template,)
# /usr/bin/perl -i.bak -pe '
# print "\n" . `git diff --cached --name-status -r`
# if /^#/ && $first++ == 0' "$1" ;;
*) ;;
esac
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
PK
qQ?R .git/hooks/update.sample ( #!/bin/sh
#
# An example hook script to blocks unannotated tags from entering.
# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
#
# To enable this hook, rename this file to "update".
#
# Config
# ------
# hooks.allowunannotated
# This boolean sets whether unannotated tags will be allowed into the
# repository. By default they won't be.
# hooks.allowdeletetag
# This boolean sets whether deleting tags will be allowed in the
# repository. By default they won't be.
# hooks.allowmodifytag
# This boolean sets whether a tag may be modified after creation. By default
# it won't be.
# hooks.allowdeletebranch
# This boolean sets whether deleting branches will be allowed in the
# repository. By default they won't be.
# hooks.denycreatebranch
# This boolean sets whether remotely creating branches will be denied
# in the repository. By default this is allowed.
#
# --- Command line
refname="$1"
oldrev="$2"
newrev="$3"
# --- Safety check
if [ -z "$GIT_DIR" ]; then
echo "Don't run this script from the command line." >&2
echo " (if you want, you could supply GIT_DIR then run" >&2
echo " $0 [ )" >&2
exit 1
fi
if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
echo "Usage: $0 ][ " >&2
exit 1
fi
# --- Config
allowunannotated=$(git config --bool hooks.allowunannotated)
allowdeletebranch=$(git config --bool hooks.allowdeletebranch)
denycreatebranch=$(git config --bool hooks.denycreatebranch)
allowdeletetag=$(git config --bool hooks.allowdeletetag)
allowmodifytag=$(git config --bool hooks.allowmodifytag)
# check for no description
projectdesc=$(sed -e '1q' "$GIT_DIR/description")
case "$projectdesc" in
"Unnamed repository"* | "")
echo "*** Project description file hasn't been set" >&2
exit 1
;;
esac
# --- Check types
# if $newrev is 0000...0000, it's a commit to delete a ref.
zero="0000000000000000000000000000000000000000"
if [ "$newrev" = "$zero" ]; then
newrev_type=delete
else
newrev_type=$(git cat-file -t $newrev)
fi
case "$refname","$newrev_type" in
refs/tags/*,commit)
# un-annotated tag
short_refname=${refname##refs/tags/}
if [ "$allowunannotated" != "true" ]; then
echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
exit 1
fi
;;
refs/tags/*,delete)
# delete tag
if [ "$allowdeletetag" != "true" ]; then
echo "*** Deleting a tag is not allowed in this repository" >&2
exit 1
fi
;;
refs/tags/*,tag)
# annotated tag
if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
then
echo "*** Tag '$refname' already exists." >&2
echo "*** Modifying a tag is not allowed in this repository." >&2
exit 1
fi
;;
refs/heads/*,commit)
# branch
if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
echo "*** Creating a branch is not allowed in this repository" >&2
exit 1
fi
;;
refs/heads/*,delete)
# delete branch
if [ "$allowdeletebranch" != "true" ]; then
echo "*** Deleting a branch is not allowed in this repository" >&2
exit 1
fi
;;
refs/remotes/*,commit)
# tracking branch
;;
refs/remotes/*,delete)
# delete tracking branch
if [ "$allowdeletebranch" != "true" ]; then
echo "*** Deleting a tracking branch is not allowed in this repository" >&2
exit 1
fi
;;
*)
# Anything else (is there anything else?)
echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
exit 1
;;
esac
# --- Finished
exit 0
PK
qQ?w=! .git/info/exclude ( # git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
PK
qQ? 6N N .git/logs/head ( 0000000000000000000000000000000000000000 47600cdc1835d810e66f6385b091b8d3e3fea22f Christer Ulfsparre 1318785958 +0200 commit (initial): First commit
47600cdc1835d810e66f6385b091b8d3e3fea22f 488fd91bda4f9d5ae9dcdbb05aa8ce631368fcf2 Christer Ulfsparre 1318829949 +0200 commit: Fixed update bug
PK
qQ? 6N N .git/logs/refs/heads/master ( 0000000000000000000000000000000000000000 47600cdc1835d810e66f6385b091b8d3e3fea22f Christer Ulfsparre 1318785958 +0200 commit (initial): First commit
47600cdc1835d810e66f6385b091b8d3e3fea22f 488fd91bda4f9d5ae9dcdbb05aa8ce631368fcf2 Christer Ulfsparre 1318829949 +0200 commit: Fixed update bug
PK
qQ?b,4 4 $ .git/logs/refs/remotes/origin/master ( 0000000000000000000000000000000000000000 47600cdc1835d810e66f6385b091b8d3e3fea22f Christer Ulfsparre 1318786793 +0200 update by push
47600cdc1835d810e66f6385b091b8d3e3fea22f 488fd91bda4f9d5ae9dcdbb05aa8ce631368fcf2 Christer Ulfsparre 1318829962 +0200 update by push
PK
qQ?:/
.
. 6 .git/objects/0f/1ae9b3d7e01bc330facbcea57ca13ffd4d2071 ( x- blob 11764 PNG
IHDR @ @ nAH pHYs +
MiCCPPhotoshop ICC profile xڝSwX>eVBl "#Y a@Ņ
VHUĂ
H(gAZU\8ܧ}zy&j]