From 8b86b6be32e2bfa0aedae2b9ee42fe2c769bc85c Mon Sep 17 00:00:00 2001 From: LX3JL Date: Fri, 1 Jan 2016 13:42:52 +0100 Subject: [PATCH] added dashboard Added PHP code for web dashboard --- dashboard/css/layout.css | 96 ++++++++++++ dashboard/favicon.ico | Bin 0 -> 21241 bytes dashboard/img/dvc.jpg | Bin 0 -> 29674 bytes dashboard/img/flags/ad.png | Bin 0 -> 449 bytes dashboard/img/flags/ae.png | Bin 0 -> 131 bytes dashboard/img/flags/af.png | Bin 0 -> 342 bytes dashboard/img/flags/ag.png | Bin 0 -> 486 bytes dashboard/img/flags/al.png | Bin 0 -> 357 bytes dashboard/img/flags/am.png | Bin 0 -> 124 bytes dashboard/img/flags/ao.png | Bin 0 -> 310 bytes dashboard/img/flags/ar.png | Bin 0 -> 139 bytes dashboard/img/flags/at.png | Bin 0 -> 101 bytes dashboard/img/flags/au.png | Bin 0 -> 501 bytes dashboard/img/flags/az.png | Bin 0 -> 175 bytes dashboard/img/flags/ba.png | Bin 0 -> 241 bytes dashboard/img/flags/bb.png | Bin 0 -> 243 bytes dashboard/img/flags/bd.png | Bin 0 -> 200 bytes dashboard/img/flags/be.png | Bin 0 -> 108 bytes dashboard/img/flags/bf.png | Bin 0 -> 181 bytes dashboard/img/flags/bg.png | Bin 0 -> 121 bytes dashboard/img/flags/bh.png | Bin 0 -> 125 bytes dashboard/img/flags/bi.png | Bin 0 -> 470 bytes dashboard/img/flags/bj.png | Bin 0 -> 100 bytes dashboard/img/flags/bn.png | Bin 0 -> 847 bytes dashboard/img/flags/bo.png | Bin 0 -> 117 bytes dashboard/img/flags/br.png | Bin 0 -> 436 bytes dashboard/img/flags/bs.png | Bin 0 -> 221 bytes dashboard/img/flags/bt.png | Bin 0 -> 685 bytes dashboard/img/flags/bw.png | Bin 0 -> 105 bytes dashboard/img/flags/by.png | Bin 0 -> 307 bytes dashboard/img/flags/bz.png | Bin 0 -> 751 bytes dashboard/img/flags/ca.png | Bin 0 -> 302 bytes dashboard/img/flags/cd.png | Bin 0 -> 451 bytes dashboard/img/flags/cf.png | Bin 0 -> 197 bytes dashboard/img/flags/cg.png | Bin 0 -> 142 bytes dashboard/img/flags/ch.png | Bin 0 -> 107 bytes dashboard/img/flags/ci.png | Bin 0 -> 97 bytes dashboard/img/flags/cl.png | Bin 0 -> 147 bytes dashboard/img/flags/cm.png | Bin 0 -> 163 bytes dashboard/img/flags/cn.png | Bin 0 -> 214 bytes dashboard/img/flags/co.png | Bin 0 -> 99 bytes dashboard/img/flags/cr.png | Bin 0 -> 116 bytes dashboard/img/flags/cu.png | Bin 0 -> 300 bytes dashboard/img/flags/cv.png | Bin 0 -> 300 bytes dashboard/img/flags/cy.png | Bin 0 -> 317 bytes dashboard/img/flags/cz.png | Bin 0 -> 217 bytes dashboard/img/flags/de.png | Bin 0 -> 99 bytes dashboard/img/flags/dj.png | Bin 0 -> 373 bytes dashboard/img/flags/dk.png | Bin 0 -> 125 bytes dashboard/img/flags/dm.png | Bin 0 -> 403 bytes dashboard/img/flags/do.png | Bin 0 -> 258 bytes dashboard/img/flags/dz.png | Bin 0 -> 229 bytes dashboard/img/flags/ec.png | Bin 0 -> 397 bytes dashboard/img/flags/ee.png | Bin 0 -> 100 bytes dashboard/img/flags/eg.png | Bin 0 -> 256 bytes dashboard/img/flags/eh.png | Bin 0 -> 379 bytes dashboard/img/flags/er.png | Bin 0 -> 535 bytes dashboard/img/flags/es.png | Bin 0 -> 287 bytes dashboard/img/flags/et.png | Bin 0 -> 355 bytes dashboard/img/flags/fi.png | Bin 0 -> 130 bytes dashboard/img/flags/fj.png | Bin 0 -> 617 bytes dashboard/img/flags/fm.png | Bin 0 -> 149 bytes dashboard/img/flags/fr.png | Bin 0 -> 96 bytes dashboard/img/flags/ga.png | Bin 0 -> 117 bytes dashboard/img/flags/gb.png | Bin 0 -> 434 bytes dashboard/img/flags/gd.png | Bin 0 -> 490 bytes dashboard/img/flags/ge.png | Bin 0 -> 148 bytes dashboard/img/flags/gh.png | Bin 0 -> 222 bytes dashboard/img/flags/gm.png | Bin 0 -> 129 bytes dashboard/img/flags/gn.png | Bin 0 -> 97 bytes dashboard/img/flags/gq.png | Bin 0 -> 325 bytes dashboard/img/flags/gr.png | Bin 0 -> 266 bytes dashboard/img/flags/gt.png | Bin 0 -> 279 bytes dashboard/img/flags/gw.png | Bin 0 -> 234 bytes dashboard/img/flags/gy.png | Bin 0 -> 464 bytes dashboard/img/flags/hn.png | Bin 0 -> 216 bytes dashboard/img/flags/hr.png | Bin 0 -> 517 bytes dashboard/img/flags/ht.png | Bin 0 -> 227 bytes dashboard/img/flags/hu.png | Bin 0 -> 113 bytes dashboard/img/flags/id.png | Bin 0 -> 93 bytes dashboard/img/flags/ie.png | Bin 0 -> 119 bytes dashboard/img/flags/il.png | Bin 0 -> 181 bytes dashboard/img/flags/in.png | Bin 0 -> 149 bytes dashboard/img/flags/iq.png | Bin 0 -> 258 bytes dashboard/img/flags/ir.png | Bin 0 -> 505 bytes dashboard/img/flags/is.png | Bin 0 -> 154 bytes dashboard/img/flags/it.png | Bin 0 -> 96 bytes dashboard/img/flags/jm.png | Bin 0 -> 174 bytes dashboard/img/flags/jo.png | Bin 0 -> 230 bytes dashboard/img/flags/jp.png | Bin 0 -> 160 bytes dashboard/img/flags/ke.png | Bin 0 -> 265 bytes dashboard/img/flags/kg.png | Bin 0 -> 414 bytes dashboard/img/flags/kh.png | Bin 0 -> 407 bytes dashboard/img/flags/ki.png | Bin 0 -> 509 bytes dashboard/img/flags/km.png | Bin 0 -> 441 bytes dashboard/img/flags/kn.png | Bin 0 -> 374 bytes dashboard/img/flags/kp.png | Bin 0 -> 343 bytes dashboard/img/flags/kr.png | Bin 0 -> 521 bytes dashboard/img/flags/ks.png | Bin 0 -> 357 bytes dashboard/img/flags/kw.png | Bin 0 -> 224 bytes dashboard/img/flags/kz.png | Bin 0 -> 546 bytes dashboard/img/flags/la.png | Bin 0 -> 142 bytes dashboard/img/flags/lb.png | Bin 0 -> 323 bytes dashboard/img/flags/lc.png | Bin 0 -> 355 bytes dashboard/img/flags/li.png | Bin 0 -> 226 bytes dashboard/img/flags/lk.png | Bin 0 -> 665 bytes dashboard/img/flags/lr.png | Bin 0 -> 338 bytes dashboard/img/flags/ls.png | Bin 0 -> 216 bytes dashboard/img/flags/lt.png | Bin 0 -> 109 bytes dashboard/img/flags/lu.png | Bin 0 -> 121 bytes dashboard/img/flags/lv.png | Bin 0 -> 93 bytes dashboard/img/flags/ly.png | Bin 0 -> 244 bytes dashboard/img/flags/ma.png | Bin 0 -> 309 bytes dashboard/img/flags/mc.png | Bin 0 -> 90 bytes dashboard/img/flags/md.png | Bin 0 -> 342 bytes dashboard/img/flags/me.png | Bin 0 -> 490 bytes dashboard/img/flags/mg.png | Bin 0 -> 101 bytes dashboard/img/flags/mh.png | Bin 0 -> 821 bytes dashboard/img/flags/mk.png | Bin 0 -> 356 bytes dashboard/img/flags/ml.png | Bin 0 -> 98 bytes dashboard/img/flags/mm.png | Bin 0 -> 336 bytes dashboard/img/flags/mn.png | Bin 0 -> 275 bytes dashboard/img/flags/mr.png | Bin 0 -> 304 bytes dashboard/img/flags/mt.png | Bin 0 -> 153 bytes dashboard/img/flags/mu.png | Bin 0 -> 107 bytes dashboard/img/flags/mv.png | Bin 0 -> 160 bytes dashboard/img/flags/mw.png | Bin 0 -> 261 bytes dashboard/img/flags/mx.png | Bin 0 -> 309 bytes dashboard/img/flags/my.png | Bin 0 -> 416 bytes dashboard/img/flags/mz.png | Bin 0 -> 420 bytes dashboard/img/flags/na.png | Bin 0 -> 267 bytes dashboard/img/flags/ne.png | Bin 0 -> 150 bytes dashboard/img/flags/ng.png | Bin 0 -> 99 bytes dashboard/img/flags/ni.png | Bin 0 -> 281 bytes dashboard/img/flags/nl.png | Bin 0 -> 108 bytes dashboard/img/flags/no.png | Bin 0 -> 154 bytes dashboard/img/flags/np.png | Bin 0 -> 490 bytes dashboard/img/flags/nr.png | Bin 0 -> 188 bytes dashboard/img/flags/nz.png | Bin 0 -> 463 bytes dashboard/img/flags/om.png | Bin 0 -> 256 bytes dashboard/img/flags/pa.png | Bin 0 -> 196 bytes dashboard/img/flags/pe.png | Bin 0 -> 91 bytes dashboard/img/flags/pg.png | Bin 0 -> 556 bytes dashboard/img/flags/ph.png | Bin 0 -> 500 bytes dashboard/img/flags/pk.png | Bin 0 -> 319 bytes dashboard/img/flags/pl.png | Bin 0 -> 91 bytes dashboard/img/flags/pt.png | Bin 0 -> 395 bytes dashboard/img/flags/pw.png | Bin 0 -> 156 bytes dashboard/img/flags/py.png | Bin 0 -> 228 bytes dashboard/img/flags/qa.png | Bin 0 -> 229 bytes dashboard/img/flags/ro.png | Bin 0 -> 98 bytes dashboard/img/flags/rs.png | Bin 0 -> 523 bytes dashboard/img/flags/ru.png | Bin 0 -> 114 bytes dashboard/img/flags/rw.png | Bin 0 -> 285 bytes dashboard/img/flags/sa.png | Bin 0 -> 390 bytes dashboard/img/flags/sb.png | Bin 0 -> 326 bytes dashboard/img/flags/sc.png | Bin 0 -> 467 bytes dashboard/img/flags/sd.png | Bin 0 -> 265 bytes dashboard/img/flags/se.png | Bin 0 -> 97 bytes dashboard/img/flags/sg.png | Bin 0 -> 240 bytes dashboard/img/flags/si.png | Bin 0 -> 244 bytes dashboard/img/flags/sk.png | Bin 0 -> 341 bytes dashboard/img/flags/sl.png | Bin 0 -> 116 bytes dashboard/img/flags/sm.png | Bin 0 -> 352 bytes dashboard/img/flags/sn.png | Bin 0 -> 167 bytes dashboard/img/flags/so.png | Bin 0 -> 177 bytes dashboard/img/flags/sr.png | Bin 0 -> 205 bytes dashboard/img/flags/st.png | Bin 0 -> 207 bytes dashboard/img/flags/sv.png | Bin 0 -> 260 bytes dashboard/img/flags/sy.png | Bin 0 -> 171 bytes dashboard/img/flags/sz.png | Bin 0 -> 537 bytes dashboard/img/flags/td.png | Bin 0 -> 98 bytes dashboard/img/flags/tg.png | Bin 0 -> 233 bytes dashboard/img/flags/th.png | Bin 0 -> 115 bytes dashboard/img/flags/tj.png | Bin 0 -> 283 bytes dashboard/img/flags/tl.png | Bin 0 -> 302 bytes dashboard/img/flags/tm.png | Bin 0 -> 572 bytes dashboard/img/flags/tn.png | Bin 0 -> 236 bytes dashboard/img/flags/to.png | Bin 0 -> 164 bytes dashboard/img/flags/tr.png | Bin 0 -> 229 bytes dashboard/img/flags/tt.png | Bin 0 -> 508 bytes dashboard/img/flags/tv.png | Bin 0 -> 745 bytes dashboard/img/flags/tw.png | Bin 0 -> 171 bytes dashboard/img/flags/tz.png | Bin 0 -> 226 bytes dashboard/img/flags/ua.png | Bin 0 -> 93 bytes dashboard/img/flags/ug.png | Bin 0 -> 247 bytes dashboard/img/flags/us.png | Bin 0 -> 564 bytes dashboard/img/flags/uy.png | Bin 0 -> 403 bytes dashboard/img/flags/uz.png | Bin 0 -> 304 bytes dashboard/img/flags/va.png | Bin 0 -> 268 bytes dashboard/img/flags/vc.png | Bin 0 -> 237 bytes dashboard/img/flags/ve.png | Bin 0 -> 231 bytes dashboard/img/flags/vn.png | Bin 0 -> 268 bytes dashboard/img/flags/vu.png | Bin 0 -> 540 bytes dashboard/img/flags/ws.png | Bin 0 -> 216 bytes dashboard/img/flags/ye.png | Bin 0 -> 114 bytes dashboard/img/flags/za.png | Bin 0 -> 295 bytes dashboard/img/flags/zm.png | Bin 0 -> 248 bytes dashboard/img/flags/zw.png | Bin 0 -> 432 bytes dashboard/img/header.jpg | Bin 0 -> 16053 bytes dashboard/img/radio-waves-hi.png | Bin 0 -> 3953 bytes dashboard/img/sat.png | Bin 0 -> 3239 bytes dashboard/index.php | 128 +++++++++++++++ dashboard/log/xlxlog.php | 103 ++++++++++++ dashboard/pgs/class.node.php | 67 ++++++++ dashboard/pgs/class.parsexml.php | 54 +++++++ dashboard/pgs/class.reflector.php | 210 +++++++++++++++++++++++++ dashboard/pgs/class.station.php | 56 +++++++ dashboard/pgs/country.csv | 249 ++++++++++++++++++++++++++++++ dashboard/pgs/functions.php | 75 +++++++++ dashboard/pgs/liveccs.php | 27 ++++ dashboard/pgs/liveircddb.php | 27 ++++ dashboard/pgs/repeaters.php | 79 ++++++++++ dashboard/pgs/users.php | 123 +++++++++++++++ scripts/xlxd | 75 +++++++++ 215 files changed, 1369 insertions(+) create mode 100755 dashboard/css/layout.css create mode 100755 dashboard/favicon.ico create mode 100755 dashboard/img/dvc.jpg create mode 100755 dashboard/img/flags/ad.png create mode 100755 dashboard/img/flags/ae.png create mode 100755 dashboard/img/flags/af.png create mode 100755 dashboard/img/flags/ag.png create mode 100755 dashboard/img/flags/al.png create mode 100755 dashboard/img/flags/am.png create mode 100755 dashboard/img/flags/ao.png create mode 100755 dashboard/img/flags/ar.png create mode 100755 dashboard/img/flags/at.png create mode 100755 dashboard/img/flags/au.png create mode 100755 dashboard/img/flags/az.png create mode 100755 dashboard/img/flags/ba.png create mode 100755 dashboard/img/flags/bb.png create mode 100755 dashboard/img/flags/bd.png create mode 100755 dashboard/img/flags/be.png create mode 100755 dashboard/img/flags/bf.png create mode 100755 dashboard/img/flags/bg.png create mode 100755 dashboard/img/flags/bh.png create mode 100755 dashboard/img/flags/bi.png create mode 100755 dashboard/img/flags/bj.png create mode 100755 dashboard/img/flags/bn.png create mode 100755 dashboard/img/flags/bo.png create mode 100755 dashboard/img/flags/br.png create mode 100755 dashboard/img/flags/bs.png create mode 100755 dashboard/img/flags/bt.png create mode 100755 dashboard/img/flags/bw.png create mode 100755 dashboard/img/flags/by.png create mode 100755 dashboard/img/flags/bz.png create mode 100755 dashboard/img/flags/ca.png create mode 100755 dashboard/img/flags/cd.png create mode 100755 dashboard/img/flags/cf.png create mode 100755 dashboard/img/flags/cg.png create mode 100755 dashboard/img/flags/ch.png create mode 100755 dashboard/img/flags/ci.png create mode 100755 dashboard/img/flags/cl.png create mode 100755 dashboard/img/flags/cm.png create mode 100755 dashboard/img/flags/cn.png create mode 100755 dashboard/img/flags/co.png create mode 100755 dashboard/img/flags/cr.png create mode 100755 dashboard/img/flags/cu.png create mode 100755 dashboard/img/flags/cv.png create mode 100755 dashboard/img/flags/cy.png create mode 100755 dashboard/img/flags/cz.png create mode 100755 dashboard/img/flags/de.png create mode 100755 dashboard/img/flags/dj.png create mode 100755 dashboard/img/flags/dk.png create mode 100755 dashboard/img/flags/dm.png create mode 100755 dashboard/img/flags/do.png create mode 100755 dashboard/img/flags/dz.png create mode 100755 dashboard/img/flags/ec.png create mode 100755 dashboard/img/flags/ee.png create mode 100755 dashboard/img/flags/eg.png create mode 100755 dashboard/img/flags/eh.png create mode 100755 dashboard/img/flags/er.png create mode 100755 dashboard/img/flags/es.png create mode 100755 dashboard/img/flags/et.png create mode 100755 dashboard/img/flags/fi.png create mode 100755 dashboard/img/flags/fj.png create mode 100755 dashboard/img/flags/fm.png create mode 100755 dashboard/img/flags/fr.png create mode 100755 dashboard/img/flags/ga.png create mode 100755 dashboard/img/flags/gb.png create mode 100755 dashboard/img/flags/gd.png create mode 100755 dashboard/img/flags/ge.png create mode 100755 dashboard/img/flags/gh.png create mode 100755 dashboard/img/flags/gm.png create mode 100755 dashboard/img/flags/gn.png create mode 100755 dashboard/img/flags/gq.png create mode 100755 dashboard/img/flags/gr.png create mode 100755 dashboard/img/flags/gt.png create mode 100755 dashboard/img/flags/gw.png create mode 100755 dashboard/img/flags/gy.png create mode 100755 dashboard/img/flags/hn.png create mode 100755 dashboard/img/flags/hr.png create mode 100755 dashboard/img/flags/ht.png create mode 100755 dashboard/img/flags/hu.png create mode 100755 dashboard/img/flags/id.png create mode 100755 dashboard/img/flags/ie.png create mode 100755 dashboard/img/flags/il.png create mode 100755 dashboard/img/flags/in.png create mode 100755 dashboard/img/flags/iq.png create mode 100755 dashboard/img/flags/ir.png create mode 100755 dashboard/img/flags/is.png create mode 100755 dashboard/img/flags/it.png create mode 100755 dashboard/img/flags/jm.png create mode 100755 dashboard/img/flags/jo.png create mode 100755 dashboard/img/flags/jp.png create mode 100755 dashboard/img/flags/ke.png create mode 100755 dashboard/img/flags/kg.png create mode 100755 dashboard/img/flags/kh.png create mode 100755 dashboard/img/flags/ki.png create mode 100755 dashboard/img/flags/km.png create mode 100755 dashboard/img/flags/kn.png create mode 100755 dashboard/img/flags/kp.png create mode 100755 dashboard/img/flags/kr.png create mode 100755 dashboard/img/flags/ks.png create mode 100755 dashboard/img/flags/kw.png create mode 100755 dashboard/img/flags/kz.png create mode 100755 dashboard/img/flags/la.png create mode 100755 dashboard/img/flags/lb.png create mode 100755 dashboard/img/flags/lc.png create mode 100755 dashboard/img/flags/li.png create mode 100755 dashboard/img/flags/lk.png create mode 100755 dashboard/img/flags/lr.png create mode 100755 dashboard/img/flags/ls.png create mode 100755 dashboard/img/flags/lt.png create mode 100755 dashboard/img/flags/lu.png create mode 100755 dashboard/img/flags/lv.png create mode 100755 dashboard/img/flags/ly.png create mode 100755 dashboard/img/flags/ma.png create mode 100755 dashboard/img/flags/mc.png create mode 100755 dashboard/img/flags/md.png create mode 100755 dashboard/img/flags/me.png create mode 100755 dashboard/img/flags/mg.png create mode 100755 dashboard/img/flags/mh.png create mode 100755 dashboard/img/flags/mk.png create mode 100755 dashboard/img/flags/ml.png create mode 100755 dashboard/img/flags/mm.png create mode 100755 dashboard/img/flags/mn.png create mode 100755 dashboard/img/flags/mr.png create mode 100755 dashboard/img/flags/mt.png create mode 100755 dashboard/img/flags/mu.png create mode 100755 dashboard/img/flags/mv.png create mode 100755 dashboard/img/flags/mw.png create mode 100755 dashboard/img/flags/mx.png create mode 100755 dashboard/img/flags/my.png create mode 100755 dashboard/img/flags/mz.png create mode 100755 dashboard/img/flags/na.png create mode 100755 dashboard/img/flags/ne.png create mode 100755 dashboard/img/flags/ng.png create mode 100755 dashboard/img/flags/ni.png create mode 100755 dashboard/img/flags/nl.png create mode 100755 dashboard/img/flags/no.png create mode 100755 dashboard/img/flags/np.png create mode 100755 dashboard/img/flags/nr.png create mode 100755 dashboard/img/flags/nz.png create mode 100755 dashboard/img/flags/om.png create mode 100755 dashboard/img/flags/pa.png create mode 100755 dashboard/img/flags/pe.png create mode 100755 dashboard/img/flags/pg.png create mode 100755 dashboard/img/flags/ph.png create mode 100755 dashboard/img/flags/pk.png create mode 100755 dashboard/img/flags/pl.png create mode 100755 dashboard/img/flags/pt.png create mode 100755 dashboard/img/flags/pw.png create mode 100755 dashboard/img/flags/py.png create mode 100755 dashboard/img/flags/qa.png create mode 100755 dashboard/img/flags/ro.png create mode 100755 dashboard/img/flags/rs.png create mode 100755 dashboard/img/flags/ru.png create mode 100755 dashboard/img/flags/rw.png create mode 100755 dashboard/img/flags/sa.png create mode 100755 dashboard/img/flags/sb.png create mode 100755 dashboard/img/flags/sc.png create mode 100755 dashboard/img/flags/sd.png create mode 100755 dashboard/img/flags/se.png create mode 100755 dashboard/img/flags/sg.png create mode 100755 dashboard/img/flags/si.png create mode 100755 dashboard/img/flags/sk.png create mode 100755 dashboard/img/flags/sl.png create mode 100755 dashboard/img/flags/sm.png create mode 100755 dashboard/img/flags/sn.png create mode 100755 dashboard/img/flags/so.png create mode 100755 dashboard/img/flags/sr.png create mode 100755 dashboard/img/flags/st.png create mode 100755 dashboard/img/flags/sv.png create mode 100755 dashboard/img/flags/sy.png create mode 100755 dashboard/img/flags/sz.png create mode 100755 dashboard/img/flags/td.png create mode 100755 dashboard/img/flags/tg.png create mode 100755 dashboard/img/flags/th.png create mode 100755 dashboard/img/flags/tj.png create mode 100755 dashboard/img/flags/tl.png create mode 100755 dashboard/img/flags/tm.png create mode 100755 dashboard/img/flags/tn.png create mode 100755 dashboard/img/flags/to.png create mode 100755 dashboard/img/flags/tr.png create mode 100755 dashboard/img/flags/tt.png create mode 100755 dashboard/img/flags/tv.png create mode 100755 dashboard/img/flags/tw.png create mode 100755 dashboard/img/flags/tz.png create mode 100755 dashboard/img/flags/ua.png create mode 100755 dashboard/img/flags/ug.png create mode 100755 dashboard/img/flags/us.png create mode 100755 dashboard/img/flags/uy.png create mode 100755 dashboard/img/flags/uz.png create mode 100755 dashboard/img/flags/va.png create mode 100755 dashboard/img/flags/vc.png create mode 100755 dashboard/img/flags/ve.png create mode 100755 dashboard/img/flags/vn.png create mode 100755 dashboard/img/flags/vu.png create mode 100755 dashboard/img/flags/ws.png create mode 100755 dashboard/img/flags/ye.png create mode 100755 dashboard/img/flags/za.png create mode 100755 dashboard/img/flags/zm.png create mode 100755 dashboard/img/flags/zw.png create mode 100755 dashboard/img/header.jpg create mode 100755 dashboard/img/radio-waves-hi.png create mode 100755 dashboard/img/sat.png create mode 100755 dashboard/index.php create mode 100755 dashboard/log/xlxlog.php create mode 100755 dashboard/pgs/class.node.php create mode 100755 dashboard/pgs/class.parsexml.php create mode 100755 dashboard/pgs/class.reflector.php create mode 100755 dashboard/pgs/class.station.php create mode 100755 dashboard/pgs/country.csv create mode 100755 dashboard/pgs/functions.php create mode 100755 dashboard/pgs/liveccs.php create mode 100755 dashboard/pgs/liveircddb.php create mode 100755 dashboard/pgs/repeaters.php create mode 100755 dashboard/pgs/users.php create mode 100755 scripts/xlxd diff --git a/dashboard/css/layout.css b/dashboard/css/layout.css new file mode 100755 index 0000000..bf0167b --- /dev/null +++ b/dashboard/css/layout.css @@ -0,0 +1,96 @@ +body { + margin : 0px; + padding : 0px; + background-color : #D3D3D3; + font-family : calibri, verdana, arial, comic sans; +} + +h1 { + font-size : 25pt; +} + +#top { + height : 105px; + background-color : #FFFFFF; + width : 100%; + background-image : url('../img/dvc.jpg'); + background-repeat : no-repeat; + background-position : 99.5%; + position : absolute; + left : 0px; + top : 0px; +} + +#menu { + margin-top : 5px; + height : 34px; + float : left; +} + +#menubar { + height : 40px; + width : 100%; + background-color : #FEC456; + position : absolute; + left : 0px; + top : 105px; +} + +#info { + float : right; + font-size : 11pt; +} + +#content { + + width : 100%; + position : absolute; + left : 0px; + top : 150px; +} + +.menulink { + font-size : 14pt; + text-decoration : none; + border : 1px #000000 solid; + padding-left : 10px; + padding-top : 3px; + padding-bottom : 3px; + padding-right : 10px; + margin-left : 10px; + background-color : #FFFFC6; + color : #000000; +} + +.pl { + font-size : 12pt; + text-decoration : none; + color : #000000; +} + +.listingtable { + margin-top : 10px; + border : 1px #C1DAD7 solid; + font-size : 12pt; +} + +.listingtable th { + height : 35px; + text-align : center; + background-image: -webkit-gradient( + linear, + left top, + left bottom, + color-stop(0, rgb(201, 231, 233)), + color-stop(0.8, rgb(220, 237, 244)) +); +background-image: -o-linear-gradient(bottom, rgb(201, 231, 233) 0%, rgb(220, 237, 244) 80%); +background-image: -moz-linear-gradient(bottom, rgb(201, 231, 233) 0%, rgb(220, 237, 244) 80%); +background-image: -webkit-linear-gradient(bottom, rgb(201, 231, 233) 0%, rgb(220, 237, 244) 80%); +background-image: -ms-linear-gradient(bottom, rgb(201, 231, 233) 0%, rgb(220, 237, 244) 80%); +background-image: linear-gradient(to bottom, rgb(201, 231, 233) 0%, rgb(220, 237, 244) 80%); +} + +.listingtable td { + padding-left : 5px; +} \ No newline at end of file diff --git a/dashboard/favicon.ico b/dashboard/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..78d5346cff153a6a622a8fe34cf55a357bf12495 GIT binary patch literal 21241 zcmV+AKpMXQ00962000000096X0OL{s02TlM0EtjeM-2)Z3IG5A4M|8uQUCw}00001 z00;&E003NasAd2FQmRQrK~#9!?frL@UiF>liN8MId!JM}C<{plAt69W2#F*KWe_6R zWMkum({b2-N-R@?*wgF>ult~g2LJ!N6p368+yE>9E(A;oU-u!f9@Q1r+BITKqTu_C8$X^u z{Qmdcb=O^$4GAFJ$`S+*n>TO9_q^i2s75hnUMLc|ouZmQ8F2dGwNrp8h+JtLXN$t) z3eRTJ>8_bGXQJI&fk@?>5+qc1D*!lt{5TsoZe+xW5ga;tl+mL{8?iQq$RZK>HgGvG zhW;h=W2n9bJXk0co(4KYp^y*Y`#uc~4NRXty|Q@~0;r&;c=5#-Nu^RWH8l~9#mHr| zu2royjyHGf>Xsy zFTI54c|@a8B9RFBTrR94%|>J~B0mCVQuN_FWin(1(!efMf3NTqa3oe!lSw5K*g^p@ zh6M{2R5rIl02Q1Jn>TO9`aXzYTo*5wi-f-*w6d_jghHg4RAs-ngq5LIiZVa%;!%rB+*)gKRp%2@d69-9LU zM`VeJED>n1zMlsY;y79B`-DOvwr<^8+4M5munGnc8#ZhxZbZ>~UZo-z2`mO~r1-@j z4A_n8(}=v_d*17H_4TdsWRl5q=J4UVb(O2Z0K!z3p#O2#U3anf&>_}t*Z{_$sT z;nxp1N-?PD1>g6dsjII)8jr^@zK=DA`Sa&j4oigq1`k%QTuD40r?$41@e?L+#Tz`hKJ9x;G+n8*l+IYQP3)E!CU1(Dbjr z0pBM-Wip9tuO>5dM)6wEzvuvVp!%fec@K)?9Ku@P7^Bu&>g(&7F=IyMP*n(^{PFVU z&G@Q>RXM(A4@DQ;c{d!^d@jd%=bgvs(W5^OJFcKY0A+)9>(&8ajG;l54r8JQ z#sXhMfQDSMGo};2;d=5D&qQ6fzpn)VS>On&kErScV$4U| zH*HE?xL^UPREl9EM)2IzPxH5b`?r;YS0R9b$G!L5!^BCGa6=*de7*+9nFL(h{l!0< zVyJF;t@TL=pm-_-Z`4TQU%!s@teM!lx`7}80H314@NwVThb+85yr!nTE1kykJXE#f zLaY$Lz~JSVU&i`Ap=gxani}F=U5&S&7h`(+dh zY>o)z#7>6*x_@6oA+pn_kz95q*$bwjt}~EVf)hvpn}L8a;HlG@UgIaqeqciIG^O=h4>A1 zV9UZSmjvEcSY_dnq%rT+d7eV0c4378P7x;(b9`d}!~r9!6A<|Z@HOBZpm9)4wkHJe zslT<=)#PSOqwDL}lb#rq!>BVR?T23>}0*4e{Qq|w(v)QfDNF*PQMr|gYCK`=WC=`Z#ZGs_70BhH-<=JPS z<@)Qd$8lXc4jrOl^yq4Z$s+PC;AV=3y|OyhWkUd;epGce>A9B?zwR2mVa?!_g>B#j z3KVk=)~L0=@qB+<$e0AiSXIUMeT*?&am5uC0vIaz)1UrCRaF(?Xp~q(1DTGFCRLqk zM7~L}iN;6#+sLIFgERCM8xIP51HXaLkVHPO}9HbF%$ z?GD_z7N{Qz>(CzrfNIfQICBPxazl?3)$@3ZY1I-lS$4$|9r-eA3ta_5C*iZ=L`%{7I1g-?;@JU(`^6hlE17p%Ci(CX>m8Baz5OB624pi-0qLNJRoq zg8tF~K8;`=^}7A*?YF$kQXgu`J9g#r;{V&XV6x?5%~1?nhvrAd_O z(5t9uBp>%6a9Z1_fAk5$d-f8){u=TV&-`=*p;yNH2rvtg^95c-^|y((whbcE<(9u~ zBlrXW;5d!}MhQ$obt|x~%!h1L~u3TKW#eBjc{e?9J%SG0^{2R;K;rJ@1!1A>^nwQ=J{LnZU_Qn%X>Hm+YB1kX8*XGWh>%a2KD{58C=SwE#r;rHUU6M1| z21I@q7N%#c|KDaO4zK#w)XB_0XL5N9lcS6s?E!G#1A8k3aJu-#FMdIl<1lghbQ(sC zz*@`I^X8q=A{6l=D?eNE^d*z{XGi=a*i3>0{#0<#H@vzPv&J zUxeuwUWk{=Ni-6PifYI)CJylJypIdxpA0+SJ#1tI{c0U9fq$!3v4p)B@33p^MyY;nz}H&+ZyvObf%gygl1y#kJdTs$+I`CtES&Nafud+z@< zF$f|u9B7ZmVrAtiC@TUOF>)k86xC(c^WLIZ`kAW>mJoCa!UGW#X%PvWMJ?}nyx-Z$ z+Puft3yLX+4{uTDE{pYf$u(?sh13@eM-=cST+aJDW>k)!e!txrGpeEC^Zzdt4jbSW zh5JL@XS!TaR&kiI+FFcivl00=pCYG7aiI1p&+7bw4Qw<`$_USeUG_PG7=eNQDFfj* zzyTvX7cz8p6Z_|X${jV;mLGhxo%7Gh>KBc=d!?^cn4B_3R;*Z2A%M?g?WRrSySf~T z_4d#GqQe;iZZ25P^Mm0V{yYRYY=kF54%vVl?!I1+9PmuYu*V7JY8ay|TNLM-E8~P* z{j#Yx82Fya<-*rre|?1jJ`W3c#?%Af}UMs-~5{j0eoh4ve}q{?{Nx6J3_!B&$7U?WnN(B;M1%cI8DF-4jJLakl~n=nLDPBg}+T; zWyrAK2u{Gp@B6}e=VbZjO&yFHS?Eb*LLG1&s-wzbJ_CO4+;Es^b@k=IrJP1wf_4x7 z5>HuPu(*_ay~!`eM#u1)VO^q#ux;aaXSrQ6| zX=`g6dISIz1E@u=1}^B$V=OSsSC$nlwHnN;z^ahpJtKi5uv3Ks?;2rcD0p*Jh0!Am zeEXITCY_Zp)d8EJs#hiB@v5<7$MW2B&kY>{SigRKaSg4VjL2djR*H!%^DLKn7Kh-G zKthDa!Vaxvn5J6_vuz;j{4 z4l{VP00G`}ia!5*0LMRJT%MnNw~b*2BVc@!gWu_OrtAG!@=?H5=!A}+vV2x{d(=oxj)+pR~ zO($0_h-3OzN(>@5g<`P@#&y~B+G~T80LG3TOG`@&jm^ziI2ZVOU%qd+!tHsVkpasZ z6d)o_`UQ76!ZWTpQ6Dc*5Fib#a)plq=JQuzSjh67 zt2#MrT)(wUa|ON;g%Pd@lPC9I@zZ`IfK8h=QQOb}BI8Bm*8X^B7`V(Tb5Z;N-9d$7 zf9fqE;gtYp%bm#c-xxA@1c$&B2q|2bQYQbQj@;U6G->*40*h63hM&(H$8q{CE}&ls z;HN+RDOJ_gB)Yny#+d7X3H`OB`5K4g7uJv&6%JHzfB_DR@SY)kxyMZNxhe`s5e-4pD*cVoY5$7VEdl!Tqv73+B&f`wK5% ztsSZGt^Rng0C`toLjos~g;s|Q9|Yhot-uaPc%fVM50dcLcjuE# z_w}wZs_6LD2vQH#;~#bVtd_Pwtz*phv)OF;yWjop;2{9D7PYofM7~S0piiIU zXsyeCzr2Bi^&wEO5uxM!YEt7PfwHO@iVZVXxrUB1t{Wggm%y_j!+`*KFO;IKXr5=3NM!1U_3Qg(3H$s!ZP>5@Cma?r=1O21 z{UCk?NBI5hIyRsAsT2bXg$9?l3v0Mf@x=ovcPXI;Xv(+NFd zd*KW3N9g)>GhP4pFudI*S7;*w%RM-|Kjz=31aR-Y_u_;?V9a7*dSAa!fL%=?{`Jy& zj@LLR{iTlct4U0Zp#iEzZ-9@SVm0A(nT;(6JP|S+2v}|Z2ymTexyV1wl5!5%Hiz_| zYU%jNANIIYKyg`{ZtAKur(pAHHCdRYV8M}K+m zAR95XUR+DIIat{O7Fg*z>~N%PlothF>+W+9q&$BE%=9eR7HrQd(HPLYklP-m<3A23 z{;!SLR;L)t-TS!b8sJ*>{jpF?pbH!U96o-W=H_Oanww8l`|Z=Kp#qOjt6|mTD!i}y z5-H>wLbP5|j~5G8ZMrT44~HD$W$>{*QQ-5jkRcJEJbwj7Tjh?tr9peS0D#}(lDxlx zj$aNp-rFYPZ7<20nj#`!GmeA$eV0kmXQzMLwr#B1w8u9Yx zMPI)_azfD_5TvVs(w$!G4t#=*2Rt2e*kgi|=dVDO!tHs>#8TynC`eQ>^%iwNOY^B~ zM&ugb_nXCaS-Em$a0p<-h7Hu!)Ue=^OJ)J{=)*3=j>7S3hkIw$@z&_bX&LscE3{9q zAvrD*D6c?P;JJ`t_W-)v9N=w7Smz4q0A2kZ;HrYpWxnmbKf3$OgwD=W_oEIP{;t)A zrrTWTf|6Z^E)rv|3WdWw_0&_rApn4XTDA;<<-pXwdWR@vUE!(ot9gD(b&nj3UbREZ z?7G0Y29FxyiLfCx0GW1%qUygQWH=U}wq8DPzHhnKQ|fzLJJJVvXpf;+B2?e{up z_`6mjmt>&t0!-&Sjx)!NM7VVR{PHINYb|5Pk4Hro0T=hxh8l&#wGO|%xSpNE!^Lim zJ%qYKd~y|CQ(}RM5;PPe?^cEkd;9S#>;fMeVReA={1u34v1sh<-V}-H?nV=xlcN4- ztxL7cC zKDFQKq~Y&ch%HJX5v4yYu>#9NA{RI!C3gvy{KFx|TK|_&RR8+~zQC4oQGP$Wj=Wo< zW3P}M7N+BZ8VdEnum=dmAe{BCVOu{m8C77bBfK1-%Ec$L{BA5*M)Xu(4TPrTX#BfY zYJbv>dsg9-1?eA5Lv^8FC`6%HRlDp6;O!4T?3PY{6mSht+gGb`wASVSncK+mni31D zKzve+&MDQ{P%!QS1~}Z^Wb{ZM=HDCOfDxVxIdldj&tHK?Rj%zt7io!Es;)}V^dF89 zyE2KXvkZ{ooAT%4xy z-yfs;);OlVEG|4oL~eIoceE2KT>?@`2tY&#MIwmmS-_2@o_WYB5l{8qkzxIp%j)Tf z^|AR$AvLZ$YcL#)@7;-Hq17QnqQutu4k;%4w3TTl;uoP=m2Va-qfV8vwD{wU^r-np zCrx)9CvtHH36+&G=n7z#m&-X-RaGUi1@!uKpSX{BnM@4$8ZfS;Q~vJ@cxGxfZ;pvp z|KC?Mg+3e>roYf}el>|nQ8YlV!PTzeZKrfbIty%Yh1Zv0uDrG zW@z|#t> zz|>i)Z|b7qZ(E67lSHCr-C}y7ip=!EJiltyz!Lz#geg-(-L?KFm2##H1%c7ykzcQ# zzimupc`7X7{@$2eV~Ez-b$GGh)VX=z5mvgrugjN}Vv&!-0V%1jz*$zg`Bby~6hc$- z)c;j0_5Y@w(0REcgOs-mxCXd0m(4~lxw!XncD>dk^7%YKlN$+PccI9LaR*cVW(sPHaLbY-9G;y6eO)txG8U$ zY>RXLvaJ$ViCvkb=C&@v)3e2s+sk{CbRXQd#1b}c`tj$tq*N!z5m*ulg)VsSop)aA z?Q?rY04r9kAQp?6?yvvk5}uP`p-|}Ge{00t_>n@_r03eVUB&?Bo2x5yo?At2cXSfFD*4G>zXal` z7$=^YIe%ZvU;ML(XFfN)i6xwFvl00YB3n0Z-001nJGcJ{;I6yw!VQJUr_|}m<8;I*ky#mPf7n5IX0{m0TSC94sxbwxc`9PRsGeUbiwA}gS%&Hq zh4c)=J&~+=e^0z*iawf`KYv`Oh<%@lk78yLN5=5x~ovHW7(Nsj8}4C~y%a3@NrK zTa$Zuto2oFx$TmIU**s-t%mfNU{nz*0Ixa1M)%9L0HLV*uXTlO0qN*#fZ4ufd7)U{ zM?ZUzFm=T^{>EP%r|P;y@vA?$aJCCKM?)bpiA4VqfC6b_LcmSH*iz2uV6L5eTQ<d2Rfc+U1}9kMrh;Yor?q)4 z3V&#Fp4uO_)9}By5IQ$k=CkQB8W6cUpU;o1ZfM|=>l(61k z#^!mb^%dSr9W3uvmW zu@nA#fykv9>i?#N+B-XN#&`rOZLzm&A~Mgo?iIClby$0P6E~;%A}+f0QWTa@H2#%j zL%aMm543DzckXzwR$d`JDnjebTKoVM5D{QQ$nbi1lTiWE0xLtpj)3I(H(KRed7m*_ zy!e|sOU*YrY5YIB%XCF`NC|&8#)-(%R5Dq&apT6mA%Nff<~M|+QQp|HWwMA|NwKwB zuVI0w+qd#c;v=jEaOVufr&JN2T!of-%>0SM9#4e~2aRBX9Y%P;bpjzXE^t%9a)GbK zGF@loY4}+Sb^oRv_pJP2aqsmMSBm3Yh%u*CH}I4QKtz~0aU%7Nji7odP?Gw@2H~~j zE}rjriC!HS-`1vQ@0~tG z<{)y3TI-}zsh$%6#t^BmkEqCv^s?Ho0tfT$+1DmYjLmcJ@%8M^ z9%o3HZ!P4SL$qC3L!qv66*wJC7?4Pp*K?NtL6EQx7ZNhfgi+Zzg{3QDMr_nDr~sovpN;j*ZJJ}t#;0xoU4## z@6aH|d>6+F>6d5$CnbOvUVIT>wH}dg(Tl(zLD-Q!!o#frO7tlq)CjFJYl{U$Dje{o z2)WADi{mU?6vuHY(%;+V1g=z=s;aC!i5BpM1h8Sl25PFRh(@E=0_V`fqbmsQUXuHc zujf#{W617=U**tpNjGvSAV`aISC25%(yU^OTm<@*Mikzv{{s>KGR*I<7O|ELiKe)_#uMvo{|7Nm5D z2`rlelNx=W6)RSJH36*Mvv4f7%mFT=2VZ|dNcdTvZGW>E?N`BPkZTOlc2O;bnu=@C_l0Rwv)plW2g8RA zttvkKjOoUhYpZK&`1`;A`;!v@Kp~ZK3|vnS8-1Qg^!d{uOY|uj3?#=#>A0YJNJj}; zh2hNwzHws*7o3-=oQu9i6Czh8GntX=Kj#hjm;hc{vj$@fk*cbTfGg-h;EzGrlWpOl z*3GneiHhp~MNrU?(0Oh(@kv!fQVURpu&XRz8t3Z8am-gW^Q)i~xZD+4;D~%CP1pe3 zfB*d$*JaL}IUur>qVeyvAV8;|=IM?%*q%B-<;(x&Bv7bx>A0YV?C{W#JN&9}(Tp^= z-`GKQjjgEu{e#iKQdAp&kIRM`fa%kx2=s3R`KU)4(gi0y=g58L z_vFcYaxL6@d_5UIKS2duIuvF#*O2<>;0X!qq@sabAQVQ_T^eCOMIHJ(V}ZGGcq#h=js@kb8(7q-rPZ% z7f>F|_?p7G;Yfszj*g-Ruy4*BMC2kw7N7P3MtQ#DZPs;tfYl16pEeY7!@9Eus|U9l zaMqbQe)OGI8taF4ROkR>8ZbYTN=3$u8G}(^{N~NW5xD`VJDn#Pgf~-rd8};!a&&jqeMt%o2S zD|GS4mQ5Va4c$bal5v0$IxeUoIX*h*94I1ihpNp>ugQ#K`W-*lEABWXuY_OTmX6vo+?z~(pf2PzoDa&M9q6uED)Uc0`D_S#^wlsT~Qpyr@EbeT?ti zc7*X~3=Qv)pa>S}$B&|Rzxgy($BSLZneQTU9We6LCnzNR49D|v&WVj?YHT$9p|fUf zp6%&_B>XgkImpPdLUTTX3<9nbflMY(I;~g>W{?MliuhDTb}_7ORX-Ad;`t3Ev*%Lq z8#oQ$YD|o|!xhzCh!i-*;2%YanJ`~#n#FZZGy7*@yX_6X-2WIm(kTY*MN%PpG)rV# z=b-VC7YaVV`(qPR&dM-p;^5W-jO1yo-bj7bmVWv~DT>R{&Kv1UpLVlui|U7N!SmLI zLZPj|+|v=ri0Qw3YVmy`%plJ#2qis+zY>Sk;PR+^urtcN4>$Ag{^B_Gb%WalDB|IW z*KhCZO3&hW*ELv;a++b4E!NsU8b_o>Rqq2T&e;KkDJad`62y+>2VI1mweakVb*y^1 z7F)3cmJGSVXpVH;N;*H09>i2XW{lZoB2`s6tGX6=r?R92huU3f>UX3OZ*UqqGg-s$ z9%$yB4`P)(u@b;)gyZpR=t#}$iM^p+RUg~2d2^S^XEHdjAJqpd%Q^rs5Ivr!`OPG5 zW^i}BJ#Z+@Z~o9sTbolMfnGo{bfzxjXva;c_UKytEF$ksx%_fWI+MY;ZU%S>*il*D zeuRLNwlu$$B-%Ro-DJKGn_sKuk*6E5l?!K&ko_&sXWodBK)9Y20t027Hs zDEK}eyr=MVWqJD%7V1ApQM)UH3;}@^VJs z#9Dkp!>?*jHKRet?1MLs=T%N#W!Mx9b0S5;$-;%ma@%vVVUV zDn+AC8H(Xp*LAcf=c7GaxE!!z?&X*7v#QLUJGc0hkSd-kqWW4l2~^OhQUIY&kH+mO zqHTqtcOO=G^^IyCThTx+BNcnVDI$@X&e6`B@ci1IK4LSfn>KCUOej)JKQ{o2=gcYY zfk+$hB5laj!i^|d_pTmzn0xd)_j=WwL` zb_!kty-${g|d?!iG-fTs^{R(6< zhCe>q#9Qyi7|I2v3tlsa+P_UYKe0EeKR^en4^J33E^*#@=Y8QXd?5iWS+WFC1=V*@ zT?14;T|I$7^?@vn@1-iL|0&|o(GdT7Z!_(kLo-g;+9=24*V2)^ytj{1;G;sJuwv`$ zuQRsW{dYZAm)c=2Mw4GoIO>k1pFba6W^;TKP7+@7TR zK*fY|noCDIZFu&@de&{K9#X`aD~#qq+mFciEX(iHP>L!3kGqcJ|LRx2I_WQdsd+IU zkArGjRDTatnz*0F^4IRkP`@LMDO4{0r%eI^hmM5!!=p{?+aDehS%bc<;!yh?-C2IU zW<4L(`vqDA_{A@N(K7;g;_=4`g~Ps8-2`l@9L-ZXy%1?H(6l{Cq;m)+`jimcwpa1s zlZ~VkX3(!=TVe@qi6x~_{Q(ZC>f@blZ8_inawFoG62N7bT}CdOMSZ_Rt-S~E%4f;S zQ}~^%rSY8<)dzEExp%-UV^g~bLZBk zt8Z@p%3u9b0=V_oTiL&VKjB!cpduT9traQ%lD+hm+C3Q>K1cobWmOe@`Yg>ZvO`9+{98n@~FZSbLY%S`JTu8`SW{D005&#jUu1VW34@? zst;7e{N#wV6=>d?zzINYzwGd{I6mh)c+v7s$8{a$?e}6l{8R(&ZO))d7*cgrf!x1xIhQV7N{Qh!$DMt4 zdm*3y%CG+^5deT24&xUJSl|Bu)k@vK&+nzL)W4sic258tC91^FoM7L-qV`?C&PMySKod2UEX{9ZSK13uF?{~f&~js{9`AoF9L^$y6}syG{2dk z>S(U)6Me+`q{p5|{G9pNXzeG$u8LPXoQ@gSP^cSDx%=C4dEwqi8rilzm>q`FxwARc z{%t&4M+py29#}Q$l1p~@zR$n=o4+~bKRhi8nmczc)>?eeTaW6-p)LJTyE{Yu2Wd>c z{8fK1R!8S~OURBqn=k6hkr{I?ozt!YQ~v68Yg>rB?;Xa`W1&EiK*4X|aQp3~vQsGW z7h@~1de>{Oo%SD|whnT|6<1K#*mzuF70@;$h2KD=wLtTm$zpB4azBIu$unn>m^>H0 zsKc@+YApLG!A!1LR($pP+CT&d#nUr6(s5gSITd3Qarv9UJ0NQyeHXJ2Bc@C)wGvTYg>|%&do=0-x?6M~| zBhb?7^5El*eE4B`mle+yMscwHyW|QZOZ{jc*sPxSD%PI%*S|*u05EF&csknJu+~0G zvEt~^fI#eMj>flx)5$kCYyuq@UWdA;;6GQ3U(-a#1qCG zEd?|H!tY1x=$O8oeA5}HF3i>^HQ_=MljmT=G0NG!Ap(Vh@cf!OR<5lr%b~U;uKHA# zUr7gOfvtsHZjDzcd||!6J|h4C*L68#;zX5Ve!$UwkiUUFY@QZX{||$~bt;DR8Pn)G zcTo>cg+u#=*OMK7R@u+f80hG9c=)MC-g-AyR#$;!_FRs2-ay_PP9LySJE{*=)zoB% z4>q_SDZ0)Mmzx7Nh-w(#G4XZlLv& zTd?7(9PTivp_3RsP1TH?zOCo<<90DFL+>r-Z?M?Fn8`;=FOX@=}cxD@G_;#g3npc zdrMWf09*dIy$`(hpY}iTX4>ZZy{(RT#dcoR`-4*3Psxs$M91{ysM|Z2lMO{^yZC1E z^&RP_1x zeiO)!oJ7ZrYtaBi2#Ubo17UvuU^6YP12bM#*=LpiZt8izX6!EJUvVj@3Z>IYe1-ee zm{y$L%S5jUVD*3dZ-hf3i?y#&tR6gQ5NR(I+j(UIQjf~|#HY+9IdK;1ltuv5xOAPj znDiOb0QLNpIVQ=+O>W1n%xRd?}vhKdVe+R^%Iu< zW?vWPP>Zqm~%^C=g&B#$4#g6{3U@14gxsd z>hhcWnmK&5@9P{W!p_tLe)Zx1Vs|E|=3Y8}Ez!O)n;Zn5iZnE2)c099XU@PAK=JGu z)LPWq!@z@qmVAM#Lpd7XO$DO19~4u4Q{!e3pE3^(MN1#YuZkb7q3c98VL(V=`v)<8 z_ds)>*A7T{)%?euf63Oa=@{|F>7%cP!jmepD;tlWQoX-^BY=7H=7F^sV+yElMD_Kc z3cs85X?i;twf#;Ar&rZL=Xs0C4L`H*gi|3q@@zUTxVk&6xcsf6`Mj`tT`kYPSl4Io zD5%SQ2XEo&qs#ELPYu;=YVA{FM~>`F#N$1R`|mRXC<>2YeIKt-*s1VT5QSfSrQ!V) zwR-~8$yXpT=@Jr?=k)Q5v{*f8(q$yhx}@x@2X!AwjR+kpH^- zhjbPC);^-D&!YP7k)uahzHC{^o?EgdnKy49s)`#9XGCNz@IjymK%shnmWKCI#oB&> z`1)INP2=f2|4RJohQ1d{wd9+|(s}+83SX95Tt+Yk-u)oP{f{;g?=q!3@dAglBl(99 z|1G=I2dUfpZIl!HQ7|(M8TJw z0Dkd{U$AiDLTVctIuKa}94qI85$-53?DYh0Iyl`Y)p1EqoK1Z4+yT9Zcb>nb7$I2Z zorOM@U4b?0Yk78c9ob9|5{3j?bB+A#-fy$1eOB@7(YMGcthpx|ea{o=an66g5&*y> zk32#unM75e2ey@J|4Kgje6gKZtR)|)>at$VFj_CZ85^k@xIw7mS2fZ$>qZLIjRZk` z5`lEa@P|j5c>BHBX>+G%U7kF8HTNI75#NUTW6mF-`t0{|xjs9deL?`Y-g+x|9**N2 zNA)?NqgM}f&jxpD6_l=hjaa4OgEY0fGr>{)DK_$GpK%Sj;Sv-_!$(8>kNcWAewqnGTRLa(Uv~eP&U|BkeEmIO!@JwIy`D}aSTLt=+`N5eJrdW& zdLC-+6ZAG0+CK>X-pp55wLEo1kLPK6Gl7!}R^$2f=qYqfTZ)!RD=&3Iv|aQya*byM zW(`H)jW?@#@X1Cp*;5mNgW1vi*WEwjy~JetDL#Ck!V?!>da0d0V@997q|XT8iYuf*ZVukX{B^?3xz+_`hnBJKlP25h&D5N`Kqeltn9DGsRy!s`Cth%N~RpcElwiWOH40{2SE!Om}J`{jH^Z^EI z=~Y)$FZXNHn65YR}_J0YreaauMI>;pHIeaNKCqv#H7oDGiKv_5~UarE2{{2UNK7W zxfg3WlpMi-+5KbQNlfYQp?oCpteZ%9@p%8V-0T+u_-OB5tmh#RNA(^c*I&Z#ru^V{(Vpb?XhfK(4M1`URXJb)hPLq?-7Y zD~hr90l80qa+H2GnU*B|Tnm1`Reid#xjCCkCi$m- z`lrD|08oqx@PTZxkKhCJgE27Ll4scK35*vghd+pr899ZH8Ouvw;Im(#U|hP+UrJ`| z`2;E8!pEU%$1Bu*@G_>5rQa;Zs*ein>+0xW`t<4jHs5|DfVp$$qCia56V+EJcKzuy zxGA6Euf+)`f)(utidWr8`^;kftInxQ2HG&VN&uPpZWqRyK)kAm-$^}Kf#o-MWThdVrmy^+98 z1IT{_xfL%U{RKab=<(eQ+ww3bpDFdDUsY>gZdYZXc6~tJ z`{N(~m;(n65Q;_@6oW{4Gr|Q7lr6PfMP<=k#*;&#? zAAuo&rAwD0s)$HCs?P$gJ$jH|RQ>BeN(WMS)D=3W)sPz&8q~tyJzMgPV`-apBkBap zAczRjmOV7R@f2>dy|-FS0oc$yVZt_RZOQul1&ROw9M>&&6;@qA4_k>Sw_k%37TDsGx!aw!_#SxNQY9^YDhU<<070Iu)jia%vd08oqz@T|qN z_EBK(Depz0yOZzkOdySZ)UFR+$Gv-{x25S@5IMnQZjfQttV)Ciexe8d|jY2lNE|*R-ckbK@ z0RR|dc_eiohQFX^rx z6f6=D-=p!ZXQ4+?T0{SRG6-*Re`*^lzJ`V=gcQLVP@cB1CSF5Ll2*7!jM&XQ&rb=b#<|L@!|>r zd>YR_`z(kQthK+VSUKnmm;&l|q^R4O>E~JvC4xes+M#Vm4PLb~1n>TzUk}BvZY*{= zZX6RluYee0M|RNs+T*7ZC72Vq*BH|!WfbgHHUx0(wbv4jL{y3m5ufAJ;-P>eQgtXt z(_2ZLYydC*6n*}QNl{YcPGLV~E9K-mzoHcDA&9(nDnAmN*FKn!L7) zWjp;;rlsc-5#v=i4fm=VMimc(qQ=lZ{d@{dQ{YR3eq1nT(ANe616&x(v9LBns0>Iz zhlOcfdL@T8`eahc)bV4-b`c8uyF32 zIRW(Z1`C5T`FtSplkt#fg{C?{-^VNbouL0mljHBNEKUXGh9FgH1mM+IUnP^t1Yo2u zGihp`CA%lYcbxOW|M*4Q^cOU7j;cy{vOW%J`l|nur z_Ixe9(D!``g@VLlvC*MW=v#;^24a-4J)^rB`NR>fAG)z2 z$yt#C4|LSBB^51mcgBE8)dit&_{B1>kf4CCu*LPf`+d*bF2+;{pr1%UDRvn81FG)= zKR{#&P}T+K6bOqlyDH1rkjGP9)jZu*LziDM#e5ERKsh%?$OErwvCrjtL=KCH1}SzS z&;-!E(0SmXT6@^SI%CX5BJv|(5k-r8Sr*nm@rf86^0>1(&g4jeKeX4eGZ(681LX}L z=mOqA^?xY5tk$-NqERoO%?5T-fwe}hS+j<^x;iqM43TJ*LM~?tz8`i%p;-pL-%SK# zfoM6;LxDZ{5PxW|V^cCp!uF3gQ08vHa)L)u+k73>-&$+e8e`I-NW{-&v*fZ_M1&*p!7#=*s!5kzRB~%y6y#t+#;|Pm=08z z^Vqj$B0SVl%j>Bq**l7Yq>+IYxYS=KZwWS5uby>D-*`S*2ptL^C zn>P;u)O8hjd-yr${JpCF5cnmq3P_df*k{FZ{A@%Aw>Kpi9r78JZGy@Z9`Gvge_`!U zy?p+!fwj?a*c&r`JWoCK)Swf77y_Zd>({SGt;KO&a2)Xc$%rfhmQ%bQl%40m09h3_ zrD8nZS;N+Jq~!jviU#l*!QTKpYvIMX$lLYS`X}m9%$qlFP)~lyd|ozg-1v!rg+lnA zccxlsqgS?H9}$ z1nt=?1n}qBuwg@S;*P`kGtXrI?%ktRWIAx0!1ciJavHAzx_rZiRE+yOYT26$l|&mD z!UT{4R;%j$06#_U7tXQ#vrct9PWV6JgQTBZBfs8xrtST!q#i)J@k(+_hlu;}}m+$aQyo!fA zYH9VH9%}UDw;Xne{wO*mX;k|ol95I5cufBT7%0R`$OfjKd`%zUUOrFfXojb=F$GJt|YG4-7JkXn$QQ_re z6_0k*@If|w%J~F?Oan*)+kqE>hsE>W^Ig~aKtn?V7oK-s#E_UL>1{%Fc1zB0!RXzfK}G_S4^8ZbH}@H zzFAxoks)W%uMj{VW97<~yz|aG%$_})`i2G)U0tIwWtH1gyR;^k^RdqGV zOlG(Pvr)Yok*@<224Y+WC?LF*iSSrw4eOGzleQiVC;_x9JSVD8qxx#o@ZtN~+S(V*s>s_Bks}@ukH_(SpX;u>u5uVF1Tb(o5nTwy<|Ya?s7?}*Yk}`j zOhcN`Vk|@q*9zSbt)4kOrYF4>{JM#f{(Fo-MV51VkpGCswy_5 z(_w*Tg_}j>4&WT1u|LO@wuToIRXp5T!`@u6;K(iIMF0t4zrtfa+;3oi269!Zs z3Sfhc3ISAbO8EKDf6jM*@Bb;zYF~6+u0(%DC=Dz+#G7h%*8{ zy*}io4o9o2Gud<+R4bWz6#}TBr&zUW6`to&TU$#c8YP|0x?VnC8;L{~ zOHm`Z1ZWxnB2bDx{Pz{^NA(GXw#nz5li&Hl2jug4fJ$awg#aoj1s-|i5klcGW5$kU z^M(z~nmt=Yqy|_3d4P(bU?^IlQ6#}TB zzp;M(`rY7|O`$nv~I%9nw5n)b6@GAsRL3v}{x^=wu z)>}-QHjS#PDq4>nbLyL#CLuBhk=v!1a}fL7pLwXhsc^rluEm%S3}n4RfowKQG#X{W zf(4butq?#3LBYTL%fIl$AO4UH>(^6NQ$swHabuy-DBx02y#tY@fQ#xj6}d-L*La?H zpsJ=Om&s%>o`*V4B@e$s02Krozxvg$_~B1~%FYiz#4&~fIAPUhRh!@TW+Z=-XO>S2V-?jaBsKe%>V!Z07*qoM6N<$f>yzf?f?J) literal 0 HcmV?d00001 diff --git a/dashboard/img/dvc.jpg b/dashboard/img/dvc.jpg new file mode 100755 index 0000000000000000000000000000000000000000..f0eb3fbe3bab9eb8d1effc9ddf317b1ee74d8b89 GIT binary patch literal 29674 zcmeHwc|4WR_xNMao-Cyj5kmItNfMGR`%YZf?q1FTPelF=4-o_WzV9$dNW}ad22?}`Au>Wf;FnBv z=qH>-bo{rpqJ$ivBjERnNNg8o0&sJXBSZ?GgtX(}!2$Rp{1dEv3qible>@d!kv4FS ziw;Onq=y62jYCOKLP(Uu$Prph&Ul)1|kv$B785XBo+Q6kpke7jA-`)3==LAATgw5

`-si=wmHj)S; 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Νxn{aO2toUFMm>pzQ=us`{v? zbEu-$iM}UY(uk7Dok!~2lGtu(iHPU-oF36HoEWv|He9k@6PjsM(+V5TZ)>hMv)~V$ zd!fVF>-z!^eQ&vpEu1|bqFz)uRl#NNqwUx_(}Q%nBvsTtos(FHs41!(;PXBrnBiuY zK>fJ3icI5)dB9j#bj-7sJHvV=O6PM*{nda@SHwdn5{8jrMqxQ^wKDe^{n$h(soGWO zMRLPz`Q!UjIqx+4!!u`|IB2rGORpJXrwnDdRJ7yo60I7p=AoxVYRmi(3tqIJ5!Q+X z6QUO-saRN6vRHmtR#q}I{F0J@0Ck`Y1(06@lI`~jkENWQOQ(29 zeq);fD%jg__KLx1U=V7h!*9^b-vC7!eka~ku*)Fdo8?sf0h;;RJzuVrnU3}P<{Ut; zYvZ9MndzA-H3fSER7hv)RqGo^-^ejmxS758p}B%utYxNa%kC?SI%X4mH)PKx?oQK5 zy63yLnA*k-`Ryy~)DcP3n-AXf&MjUDJNV?Xe?h`~nj@W4;n~+6C;QV^&#hc#y^IYs zMpa7Dsn}P4BFzbZ*|gsatQfLmLH!BqZh~FQQxe^iiyrxmUJ@r@@E!kB-dX6HH`H%V z#%)A*Z)g?wZqx^NEG=sa`*`yx$QLe@dB2zp(3p)0PH3UplH)tx8yBVdutu3#WgvlZ zK(izy>vp1c3HMhk)NJAi&e;06NBP97JbAV5=(wR4wyG~y>|VI;+7_53>CRv`9^#6X z)6PrkT#3zl9_qY;VnblF#b>wQ*xW8)*XBkY+xMPpA7K9;@~O0A+Ty-J9|bhxaIV?V znw`-IdEc|X9kjO9LQ1HOx85?#)E$HNdba((BM#o#+;$h@qYyEAMup=EoH?P#^n+*1 zn}_WDUSj2nue1zgY)%Et^hUpVS-wyr%b3px|1?*V`><2{0XAPgu7}Z8D5Yz{0J9oz zY@`+8YsU7F(EyRJXh3(MhT+UXI$EvpSYJBf>-_2>Z==Pn=COLJ!qB3oP!bOXq zYglZp{p{pyJ61rgBisV6lP|T;XjmL&g*+meA8+n>&nM*uuuFWoAGSfMba%G9FFku| zds}Yb{qo5Qemqn_AvA{NE94K*&~|^noiPD5 z`{;>PB(LwlLfA^snbnHvY0a)h>cRkd)R^X+UryTu?NF&0n`qwU@`wsKMvr0d7X6{p zTqo56_lNpAU*I-TqNfT^=A9CiP!s{3pV-CDFN=rr)>JFA3kxJWY;2F?E}}*krh_vp z+Zt{srr(|p$p9ok@)K85e;w@b}|Hi6b zKB@FFHhtAde>L6+b#Xhb(~3?Oduh(pNh`5Oz64ty`ii697cE_1?s#K`S3jrK^v#3l ztQGNw&TffxQ^mE5??G!jSNRQNWi;UAqc>9J=t5yLAE#=p!sJpVN+pGaa=-SC%?P#i z$P2$J3K{IaouA5!UCEnsEs#)A$#ty>e`QQ{&-~irM(`=1yMzna`9#855er!3itOp> zikXRqwuvJTuw@?Nn!!_Ra{=vhlUcKJurH`eRn)7?gR+Y!BD-@Z>SZ#lq;~Vf3)6Tv^iE1l_=%g0_W!q zV(j+~q#Z3}r8M

5aSbg}mtRb+Mc#UqfggHAdDTQgf?TT~(|4 zs^5=0r_`HjItW#FG{!DOc60_)q1t0~|x?Za+Wy41n*2gr9q+Xfqgtkp|%gFD9zpK7I zl{F*N_rx_quds+m<;{zLm0D}3g4QM5sdP@XaCY_0AZn`)(ehu#~X z>v?RCEDXrUCu6Q=4yPveJi4f8DlXl9AWU3MKuy3m*K?3=am@5~z~ZOvvL4Sk?U#!Z3fz2h6mRI!vl(%PN)JCDvUW~|%lF#j@)wm7A_MW^=8htE^Iz52`qt2Ol!@F<@#J57fyPR`DMUNLgh+kQ6F_!zrCZ*sHN*$W}; z*tQmAVeM1)(x+Cq0~;j}`Uy!}XjLqdr%k6gIX*S;S()bAf#&nWYnBsguTGzualIb0 z9(%3(YF+PX?0V?U=^ml3s^PE6pAC^wGnSH|K9A`v$@!`kBj*)%6KmNd=3BKc z(?zDC?A^Zfo-;kyHM74WG@p|8B76L5zFe7yT1fT90mmuFQS2+vS9vG(vLb{* zRzqEJ)Owv|k4x6-h2ij3^d&E^iS-YiTLNBsGv+)ap=o96UxQEk$Oo5Q!j{~7ofmiG zeoyf044WDo=k7=b<&%$;_)FA4e?4Oqn3r^#bcs_DAGVvv9x5(ct=#BJ5SEH$&s;rG zXvHN7{z#3tsdxKKl%ut?^YEu_RF7IoUn+G-&POy0ldoOTc^X}VV<@Fw-*jx$K)`+< z8*j;vJ-v;k{i%5eW}9z(U9-64#q;I8EslS5%Oh`f%z0Fbnf;P~Jpxu{+l9?^(rq4a z6mM;P`RR6KVtjJriA-5A{L4Q3nN}kLiu&cuUdqJ^zVT%*s<^n)QG@H4anihgt*di- zb!AF(tYa&Rs6aBxaBy+OSpLyVhj}(v#oH-&j5-Y7a>wTl$C#Xg0d2O4fvY~8UH2_q zTv0QjI6o?@ESZ*aPvgq7+SLm2Lacj^!3$<*6Lq8DEwW^WE2exJpFRZh0#U|%U(Nsh zdr;GxBQr13D!q}&A$JA|Zcq99rTl#{)_&(4qz_t{-5^+K zzBpzpvUfBoew|=M zE&sogOvLJ)J7zio5BUVtSk10&i4cxPnD!52U^|VtY4qNXWgOeiSFjRZ>aQAG?%$n^ zn!(?X8bNORzZTv)hFLFS--t_C*ubUYA@KfaXtfSbJxED_SIF@!^hDVX;Vo!KYWExs z9!i-bEbuYQy*SVtYq;3&XK7lz3Ek1ZiTHND1^j7`enOA@uOu8I%y>r ooUC!gVFp2|nP9s-Mgk9=e2kM9-cGU_RagUmOec}>Hiz%}f4;lQZ2$lO literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ad.png b/dashboard/img/flags/ad.png new file mode 100755 index 0000000000000000000000000000000000000000..c58bc93783885768bebe64cf32d46519c941317c GIT binary patch literal 449 zcmV;y0Y3hTP))g2737H`ql;xKb|J;G zMWSUGDkv0E7=%O=)gmbPJM;o>j0 zo=ZLY8Y;w|N{EP{4GE=N4+LC z+-nNBjdHk_P#e?u|ai~Y%qeZydWx=z|g;gj1MJ+QTxCtI&M+|($ r)BKTwyVVHna1pjwW`1u5{X6srbnq{Kj5O+Q00000NkvXXu0mjfO^Cbz literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ae.png b/dashboard/img/flags/ae.png new file mode 100755 index 0000000000000000000000000000000000000000..088ef8ea6df26d9a63d33f5fff97b285744f026e GIT binary patch literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<lS<=T9ySL&E7w5zSY?FKF_Gfs^CiFVm_Hud_5w`GIx&lT>O17ZZcR@ c`AQ?hqBvi3=S^uRfu=Hey85}Sb4q9e0BdnC5dZ)H literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/af.png b/dashboard/img/flags/af.png new file mode 100755 index 0000000000000000000000000000000000000000..995b351ec62da856161f47a5aab6ba4ab8dbccbd GIT binary patch literal 342 zcmV-c0jd6pP)6~>q90$=P{e9}XgBBKuoG8~BIIvOT@YjXC530@a^-Ea1!9f^_I7tRTkqBI&$ z`fA*oUwby#;)=ijm4JZLfoAvSRi6par$*vqV%YD@cz5~ids8Rg?eDoWd*VJ<>Sh^D o&Et-CC!HOSsHu&XAtT9X005aka@_@&e*gdg07*qoM6N<$f?*t*nE(I) literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ag.png b/dashboard/img/flags/ag.png new file mode 100755 index 0000000000000000000000000000000000000000..5f8b4f68b1ba3729a2cbc5019817809402e1e1b8 GIT binary patch literal 486 zcmV@P)fAx00II42mt{IZom!<0TB)X9T)-~7y}{$1|njtCMqo{A_OWU1T7^5E+qspGc86s z21hyuM>_^cI|fKQ2TVW*O+N=t1`bY5ie^*^W>pDkR|#)pCU0aVeP|1T3mAblVviar zmVqFqi4LZU53CL#tRX5`r)kMbX$B_TC!`ihAsd70dsBlQ6jw5Ihf=xmgdJ)!F}z%OIDvbThn*Y`K=zV>14UR+;0_%U?OI{X=DOV9AK$cwOGk*Baf cL)YE+2di#O&P3aI>i_@%07*qoM6N<$f?~AEWdHyG literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/al.png b/dashboard/img/flags/al.png new file mode 100755 index 0000000000000000000000000000000000000000..2e516ec39f2d272c5ddfd06c47e53e2e2a593a82 GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZC!3-owUoWlaX{Bh^K@|x(Kx^LqB&Eufq=_JRgV-GG0Sd^ zclEa7Q@Gc?$&CNbzD~b+{)57}>yv`0t%<#%JG|?$P1;`LAnA{SV={%q!AE9)HQWFbC*D22WQ%mvv4FO#mim BZG8X$ literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/am.png b/dashboard/img/flags/am.png new file mode 100755 index 0000000000000000000000000000000000000000..d529a99e86fb2ff9ec2dd53c559839f77b8904d0 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<)#zwDO)T0k|UuNtU4tC0mFAmggB z%GZP9x7-w|WAu3u)eq|>fe6R|a-USnepn+(9iwk~Dc-PF2BLF9AnrAD7{+wuhAP1alsKs(-y^xqN69eU-F`xUFVdQ&MBb@03s$d@&Et; literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/at.png b/dashboard/img/flags/at.png new file mode 100755 index 0000000000000000000000000000000000000000..993b903af132d9bea67a3992f3a286ad728d026d GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QaYY4jv*e$llLedKjk2Oz#{9* z27_OjekN;s{{8>|f5pYcZu~xvq|d%s?Dm+Ip=h0={K2B<=YaYcJYD@<);T3K0RW{2 BBKH6Q literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/au.png b/dashboard/img/flags/au.png new file mode 100755 index 0000000000000000000000000000000000000000..ef20b66dc8e216dc17c1107471f6a751c7cb763d GIT binary patch literal 501 zcmV|G>ci!ovT@8@$$Wi?iPS25A&#`jZFTVL0pk!MEKY%)Cq*xWKwy77v_rcm8># ztq`l}8xJ9poz1dwC~g2EwHh=+1&@3Pu_fBPyYlpz)iDv1?{RIPNIna!RALA{e?6)p zhapn{sl_6NQ1K~w9YUt3u-B8Ju2u_rs#T~g3pxtJ@pxE(h7r*S8k!!F*Ho6QQejY; ro@YXlUM|y6mGk*B6p3~_fq(M{=}IIyShGrS00000NkvXXu0mjf7bfPE literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/az.png b/dashboard/img/flags/az.png new file mode 100755 index 0000000000000000000000000000000000000000..3fb7ccb30d9f85428f1144ccc6573fbb3bd8e0af GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<FKUskzAG(gtF*%a=({Rb3r4E**1@DKe9j1nP2UI$K}tk zE#2Ml_t6*s|Nlo~Q_TPX0BT7@K~#9!h0jR}fG`jR(KydjqW8b50l`9C)ZaBc8Y(>7 z_t4hy{A~;06=gLaQxg^Dt=AgzPlsbS_B|5#-;mOfr9g@dQe==KgA^I0$RI@qDKbcr rLW+P=1hgWc6#=aXXhlFNTHf;p$FCF7ixnrG00000NkvXXu0mjfVo6>d literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/bb.png b/dashboard/img/flags/bb.png new file mode 100755 index 0000000000000000000000000000000000000000..5e87a9ea9d5d4e6fdad72430454ea6bf7fd6c938 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QoB4|978;gCnp4~KHmIKKKyX= zhu5hRrd0+~wPlSq0)b~=Y`2~&zb3pz;z`OORu=)Y009lxi5LI(t(=)r^yO){-JJy~ z>&`N|IIvCN7Gd!Ulu~$YwIt_@Wn<5;ltcw4qlTCT3ZjRkURae{Zi{aZRdi#PbkGZ! zV0BR<<9u<|JeeaI3d|>#Msa2Oh?bc=yEGx4SqUUC>*Dok+B%sNI=(-G2o&vVb65Vl l`OK3fLj@^aXSW#_8SIvY3QC?eegX6agQu&X%Q~loCIDFYTBHB~ literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/bd.png b/dashboard/img/flags/bd.png new file mode 100755 index 0000000000000000000000000000000000000000..c55d3d7ac086527ff9e3175e11d88dd8bc597551 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^ia;#F!2~3G3=gXTseVrv#}JR>$q6SuEw+^MEPHX} zw+c(em)*Net9G!rRdp`^5p-7saR%?UWhPEcBJsO)18(fp#&+1Te{y^tMA?u<)HXOGYT~2k{J-Kao{$Q_!b(6CV z`*ztc9NJY!ENw68&HbccdrHV^YUkoo5g{gqpeIJjM;(>V0G-C*>FVdQ&MBb@04b49 A{Qv*} literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/be.png b/dashboard/img/flags/be.png new file mode 100755 index 0000000000000000000000000000000000000000..449446af9a7ba2ef7e838043bab0e623bdbe626c GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6I!3HGL_ATQBQpTPxjv*e$lM@mWe)MyTs~OAu zuJ3zopr E07|hW8~^|S literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/bf.png b/dashboard/img/flags/bf.png new file mode 100755 index 0000000000000000000000000000000000000000..f3a728811c98241db5fe84b67641b314354f3cd1 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QZ=3~jv*e$lPlJ*^;SM&koCpG zI4YjKB_r|6^pdOVU#=*=*fTE zo5HMN&7E}b*6WzF^ln=U?C g5V+XA_gFW>HIEq=7am-`59kgCPgg&ebxsLQ04&EyPXGV_ literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/bg.png b/dashboard/img/flags/bg.png new file mode 100755 index 0000000000000000000000000000000000000000..ec03d4f8dba275efbac13197cb20318523d9c42f GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^ia;#F!3HFmgF^~|l!K>>V~EG`{q3g0 Tr&^joW-)lW`njxgN@xNAH|isi literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/bh.png b/dashboard/img/flags/bh.png new file mode 100755 index 0000000000000000000000000000000000000000..61bad9b4129df9096c6ae9d1442806ceab47ea7f GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^ia;#F!VDxo)_OVtDd_;85Z7~pYUhO1FKgP|2~K*} zKJoqLT|b{Z`}h0L|NsBr3KgpWmC1U#IEF}EPJY4AB*Mz3!XWfg!&F71X=U~mnK`={ YxP~0002PP)t-s9<@3m zwml=aKPI?AH@#3gzEfPuaAM1Kgx8dd*_xoMgrTQ^qNstQtAnGegrlp3sI-r%w2rLE zpsvZFugasa%A>UAy}Rke#~CNe6(-9RCCd~h%n~Ke5hl(OC(aWn(IPd}FhbWpPuN3L z*+^K~^WNU{;^A$2;&g!G@#5n3=Hz{e>X@PG`0eYUsO+Mu?yt7-`t$V4&h-5D_0QDz z{P_6&`uY9)`|R%f{rmg={QU6o{`&j={QUm^{{Q{`|Ns9*Qar%`007QOL_t(2&xMl5 z4#GeTL`@C7cUVF%fzVs1@BhDw0|HSN?Ynv;duA+f8re#ZJvxE(flXH{=x%_%_#$h# z&00V6*6arBh)+aF;nWM=FIJzKgjrncN;lL-Um>W{{R30 M07*qoM6N<$f@@s!T>t<8 literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/bj.png b/dashboard/img/flags/bj.png new file mode 100755 index 0000000000000000000000000000000000000000..220c8e786c755f2aa8e9227b3fe43991d585f8d9 GIT binary patch literal 100 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&Qrey_jv*e$lM^!dRXYB~h$u4~ y_DI=geOYla#Qaz50zJu$D=z{UyZ5SbGBUKTdh>anTU{Ga8-u5-pUXO@geCy1upL_f literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/bn.png b/dashboard/img/flags/bn.png new file mode 100755 index 0000000000000000000000000000000000000000..944a7be1967f862030e0e287d24b06da626425a0 GIT binary patch literal 847 zcmV-V1F-ywP)6sNmnf-*^9fS@Y{{ z&CloF-yh0j>U?`q?A=xBTZ{&N|NVLS&*w$I-W2_K=J@@A6j0~!xndhK#ok<|t;J}; z@$K)AlPgOCXSis+yJ+4+IM`}s{NG>2Ry=dshI9kH9O!Qda$PX z#EP{@iS*f@uUmh=Z~6HmT!b8nqKv(ztq zp{xHY_n-~F5%ZmW7J7%=zjh5M1ypcm%Qo~x`s>c0FROpOt@`=g>-$4FqAW%RPOLmx z{32og%9Gs8)=#ed^7+;Bq|7zBB|x)p?AdprbKc>`{dwunr-i@X z6fn%_;!BC*G|*vXWx;2$03-8sUKuYozHUJY6=pVOW`;~5kuoLOsr~VrdTS1Q2c2r` z+oEOp_TB>`lL!Oc@9%Gl9b7Ne+rS$c$f2gh!pMkjcRr^`IJ-cfrdT?UFpyisC7R7C z0%YX!iZsiM=F5ps)>fTAEBorD?ZhNf23(Q<;ecAY; zCHZbSDkgIX<#UPTaEhey30*f;3Kr)DN&yu>oXE$+WN$56l4rAWNyYs;$4Rpo4Lvw5 z+G8(LV$JVn!QL+}dBa5cy0P*NbER9hO0@!FYz&N+tXzI{xbl82pTFPkZ!*HPJ}FSo=%W@DyUcNTwg6sMjR3kwTz_LE)8-`XK|Z=V>Z_`4fo z2i6I7*YQRKaHuFUGcr=!Vj|ItOJZA>2sW1T_`0!6iZjvAVl;H`r0A;I0%h6U3 literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/br.png b/dashboard/img/flags/br.png new file mode 100755 index 0000000000000000000000000000000000000000..b54f27df8decc7a8424c0895e8050a5640858622 GIT binary patch literal 436 zcmV;l0ZaagP)rUoRbX|B&gojd#3e;j52l0Y^U%$1yOxni>j&_rYe6ak8pX)e=b z`;6tPuMRN3-^1FSX%%c0VJx2sB!O(82v8g-3sggzxw^AW4)5RtI_>64K_~4*4Y7P= z1QY>^17(3~fGUYHmvf43%Np4)hZup{z8+)@wFw7rh;dpw5$Kq}KCoS4CXYF$SK#T?kcd%>EnHBDY z!vRmc0nN46ss*h%030000UjtV5aJY$gi*dc<4Wlavx zK~ElUz6*Dg3?7IG8m#x?yKQWo^Iqqb5?fM3tKk2Qy=wdAECK}$1vn)nB_BDd$j{xj zaQjh#1BcJv30n8(=d{Bd8!8f-su+Z>JESac)O285a6+cRD~Vy%(Z);;o`B2j47C&f Vmy}POa0=*N22WQ%mvv4FO#r8%QWyXL literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/bt.png b/dashboard/img/flags/bt.png new file mode 100755 index 0000000000000000000000000000000000000000..dfd0d6af28c4a04fbcfb79f20d679d139bec4569 GIT binary patch literal 685 zcmV;e0#f~nP)$1#v8yMz8L6pVyx^v8#IBin-gitXnX5`rK))$CqaIb*Lyxoiw2*J3D*n(xp3g>{z{U`syW%w}yJ$wncF=$*w*+*KOL=$^HHP zC3%T!md#!;si!U`q9`F%0a7k|N1@2;)p z4qu0f;r@-qh5e<45JRt8sgYy!gOx@z`>GZ!STH#yZf<$eL1$y2hE48PJy~fDdD)8+ zBKFjjOv_HYO}x=JmRUSoqx)>N_T-A#>f*u)Els^8h3k9TH&hft^Z?xpv}Q`U|Dh!d z&TLwLBEpkcqnEYWch%>0v^JMzWv-42m|k76FeYS|qv1_QJ!GACY&92WCGT3c$Ok}%LqaNXoF~UY4on*eFIr|*ggYc+d zUthVtzq=>E^NzJTnMT9QSu}Jg*mY%p&pBs9a$Jp8&SIi_HtM9B3o;s)V<|@fN28z& TsNVK<00000NkvXXu0mjf9eGZd literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/bw.png b/dashboard/img/flags/bw.png new file mode 100755 index 0000000000000000000000000000000000000000..0a74b72f94318af68bc14f823e1528b7b1db999d GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QU;zbjv*e$lQm*XXS;PIUU?C? z_@ngR*RP_b6x#}BF}5w_%#ctp={a^$$2jYYgCs9Q{x^Yzx)Hn7fO;7`UHx3vIVCg! E0F4|USpWb4 literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/by.png b/dashboard/img/flags/by.png new file mode 100755 index 0000000000000000000000000000000000000000..1c9f5462a6112674d8be810828cefacbb95412b4 GIT binary patch literal 307 zcmV-30nGl1P)G*Tn+9C}PVPnPSh)22r<*M3!-$&FBH|rinyR5cm68 zC+Pv-j)Oz1h2wCDbTXj_ye^kWRTcYM4Y4HA1HNnad*ULst@C_OUoI(MvAi%3s z=mBrK4zFB>TPkHmvx8BmgP_qsG9J?dJ}e8nY88IHo^A6Vn0LhgCCPneMys}0l-Qa| zafe#8M6f9%Qomo_U_cDWhXrClK5h{M@`05ckc<4(fM2RH(|%g9Chq_M002ovPDHLk FV1mYifxQ3# literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/bz.png b/dashboard/img/flags/bz.png new file mode 100755 index 0000000000000000000000000000000000000000..ef37f6da9cd2219f5a44739836e6b9ace1622e8f GIT binary patch literal 751 zcmV+(R>N zKf2PertI^#Pe29a7!7pP*+*yQZJY4^!~4uBu~v<0u7$>KC5FcN(%G{T-+Xvex-{$W zpFjBAjw^g`KYKZIXW#$-|NAQot=0JRs+07BWW76#gF+RpwH52iieG+u*|M(c$?H!z z!yT(AFrwC;T7Kl}zLE&PZcmk|3EFYH}M#)#km6CY*qa1)KGwUuXX9N&3-4Nx%& zMg!B?!u`|Ve}4}QkcoX=JsnNO@gWnMTKj84>ht}2I-9%Nn}JeqzrC$rR|Zr}g3-YA zJAGIGgZB@B`q!^tzjW!+_NuDhwuTimBD!*v7cX866a-4$dw1{P$<08;qy@}R3Yj>XCwB_=; zjP{85N>{g1U*oJClZ?E8nuMS%`yUAcG!m_|uUe2^^j?BlbYhgR-8x3{FGr@f+*8a1n)^0zt z_W07}`)A*Hb%V@|4tM*5m+wy9JHGtjysgJq^>1r`aP#t}OY4EbMN#pDT&VV}II;T- hiG?Z+s{-0pU;xn7$n^n-vZ4S0002ovPDHLkV1ic^gB}0? literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ca.png b/dashboard/img/flags/ca.png new file mode 100755 index 0000000000000000000000000000000000000000..524f815786ea0f9e10accfd936a21a66223a2f7a GIT binary patch literal 302 zcmV+}0nz@6P)NklG*;F*L4sI?+``5qcoL6bCs+h+Y%Hujg9nICo}`G7!~}F*8D##< z!_O|WtcDn~vEZ5i@&e<&Cv+Gm39-5H{Vw}GL9(Io^(sN|1W1ru8DB0_2C3fob{hvO zj;9QgA}s~RT_?w*M3L-v5{8ndQwB+q762IVsw;NgSJCr$f0STrZ?*3ue+Jm9#!Vxp z`HwLe@Tw~=3bCwt7ywMcRJW}-&Nq@4fU@Jn#M<^dMv<1vb36=kIETt+h3-vp24>KCrApv8Yb7 zo>H`%RJ597w~l4FjcmDwa=U_ayMckec7(okjKFP_!e^z$TCK-Zwa87k$xFe@L&M8L z#mhj>5FySHA69Dmz#r_P8tu3o?yej5)*1KK7zsc1>;M1&!AV3xRCwBTk69amKo~}C zkqAkWM3!l>w5YV2|Npb(%l2gETz&JNn>h_S+`4e#m^J?;tL2`7;M|Ssva6<76QNR1 z&zT>|C{bV`1iG`r7#{~;*_Qm!2I*wa_a5W%M>fTCd;)n%4njHfZqj!7w!$H~ zfIP)#5q>=EH(Jw5@_Ocgv_oHN6GA~+L8LIm&=T{Ss$EJbGQ3=4VIqaP#hQbO9IErx tMh^ujp>^n?05!DY6H4Y4N&`ZvJOE-=BCIOaGR^=1002ovPDHLkV1hmf(yjmi literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/cf.png b/dashboard/img/flags/cf.png new file mode 100755 index 0000000000000000000000000000000000000000..e203020e75b7b3a4f9cdeda40a81af17e339f4df GIT binary patch literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&Qazq7jv*e$lM@Uwnw0ZCODQ;s zH7@XJec{cdR>1NkY1P4|36_eQ4;@@m7fbR=cb~G|H$R0@NrCyq(q*eHeO~M33b89G zG@oKr%8EXhAIa+Cz*gGx&!45@qMh)~429_uv5VamdKI;Vst0D4%h|8zrEWm8XkiNX4z#la9O%1`G!dJWS;BV-h>Ce_5`)$F2C{$FHl(&;S4YM^+3S aY-3Q%SDUHk`D8oL6b4UMKbLh*2~7Yj<132* literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ch.png b/dashboard/img/flags/ch.png new file mode 100755 index 0000000000000000000000000000000000000000..bd447d2bc37ffddeb296bd91684eed6da78ca644 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjyBTpB{5R22vI~0$5nI%co%(Bmo zVs%%^{@2gawl*!{z#nxch4%XsuGwaL4ey%p5uQ*FimdKI;Vst E0D;UNIRF3v literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ci.png b/dashboard/img/flags/ci.png new file mode 100755 index 0000000000000000000000000000000000000000..14fceff96de7ec16475e3231d8c8e59c9730e0ab GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QW~Bvjv*e$lmEn>Z(uJl`Ey+P tw1vIk{5LBuE_Umevd#JeV(_~zW-OKUe>+){np41|Eg!v)1if zv+UFJCJ6yX$q>E??1fzZpP$ZqcA8l-#O&9e63u=TH~M87_wSQT z|L-yY5s>jRog1#=LpS@|8cvE_{VbH{|2>e=Kn9hg@k1Z`=UHr@XR-kq$SQ!r{l0~R zBBLKW@}V)Hky*=0X@Fo!eAS%qn>c8buIo6-3kt$U(=a!V8a-b*0PcF6q#xm0 Qp8x;=07*qoM6N<$g1<;u>;M1& literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/co.png b/dashboard/img/flags/co.png new file mode 100755 index 0000000000000000000000000000000000000000..477177ba930419633cb49a8c2b7205cba81b9f78 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&Qd*uajv*e$lm8S4_B5I`6kd4| xxY)f{?PLa9_sPX>{I!eEbFS)@vVGFa#&D%yhS|d7r3_FPgQu&X%Q~loCII209eMx& literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/cr.png b/dashboard/img/flags/cr.png new file mode 100755 index 0000000000000000000000000000000000000000..62cc81a7023fe7aab22f2ecd3961040a9030e0cf GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^ia;#F!2~3G3=gXTDQiy`#}JR>$tf4sr7ti{kkKn! zbE9tNv$8+`|JO&{_?Y)rY}V~Uzku8;eSy|(DYs{=EMPa?Ibq->%-g;S`E#{ZUbaB!zf3 z%^oVJ>Q~bi0PX$v=kG;%Q>;;bTvR_(K8Bs@7Joi;;z?Eems98OMrF}2sDbF3i3b{k yeu-q^By{Zo)(rGUM0000HY6lAV_y6y2TG{dM_qQJx7yZ1t>i@q#G_d2}pPyG(e_j#z>-Ki4h1J&`1>g2m z{y04yh`ww}dDp`EalZZE4-cskAAf%SethiT_jm6)1l~3cN{=Kw0YeNkl#& zTKgWa#kBN2Q5Ms}_e5JvZQqk@F|~Y8mc@#WW&fwDSpUB+B1JYP+2UZ+*#E~Rlqj;4 zB#WuxOOh?7mM@96nA*N1%3@mh60gOy^d(M$q5pyiyPPuw14Y( xsQ32b3R&d~edlFO+KP)Lt${Qv*|&)@%h?|v!X{(|~OL%`>sf0teSn7x?>Mnk~kkH7klzNLxL z5ODVC_nO_WXks)F{QCQE`>oFfTVGJ$Xb5=!{m=ZfAF^p-Gz8px_p9^J8;XryzyAN9 zKbWTf`~Uy=qi+>EUy^0?zkmNHPW-Q;@;^BE|K-bAo&V$azYW(u+Bh8vX0RmZ4CicfUAfw#%EkhC&bkPWx>o Tyu&>p00000NkvXXu0mjf*m=Zp literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/dk.png b/dashboard/img/flags/dk.png new file mode 100755 index 0000000000000000000000000000000000000000..65d6b3551f41329912d32a563a299d16efab8180 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)i!VDx6^9*`{lxToYi0cI&<2#;dkMrAJOP)`_la80=W##A zV?0$-7bpmnBFQKQU~CbO?mMYeC~H4sF?+>gZmz6oCuDJo#rO$}X_mUy6DL)YjAGC* z;UFGe<}~b<(gxZJM14|KEc#+sI8A`;Iik8(IE_d$ih)g%pLleU-Ds|eF2v%A5^22F z^4{92Kz5gu)l8j>bPYQV8pP#O!^_0czE}LCw3)6VkXx>zecwNiB%>IB zxsZ4S%sDUFET&28ZV*wQC@bNm!CfvP+byFD6a-36YPGlD#`#ANF@EX&v02!?$MlB{50RYJ?LCXdk9T@-s002ovPDHLkV1mI~uF?Pi literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/do.png b/dashboard/img/flags/do.png new file mode 100755 index 0000000000000000000000000000000000000000..12e017e02092a58e1e34535468f5123edf6a4c4f GIT binary patch literal 258 zcmV+d0sa1oP)ThOv?(At|Eg&+k?qxUp`0?ZS zpWlD}{`vj;cS6-nB2xzgk*N)sE|J{@OtnO&?@20DbVF@Mq(YxBvhE07*qo IM6N<$f=zC4T>t<8 literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/dz.png b/dashboard/img/flags/dz.png new file mode 100755 index 0000000000000000000000000000000000000000..4670a0eb85be9d801fe0f327edf323b2ecb8005b GIT binary patch literal 229 zcmV^P)jA z(xsmpHvE`3k5Z$pQ?!8QK4oQcNYaD{$lo__{(buN@B4R(j9#TC05p2BmJo#dYxCy6 zA3l8c^`%09+~i>e8XXa$4B`HmJ^L*)^IH~{?-M5cegB?TM*pMGXc`6x4Wp5UiI28f fX0&)30!9M>h@M8C+%`;800000NkvXXu0mjfbyi<) literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ec.png b/dashboard/img/flags/ec.png new file mode 100755 index 0000000000000000000000000000000000000000..9289152375de353b0091adcb42b1b331cca6ea58 GIT binary patch literal 397 zcmV;80doF{P)U2R5Cru4iiQHImCrds-0Ui|vi3ERs8e078yx7zIl3kUClPX1{ z14N3`qT{1n-K_pjIL zwffL7s6U>RsPg78wz6uf%gReJEJ)U`DNB&m6|3@M|9C>2h86=udrdY+w7y?sYx&gq ziyf;rMHcsHYq$ahfl{Pd%wRE@By^&Y)k&qOyg9R?sW2urE+ocZ-yrrx6Dz6akZy4c ztCns>U1Ew=u$QHaS!H~xv_sYL7TR09GLWr1Pt{UW#z0NUKttJHS9E1P@9H2n+FC4W zQxd3Zzs{C(o(+$$on*AH>{5H~)wW#D>TWW&MKrXS%c4olwid)TZj%*tl$P*iFzp3$ rg>341EE-6&_?)2HfS^%}hrh)DI_x=kOL@Vf00000NkvXXu0mjf5TUl* literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ee.png b/dashboard/img/flags/ee.png new file mode 100755 index 0000000000000000000000000000000000000000..1067640131ae259f460dbf8e6e2cdd614e027706 GIT binary patch literal 100 zcmeAS@N?(olHy`uVBq!ia0vp^@<1%Y!2~3KaTl%yQrey_jv*e$lQ(GDI$0kv$of@a z5_@)gV_8R{NDoucL9QsKw*OmL7BAy>zsxw}>J;XO|3$U|wJ~_Q`njxgN@xNA`R^8`HD$Vu#+E;vtY!Z-NDc)H&|?MJi4H$E2v0ST+XnMG zAg2Mmw(4QJFF|$=>}vd?eNo*00nfqgEJwRwUJvY$7q>sa!3^wJ1@rqHHuzo_H}x<+ z7lcj|bguBqU~UU|JJDfX*G-v9g|sD-{nz*)juJS5mGuR}sZ0BhHBJfu00000fhdEP)92WBXrcUV8o0SCqIOu;?i%>!L~~ZQczII-mRsdpo4$G&7sgjuqcR>6rqby z6htF-h$Vs2}eE~0AG@58QC;4~WWT^IjVQt%HR z5(#|PY7^zGWD+CCfzxavtRR@Cprn_{!1p|i*ITKC=Ufi2hJlW%hUZ{7j7RV(ofeb& zA^1`#z%G}=Njvp=3=t~|>}oYK;xE&LKN!HZtm#JF(KNX2HqB3RwWfX)&$D;>wcd(@ ziGnvX3_F_)>^NS26}*^dSl$&62nrf240HRUNrdr8x3*=2l;GI{!%|jUP-K-sIS?C~ Zd;=R&EwL1|YVH(Wd}|-wQN>E_f|u_Ghie zk7gZW5(JTsK(Y9vtI_Ypny)y_U$L3}p0D|%OZ!K=&T9csAb$=q_`5@$NQ;Sa1d7F< zd<=i~YD3r`?2LX*(fXRM2Mr8k<3H;)-s>5YVK-JspjZsF=HEW`SM27%r1VbB1nBAS zRl0A4K|cPPr}yuW`a2yHN-VxA>a)tMv>|+cSmjAni}UpUtkrxYYWm*L_}^~zZ$-MF zf(+iufYQ|W8XcgIKUf=4Vwq#-T{uFq_^p!3pEa7lW@!QA^`oN^(7XTktG|&j{TyZh zbjQ~mJqj(uX)&<4_~dK&Z>ReAdL3XH0?I6C!;3IrVFJwARJ4pJi)mpQQ5Ms}GMpCE+A1i1< Z0sw5_?>WcKS|I=c002ovPDHLkV1h!%1|9$a literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/es.png b/dashboard/img/flags/es.png new file mode 100755 index 0000000000000000000000000000000000000000..a8ad334cab5a305d386cd969092b24cce487437d GIT binary patch literal 287 zcmV+)0pR|LP)zmH za=b#Gy`-DAkb|nIo3Z7-S*z;&9nEsFp)xU{ lvQ$ggRLC-;#nW&w8USm>^83o z+CH=5Ku!IjG9bfj<3^=52Y^yEv{-WWaiISS_c!`)p98esdefSK?Q@FvH;Ak}1C*kz z#jMM&YpvVWdZY+wD-g9EDFkwXg0!_57@l%#4l^#j1&rP7eXW%TYhrgz1ag6bv<+%V z;*wr{G-q#{{F*~R1dM5*U&%>auS%3iLN(o$?8~kKbCLL}6F>xHa4fqD6eQIghDWv< zq@wkqf$lAf#b=!aA|M0ECBqPMET#$?wRrej3;@Ua`%=!QuNVLT002ovPDHLkV1jU3 Bmv;aF literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/fi.png b/dashboard/img/flags/fi.png new file mode 100755 index 0000000000000000000000000000000000000000..1ad17975ae03acea7434e52d880e995e779154ac GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^ia;#F!VDxo)_OVtDbWC*5LX7%25!4n36CE2kjd`3 zi^Ho{|NsA=<2}OzpaKm~7sn8Z%gG+hO(|?`8%#7j5*94);1;kjGFY+0p^=$+E5ovr c%&&qOG~Y)4%&s$71JuLd>FVdQ&MBb@0D9IYxBvhE literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/fj.png b/dashboard/img/flags/fj.png new file mode 100755 index 0000000000000000000000000000000000000000..6bf737146826a3060a626368e2a578eba6e5a815 GIT binary patch literal 617 zcmV-v0+#)WP)9)D%t8$6krdl_3b#57I-?7p> zpyo~>sDU8~3{Oy~?mZ3+VQ5hQ{tFCwVE6-L0T>tfgZk{eWqYup=tNEB!R9P17DEj^bQ)x3)g+*mxUv&e<*{?Xya%x!)428LH%~f0tNX^X zd%?N)gL4-=*lM#U<@lAuSS$vX1HjS%WDv|s`~?Wq`Xgt7B@d=?XU`mbcV^$ctB3FT zX9Cg3cdu_A-}vd$O)M5uk|i+F0abU*Gzb)=xy5^W`nF7(vbksSCCji|RuS)(ZF;kG z!qw(Jnp-@#f5!F`dyX7AavvPW|37a0|Dtwn?;@I84D$5cHRsNpy&jYewD|MY`R7(I z#a?nz-C`i>nzLztL@^L`&Bk41(!ye*%IZ;zhrPuBBZ439I+)+600000NkvXXu0mjf DO{gO8 literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/fm.png b/dashboard/img/flags/fm.png new file mode 100755 index 0000000000000000000000000000000000000000..32d5b832589054c7d96becf39a14ee4afd3710b7 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^YCtT)!VDyZ7Y11aDbWC*5ZBU8cWbxZpK|!=lp{}9 zU3m5N*Wd5I{<{AUoB&i{?djqeB5^r6K|xd_k!xd%RRY(tL@q-qZi5NzG7eIbkrP^H x9O7wEDPG0IXqZ#w$q;dOj$4X^#>5<1hS(>pQ`4U=djvFw!PC{xWt~$(69CtdGIam| literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/fr.png b/dashboard/img/flags/fr.png new file mode 100755 index 0000000000000000000000000000000000000000..a7684766369759520c38f5d1ef2c77fcf716f5b7 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QtF;Ajv*e$lM@1F^t1mx&b=?g r@{uFYVz+)N+pI4uE`k{%y=)Bc@BVdLJ;xyjsD;7P)z4*}Q$iB}YL^_V literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ga.png b/dashboard/img/flags/ga.png new file mode 100755 index 0000000000000000000000000000000000000000..32c68bf6a4d807341b575fd4a7fcb31dad0bd0b3 GIT binary patch literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^(m*W2!3HF2n%o+Il#Qp0V~EG`F RDimlAgQu&X%Q~loCIEuPDtQ0^ literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/gb.png b/dashboard/img/flags/gb.png new file mode 100755 index 0000000000000000000000000000000000000000..3b6668e203c032348765d9cd761223bc2a7ae4aa GIT binary patch literal 434 zcmV;j0ZsmiP)}5 zFoX{=g%C1@Sa7Ohc&}o4uYHfbevrL?k-mVEzMibkpRCTGt^Y=Zlu-jF;!S#ORNi=)lS8z{&8|-1EZ7 z^TWyW#>@1_%=O{s_t@O`+1>f>@%iuZ`}Owx`1$|;|0#A0uK)l5;7LS5RCwCO)5#Ko zFc3x2W>5h^4GxGCf&(b}{{QnNX-OHhEO*}ZStOkf#RuRTTGZx3G{L1dYp|M$#hI2u z(a8P`ZBH?Pf?QJ*GTSk$heVE|M|l9-fXwD6$s8h*bf1VRQw?8O#LT3l9>bpBWiHnr z7g@TlfIGu-lWs4-ZPI@NLN|tQk@&Gc!k;gr$1}MBmul20@>I^mOECth8EOSXEJ1>~MuUXX4gQCQ2#ms;vCB+8c czCx(z1B=8y!*9YyNB{r;07*qoM6N<$fxP~0002PP)t-s0D4{l zdtL*3T?Kqx27Fx#eOnWOSr>v>Aca*hi%>C(P&kH7JC039lSxvRMpTzZV4Om1pFfT@ zH<_<8n@2REC^NLUE4D-|w?!C0R-Nzo_o*&_1ALD5s=XxFK z$Q$a09P5i5?wA_xnH%uT8u6kU_`ewX$rt*|7W>W?{LvQw=vM&%0081iL_t(|+KrOu z4uUWgMz4x{;Q+w_ihx>h?}dH;r?Ml^MosYi_-<}{l0t7`8iRaRmMndgtS5$dKe?m? zuYja`x_go_=^2#Kh-QD#7md-IFheWr_&0i4;|4&@#^2aAfY>0^osWH|4j>Flrn$g^ zMKc4k!O5x{jGvb$#v3&YARGBkk@re#JKN8;ErqwjDBxoWINft}?gD%ox!bS-oc1o- zwZ9FhRF(LYwZ9gpq9?LfIWc|9WM$0KwB+e?yz9Xw1w9Z+_i&Y7P)vwu g&R26`ttAdm;e9&2bZj}0je?gba4!kxSXuP-ps^S#?icR&z?0Rr}+KZKYP0@sBteh wxZiP7=8S$=z_C;A;r)4Xt7@k-F_zggTvZPf{66_~G|&hJPgg&ebxsLQ0HY~42><{9 literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/gh.png b/dashboard/img/flags/gh.png new file mode 100755 index 0000000000000000000000000000000000000000..c2bf9d0bb44d771dc11d81a32d29d57b9a1627b3 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!3-qVmezg)QZ@lTA+7~8bg$~Ebk zQ5z`CkZsS!!N|kKXr{~RY0DPo&XF0;nG?ymbEd#KLAA^4g`Vycd2>Yc&qXoL;~N$M z)w7la`2`<4cKrB>qCblFfC4_AE{-7;x6bxj3LQ}3VV2E1A-o literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/gm.png b/dashboard/img/flags/gm.png new file mode 100755 index 0000000000000000000000000000000000000000..b929a80dec10594cda47d02a8e70b2885cc64815 GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!3HE}t?oSnq&z%b978;gC)=p6_%=V0f#LCr zql?8ZpLwKyHTO8%kw<^q<>Mp;x+_zv{`E)M?9u)Aw+aBI89ZJ6T-G@yGywn?lNk>H literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/gq.png b/dashboard/img/flags/gq.png new file mode 100755 index 0000000000000000000000000000000000000000..db9415a0220f20d0610a850ebd40d97d824e5c87 GIT binary patch literal 325 zcmV-L0lNN)P)AY7~RBAPzRwPSe*R?;?${vTL|K!R6>-3V3$sMkl+x4+)*f`patg;iXS3E z7Ke&LGKBC5SzeGXC*J$Of4SucFDJHcPSC#>>kpW&g-!6LX|P^*ZlL2OPg}Sc) z2AkqK(KtBU$L{$Kq?Vvrg!4Q{mSu<^CFGrtG)>z#>!%Ka0C5~+>|Nr*IYksj2*c1A zHvU{yRY55Q-}l>+Btco0{|66`#zoQVu57gtb`D*2<4Pqq=v`00000NkvXXu0mjf3(%2o literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/gr.png b/dashboard/img/flags/gr.png new file mode 100755 index 0000000000000000000000000000000000000000..094441156c850f5b319b548b8ac5e03653426841 GIT binary patch literal 266 zcmV+l0rmcgP)vwm%>+AJgT&@5BfFK}{SXiuLVzF>=xO8;7kdVlzsMN2o*Tlr)$jIc+&*$0M z?BL+=;oPT4!{Z@tSMV_}hx3+_?D8O%YfH-KdbqR1lIPSlxb8c%$2hAA?gH-=0pv Q1poj507*qoM6N<$f+PZf@Bjb+ literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/gt.png b/dashboard/img/flags/gt.png new file mode 100755 index 0000000000000000000000000000000000000000..76c5db709c38745a54eff33e5ae0564618d04e67 GIT binary patch literal 279 zcmV+y0qFjTP)DTB2}mjh-M{3K}B9h*AhD11Ezhih@KVjiNtbA~aNJ-Y@hC zoGu9Wz~LOe;qaSIqB6fAN=qk4LBy)B?@H9W48Q>K1bChoPU3yxznyS*U6&ra|`6Si%EeCE(LU2wBxkkJF!h6+Lm_G=zLbBxw58)WnV4}Al! zkjG*rVy910s-}XB9$?sRfXk(Eduo`OJc{Kcy3HCrz(nL>8v-nKiT##`V+_#mG}$9! d00xLB;1ANSd|#IZjY#s1R+GmJWL)PbW8B-4S11ylyN1AW=}{+}6a4g@*qgn;V*Bf!w( zW@P$5l}855KPjj>I2^d0U+KRA3+I1k2FCvk3=Ci_!Nl^vmq%)FMX?4mJJ@kdK)hc- z8AD#a)8!b$JkS4h!RVHs1!8evsKs#z{uc$(lX;{Emjkx}qj@2(9GHC^nEoaXHU|=e kM;$ooz)=T|I*@n_07!HMOfqvUfB*mh07*qoM6N<$f~dq>hX4Qo literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/gy.png b/dashboard/img/flags/gy.png new file mode 100755 index 0000000000000000000000000000000000000000..4f9b232372af90be2e88c42d8cc38c6fda0f7520 GIT binary patch literal 464 zcmV;>0WbcEP)aBOxR^SNcz&D{`*Tt3&lR=54>SM0-|*tgquDoi`0j4t zTgAD= zU}A~!;dr`F1Yr{x{k>`b_j&8TuV+rax?Xd3k>2_&GVK7OqXH@k974i8OcN`3f1VdZ zvk8Q*YX5y)@bBaHho2r!zP8DAM-|%wU()P=ptXDorYu|r8Z1W_3u3Vb8j`Yq???Z8 zyXf<``>XCBiappZyfmByJ0Pf)TT+CXB{_)mJit%j#0000b literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/hn.png b/dashboard/img/flags/hn.png new file mode 100755 index 0000000000000000000000000000000000000000..b1a9f5f8dc9573a848f1ae353f384f28eb9a63b5 GIT binary patch literal 216 zcmV;}04M*6P)3Si)n_!+b#_VV)#!q*md>|g$j@Xu@)b{{y`{o|NR%=a47&v0Tmp-_L0gK zfB*US=kLFN{{DlDWK6o2IpsQ>3zPyX04k%h#X#`#{ZC|W$*fz&vu@&1Kpl(E-T5RM zw*UU~?|6b5r~s&p$`-%<^lQa|=g2{g27pp45552@Bi7;p%TA+3=BUNP&SC&iK_odb SS4uPh00003?9) zg#Q7~&Hs~K>;BIvX#T%GK4;(@n7DfN|F(m%|NE7^|F;S|{!a|I`X82J_dh&D{(n|% z^#5rm3;$yufUb7)Xvn@PlFpzFWBH|LdOK|4-7=|G$|$ z<^P+h)4*(y*!yM62i}1{@8AFbY5R6?dii?v*#B>5&w|+?vENUh4ZH&feH6c_sr~=5 zu?ZYvPqTCWKh4MjvtQIV{0C;1fp_4S{rmraIdA|Yia+n%1s12+f%3Xd`zXO#KFt@O z^-uZ(a?p#a8gPh$*w6YV{mt=fxkQQCa=J}>8JL8M{!@y*jLZJtSh4y4&FF;xmts=? zpI@`*zlVACe`=Ub6$ipFt5Cszb|9vvnN)QkE%2xVhrI&<QfDs6LN$UUr002ovPDHLkV1fW$TfG1P literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/hu.png b/dashboard/img/flags/hu.png new file mode 100755 index 0000000000000000000000000000000000000000..eeee4cad62a8d50f447e1f93b34ecd29c929e5ef GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<DOmsj literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/id.png b/dashboard/img/flags/id.png new file mode 100755 index 0000000000000000000000000000000000000000..e96bc7483cfef3605bc5f0ecadd9a4ca4ce62109 GIT binary patch literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QYxMYDCG%n_oDSfbl*= zxRBg+BctzTzopr0Kg$l=l}o! literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/in.png b/dashboard/img/flags/in.png new file mode 100755 index 0000000000000000000000000000000000000000..be5acd354b7b1ba7b726b460807153bb49146ff1 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!VDxcS|@x5Qi=gSA+Ew596mmiQ#QuToOx*V z>a*+Cox6JV*{@%J{?9c2zo+v5|Nl9OzfS`d>wCI5hDcmae&N8%bLH827gnCt2NoQ; zA$zFd(_N?FfFH}64p#hp@k;QS=0YYmDP{(ndHIVrDNMfy)XL!L>gTe~DWM4f3J*OF literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/iq.png b/dashboard/img/flags/iq.png new file mode 100755 index 0000000000000000000000000000000000000000..f370c9af58574edc376bd682e60dbacdbc1a851e GIT binary patch literal 258 zcmV+d0sa1oP)0v)a#r7Cm!zm-+yI2^(+P%eCqYh|NeU#|4+KM@xLFC&O9~+F2DTV zf&UTvJHWX2$~x*<9Ce@zXlVQY^rMsiryZRHwxHqslK(rOoCVA09G?aj1JNKg55K&k z+~N;Ezx+S);>!QezrIm7afOD49vBGB00jRB2#;DkYB6mv08eajku)0ltpET307*qo IM6N<$f`n>%%K!iX literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ir.png b/dashboard/img/flags/ir.png new file mode 100755 index 0000000000000000000000000000000000000000..7f647fa3b8f0d0a8da6d1a6e926f1a4b1b444eb9 GIT binary patch literal 505 zcmVHk;K-#&fSQn}sKYjsmHp|26WsUoyx-m5_YV)@>B*d)R_Eu<#RV0`-lsn)QW{pP=jGC^R=|^} zw7I$>Yzx-EHMR&Q-C==7>yR00000NkvXXu0mjfB@66w literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/is.png b/dashboard/img/flags/is.png new file mode 100755 index 0000000000000000000000000000000000000000..74c9e034aad227f251c6998e294e91daac141cfa GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZC!2~1)ZBDHNQi+}}jv*GOlM^<~=<75&H2weY zkB@h?u?f`fud`i{!ycAuadE{$<(mQBQ%YxO>`618rmG9+_ zTsY6p|0t-L+t8sTNc`flfLRsu)dWpvEq3Ewx^5xEufp}s?+b6e1X{-6>FVdQ&MBb@ E0KTO=Gynhq literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/it.png b/dashboard/img/flags/it.png new file mode 100755 index 0000000000000000000000000000000000000000..d62e50b293e5f47f6e99d909e7d5cf51c8ba9d13 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QtF;Ajv*e$lM`kgTe~DWM4fcb^-< literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/jm.png b/dashboard/img/flags/jm.png new file mode 100755 index 0000000000000000000000000000000000000000..a960d3da72caa6a4f5ca2f35eb11fa6f4a1aaea7 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<zopr0C534%>V!Z literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/jo.png b/dashboard/img/flags/jo.png new file mode 100755 index 0000000000000000000000000000000000000000..e8b743a3b1a9a9e203be13b52c071bab95ef84d0 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<M-S~K*?$KXP+NV z{=brCLqv_|%^tpMi=+P}J$jQLo*x%tv~=tHKpi{%Wna@Co?4%-A9t~Q$?BsHC5~S5 z9c&6K*o_Jk7af(VihEdARGAmz(!wQ>D?6E`xJ@hi)ndjCLer0$Y!?Dq-I-$;yS8Nk bP^gEY#l)!2=1wIi(BTZ8u6{1-oD!M<;5l4W literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/jp.png b/dashboard/img/flags/jp.png new file mode 100755 index 0000000000000000000000000000000000000000..fd1ce056a5dbcb17f68c7eca726c476ade3c19e6 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!VDxcS|@x5QW60^A+Gxv)Q(76pL2-0=#&0* z*2*7GU;h91@Bjb*TMB}7fohyRT^vIsE+=cav+|^TJUxfi_tL~4jyya(t2pXrGEF!? zh41-vgN6p{Iq^KtW*`39ny}Bp&u&*$$>$4ioy+;#s!x8mXOO&IxG`nvihiJR44$rj JF6*2UngBnIJ{14} literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ke.png b/dashboard/img/flags/ke.png new file mode 100755 index 0000000000000000000000000000000000000000..dbf559fd0f6c7d24d1180176ed90176fa5035b46 GIT binary patch literal 265 zcmV+k0rvihP)2ew~1g!ri3PQ;6 zkeSc^DOSZ_pDG9fVfeL*qR?8~K&=#^VdN0=<#}FJRVi?fB0|H+Aw-P^I=Ah~ah_#K zXc$elFhJ(`em;_fOi{$_Pz3bA)%QuyxM1}LXn>p6q+wj6di@KT{~AXFUAk_VK0X>o zlPzE;kt06Dsh)lr4MybhqI@FUhi>NDIqIzjZBP;F(FFchk1@LSa{jJ1F$7rG7v P00000NkvXXu0mjfF41cf literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/kg.png b/dashboard/img/flags/kg.png new file mode 100755 index 0000000000000000000000000000000000000000..c0fe3e51a99287fa4ac4f1e9c67e97fb94edd1aa GIT binary patch literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^ia;#F!3-o#dY3o@sRIE%A+9e3bzcbSz7W-UDW>~U zT=%7<&P#cnm&)2NRkU9z=)BU_dZnlNN?-Gpk>+ay&DTKESo5{1#%oi}H`W?&95voJ ztG{v4c;l=3CQ$XQv-(?C^|v1CZ-ML})pvoa@1j-S#VWs#R(&6<`aVPHeTMRfWaSUp z${+HSKIAKY$XEJMqWCde=_8P=RQ%YW@UcP1{zl8Aj`LfFa8tieijLMz41q z3=Xnva>2=kYW|@zCw!1N(AW!{WJ`c|2Ct6O!EJa;IZ9n*hNCw~Wg@kKgT%WwFJQ z`Y{lA$z;H5J`WH~w%P2KWf3l0Y`OH@eoy~G{Rwe*AykOJbGZNj002ovPDHLkV1mQe zmr30$mAq&x59HF`Vj;B)*7CO-B%Z7idA(cY)ozhT%SCQCN?fp%2TIY>Vmak|lSE%_ z7k+z0=+g-iAObRg+&k^!Kq(qpd?{S!=`zuGM}&S~5c_ixgn$en_sJ5`%VD(3PQb*R zE%kJ(@W+!P5L+P#$OQ^s$&do(Y!WQ~@%+`RZToJwOgbBs21GyxkP8&VBEEg^&-X8X zeSPuy#m$OQ@lrGN^EG6yWq(7ocs!3&SReE;9t|Vfg#^-(@4mjJf*n57oq+}ck@qwwAUA1AlzqP`BIu^ru06l<@4vqk*|Fr*0w8PJ zp@~2?(Dc5&ogP!{&>{(F@s($n$hYI%qtieZFd87nm8{D}_6Ho<^_g_;YX12B1EqEV zO)p)a=Qi0En;phwv3iH4)Xxd3k%Z903W$35wmVEPL$e^V%y6BKCaI<)>_ColV1Pu- z3qTGlmrmn}ZaQa#)X1{{Y6o)K4WH|`;>==r+D*vUKPaP4w&^H#VCF&J2E)Z>S`?a& zZU+MOT3I(VS(P5LDm_9Kgl>mTTe4NfR%)4!VMmvzbuN-!q_c0hf{l4~^Fv8f^4xD90h zTS=~CXV0Fks;XL9S!r)?k7h0~h=6u8kR7tk&CUP*{rmLk6C)!dvSWc3|2!`KAXb5a zypSy_Dti0&?f?J(fB*hHefo4{$9|YAbwxwG z>{wtF-M)Rhv$J#0o;{>G7R6}Hkd={<`TqSoFm279JC{_)B8v3E07_x~ U)C{^nV*mgE07*qoM6N<$f{!7l-v9sr literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/kp.png b/dashboard/img/flags/kp.png new file mode 100755 index 0000000000000000000000000000000000000000..3fee379506191676a414b936ce245c2e2da92589 GIT binary patch literal 343 zcmV-d0jU0oP)j|4v*2#-NyevH*Nvr&ncN;v2T;7L&P?1{r|PTdEgxQPF45+|F2*Ff30iA znkIj4-unON_FV()z~8^Y(fNJeLWG>61~_^_U_c!R!oSa+2Rr0zOUM7Wa%#Yg;SLc$ zeHJ3#)-^aX$;ZI(|Gy3&h2-Q()Bb;L?HnAL1cX0j<^TVC|G|G`@N?Im!BNbh7t~)$ pDhFRdJz!Pcpl>XUwg-p10|B&oFB?sB%<}*M002ovPDHLkV1o5#vE%>% literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/kr.png b/dashboard/img/flags/kr.png new file mode 100755 index 0000000000000000000000000000000000000000..d0022a2e7e1f223594a7d68cbd389658488d64dd GIT binary patch literal 521 zcmV+k0`~ohP)mMj99xbaiz_L`2|sGEgPZT%h7*%a*NNxe}kz&z?Qg z*4EC;%d4!c1Tx;dc>@vuwExK6sEo_%RzP$wF6Yz1;}CJ6g8u$~pkkmFEiEmecAQ4P ze*JpYs#T_@roq9%>({S`2)>-Q;GCcu8UhMJWY?};8yFY})B@B9)J`C*Z{EBKbOnU{ zc;{hEb0G-m6^NSL+}s;CZV;RJ;9yB~1)7Oxgw!DnU=Wd$uHnGXt?De2xt$7bg4XpC zRyFAw;lOaG$Y@d5_H>P~ZDNLdMfF?_(i!aAA&AkweXgz_MMnD+ErpoHWY-2a7lN7s z%SkpGIU0AJzK>=i935G^pM+?HBtA1UGvvhAzxouWxj;eW#0S(uAn`%6On!d;lqpk? zv&`PJ4}xmfNd!&;BEPCNK(8QY8K7dI76MrYlF_50q6!NOJ3Bjx$>_k+2B>)X^5q0F zI=pxSmOB;}7Q_@!KxKV>eMA*c@Iv*{rAx#Vsz7BV6sk0=3aAADG|AN0bYbZ500000 LNkvXXu0mjfO)Tq* literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ks.png b/dashboard/img/flags/ks.png new file mode 100755 index 0000000000000000000000000000000000000000..e1824f13786add0772245b1084197f74ba48e576 GIT binary patch literal 357 zcmV-r0h<1aP)NiJ&<%O+qeJ1OPjpiVNFMV{{Cy5zZ-~v3?LUM z2$TXUfGZ}-XrRthH{Kd&?9fZuwruYMpiaf8O%^%3#DdlV5s(4o0tJCmKm|Z$K*c~U zL>Ud#JZrZ|zMN!VKHrj>M(f3N99^#lG#7|Io#1Hd3Z#zFjh#Vv_lQBvg`lSg1Q*V>Gf!xy z)M(q}I%IPp=)-X?_3$1l1jx+kPH0AV_xVsKtQnn`cJ=!JO?-YxVDnPLsZ(9FBfF@U zLbRf~cCXSA^q$4xwvf+j4mA^>eDI{^?!eLVni2#61SMMe&g}mq00000NkvXXu0mjf DuezGr literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/kw.png b/dashboard/img/flags/kw.png new file mode 100755 index 0000000000000000000000000000000000000000..7f701d5c059c036cdd400fc08336903f509f780b GIT binary patch literal 224 zcmV<603ZK}P)mUp@ aWDEe#+(z0&=Ogm~0000Jc5D;5#TNtskS7!4TdRtt(x43CxwE!99Tb#YCzJFi3?Y4PD>XF~PDPl*j?e+yu+h>RF=u_IfflP}7c208GK1XTu zMq)GwY}(_ueNxq)(wE1zUmeq`-&5qXV~WtGJ!Jbh!)DujVl?<}pX|DA#{ZKtaOAdq zM&QngG>>DKZL@0klptGNx3}1J`%H2yZrocyOscNiQw(&X_l~L7+vfi}DGRq4$o1bb zDR^gp*`5lTSiJsV;DQ6uTpJIB?(9w7)pF^m)#W3WnY$Z9cJ%XX+`sWq;M@bTq*?5@ zeRA&Zdg)DD@hhFVKXKi`Ajj>q#WrmZ-_h%^Z8k7=fvH+@({{fdlXo5RnzS#KG>emW zwF0w~)wTurmC9|}eCV)i@t&%H9g~U z0j=!bmle6Q2UyrO?kULJ)i7s&T*j^@U=)OI?;|;JW$kY0BRV?)k>S?mnY){IAMz^N zU0u1mY{`KLU^PQdst(*Sv0!&KNkt~dhC}(gYJd?0Ov$EOmylU<0aJDFzKj8=Bx?4Q kH0~=H0E-8#Auu2a0Jm(fy#GMYlK=n!07*qoM6N<$g12-H!~g&Q literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/la.png b/dashboard/img/flags/la.png new file mode 100755 index 0000000000000000000000000000000000000000..975888468a318eeb411ceffa720a1ceb34b94b75 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!VDxcS|@x5QlbGqA+8J>8B%uT%eI_4C#d%9 z)rVJaKmY&#-?}_N2B^Tq)5S4F;&QTq8!OM0PaByP#a&bMk|Uy4F$m4q)YbK6>^#r( p#QMR*#jD-T`S04PIHdk(Vz51-c2e+I-7=tl22WQ%mvv4FO#rJ1E|LHM literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/lb.png b/dashboard/img/flags/lb.png new file mode 100755 index 0000000000000000000000000000000000000000..80b32567d3d7855445ace2f3ffde441706bfe00e GIT binary patch literal 323 zcmV-J0lfZ+P)7MjveX`0ERGjJDaD!@kgkYmvLe@<5)& z9%9P^>d(#p`|mGBMt}YNz3R;Dz`ZpIKdGR?5_Ho$4{N%(SQ#ZyoH48Yg*GG04^&XE_Td|L- zwa{49?5i%YsI2ENo~weyWM{WML824CZn1+z#2b(z7e)R#GS&b9002ovPDHLkV1m2i BnZf`7 literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/li.png b/dashboard/img/flags/li.png new file mode 100755 index 0000000000000000000000000000000000000000..c635a63a243670160bd8d3b3e8f058047a8d4e16 GIT binary patch literal 226 zcmV<803H8{P)&HgF(=kflrHH!P>wffQD(89{GdH=$xP$t&*2o&W#< literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/lk.png b/dashboard/img/flags/lk.png new file mode 100755 index 0000000000000000000000000000000000000000..12e6a000c893008b29bd1ee9cae12b7d195a7638 GIT binary patch literal 665 zcmV;K0%rY*P)$+38~rOD$tf`^jSNVRpDf%(f7 zy!)axf&M1P;`z!Tzs^&#ff%<3^sUkPKBp%Ndda;D>Xom7)O-o>yA5B-eR4)Sz@T;v-RJIrxuTSR*&Qr7jBA^BD zH*r0fF8pyT2U=Nir(cZ97H@PhI9DbM%-KL&@f1?PD4@2*P6pT8B|q1Iy#l7_+Yxoi=})(*`G&PK5pYUnXh<%n()6f zj7QQ`faE3@1L_C$&2I7KMrJEbP1o2M{XNCFFG>SaN&r*Vx4mqu%uL^J^y)=iL)QZY2S%WFF2GUTJ1Z zMzy#%N^@6;7Q$kZ8UnZb#3*S9+(m8(3UtP)Xn&J#gqUxH zn01Psdyk==thvM;K*~d4&R22O+u_%XoY)*c*`BT6M`Pn$b>->o=j-n6m8I~ixAOG% z_V@Yv>FxUa`}^ze{QUj@|NqlrBEtXx00?waPE+mf_V@Vw{{HGjZpHur0DDP9K~yNu zjm|d~!Y~vC(I;cUkaIMS1mpd0kj5M;$^X_!xD{JgG8B$(!wBBXChY{ kIP04l16kjEZs3h?U;c<#Ybh@uhyVZp07*qoM6N<$g7kBw@Bjb+ literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ls.png b/dashboard/img/flags/ls.png new file mode 100755 index 0000000000000000000000000000000000000000..ba9ed2d383caffc2b20e41beadae213f0611d1e8 GIT binary patch literal 216 zcmV;}04M*6P)H8oSGPCa()7*VcfnCeU`G-~v4Fd6_X!mh{m Sk!3Uh0000$$xeS&uBc>Pzopr0LIlM{Qv*} literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/lu.png b/dashboard/img/flags/lu.png new file mode 100755 index 0000000000000000000000000000000000000000..64b5dd6c964363e074c3027ad6673493f84e103d GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^ia;#F!3HFmgF^~|l!K>>V~EG``oyt&(S RyDZQw22WQ%mvv4FO#n7+C$0bh literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/lv.png b/dashboard/img/flags/lv.png new file mode 100755 index 0000000000000000000000000000000000000000..fb8345e1365723b5ef9578d7e20d278cd26e654f GIT binary patch literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<<$P6TpcD(%oq}T#{LR{O#l>h(#Zy?U~3MeAv q>Eal|aXmRfLGTYdqmD`^1H&2?;kO5(e&_*Z89ZJ6T-G@yGywqOm>5U^ literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ly.png b/dashboard/img/flags/ly.png new file mode 100755 index 0000000000000000000000000000000000000000..b90fc936ebce690b6ec7a4ab4a6a27544c53f40e GIT binary patch literal 244 zcmV9q(~KOuVCvDJb_i(t+d*c*oj^tkjgflkYFGO5OffK zzW&YN1;Jv6!*56yctWti85Rp{EZ_HwqDYd&wr#8y5w&fb=Xn%G06fo=QaX-Gsv*p-UTl|H1*sF(s|EQCy;!UrST)0$75te` zu?bQw8cPhhZ0%WPVwnuwSuEUHJC(VqX0&B6t8zT^RssH%5`2Lk(Ur`T} zkF;@2YgS*>C$p=Pt3HK?9&!Bi1mlAp%u|~R6<#Ye?>k4l1UI%+9#vQz&= zkN$BxDG-;3`vw%5geg`GlS1F&l}~4Z6o;6ptq;ovzk8YA12bMC?S4>JdR6 znpk{HLGbiM!*g8*hm-_P<*J>ER6L!ia;8KJ$UWPvd$P~)n3f1_ELIXaJ=6I7Qj0U$ z>WBRm*0zI<7ujAXPW>Kka4n8Z&!oKfo@}9Sw=G->xiD{ z)<4R{eL79`)NB(Ficvbk%6Uv(=m-ZVjf+f4UQpJukT^ZT=+q=5U|~YA^CkpKVy07*qoM6N<$f*0)Gx&QzG literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/mg.png b/dashboard/img/flags/mg.png new file mode 100755 index 0000000000000000000000000000000000000000..4b4b065529cdbe27ecda8cc29887c701571d71d9 GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QaYY4jv*e$lmGnxZ_k`p5a%(s zG3J0p)|V9*7rO;t%s3|7x!A2=$~McSwug;jqeh@^wQ!FKP#=S*tDnm{r-UW|JzySU literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/mh.png b/dashboard/img/flags/mh.png new file mode 100755 index 0000000000000000000000000000000000000000..3e7a4b5c8d94323d7948761b0b2a7e0360a551c5 GIT binary patch literal 821 zcmV-51Iqk~P)pN2J)e4|l_NYt!!@*t#Wd8x}o4oqs%Xi>b{RgxUBJuCv|1C%ETcxfc(xWOq{ad>d z?$z)jTlTm|>%*b`zhB?}M*<9x^r;)Y3>bgF@C5n~E_dzzJ7DlSWUT`RIJ4ChT$XA2 z_3!A4yI0MP@KzP)%jL1(?;rk;4Iq38OfNtSfZ+-B9}xWh^LNgstFCz)@c2?EpnrFF zG|&Qsw|aFx9GUd@+dE8~UcCJZG|;bf3&KjE(ZKWqj6Yy_0{sV+4zAoLAFu$cWd?!0 z`+6dQkp%M=*Q=EY-ya;qwCVEQH?0d!n|A6*!*iA#T z%p|z?Ku`F+N_MEX`t&{?o$~kl2V`r0{r^y9p~LyAEQvA7sh2xzf=<~q#qv<&Y# z)Dv>Af)(VgYVKF7l72iqfo#*ePd}FKycu4zgWm;j;e}NcEj;ZayN~t;-YsVVTJ~gu z;m70C|9<}nx9QH44}Hte15+7`^;Dwr5>`=o`gDx$KHlqpx19NYHP5RxsXrc{hFJ6W z@4us$o|R8Msu{6_PWlT>d8h<=7^Y72kK%2gN`?c=C-Gt^nq8@X| zFAFh+d=ffO_j=v0<$t|4HP*Z+8pjdw0050A zY-vDWo!1=x5DRglOJuDM=xh@$KTHt1D@mOK-Xx{kEq0+}aOwm|P8EzdjL@|($_IQS zij}YjN}05#6c&4;CR5j$6omajdnKK+bfoI<*ftMsUFC7;5}HoHloIBKue_?;&%6oP zq9fU%GqNw24YIH1gyD~eKXCpN@|S|YX6(gfe}yk}lOmlFY2iBn0000nCjR+bfY9Pv)uoKe5O zcH+sj+I_A`8=Iz{QgvHQeam!wmIdc-Pp{j*``F{Q8K>9myt8uaZQH1Imf>rtZ<&Gr zipZj!oA%wGzwTOo`{9b7qdSj0%52zQ+;N2ZmH~axIOWvl{rBgsy;jkGyu9!D-V=|L zs`hlxIY)iVlwB4%#;wn7Idt{*+w$&XQX_7!?shrOY9j0O;3-_5O&eJi)%Pf*9vWybV iqn3?YHfq@jw+sNfqe<6+=2e6M0000s;ZjgzV19h1XM<(feeGl;-^6pcO>X;@jV5Z&zpswcuNj|k6&hp-&K~Tx5ZC= zCBI)3eA6U)M~aRX1H<`km+0?T{6M=O*-O&V$C5H{+C<+^6?xMl`q)L1u0j3KQWEIt zXOR;0i(_C2e^?~)EL`&2aiKR2V$ajWfg;Zn#OY))9KGuorK`mc%%xt}i#_p|1X@W~ zi@)v@`m$H(+Y!N+#bR`|_|qC;V9E9SB|p6_eqbu~szU5pgao~VdcYFb0A!~T+z_CT Z#Q@`sIB{RwKRW;b002ovPDHLkV1i53dlUcw literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/mr.png b/dashboard/img/flags/mr.png new file mode 100755 index 0000000000000000000000000000000000000000..caf03659f0bf43b2cd8b12de19a348ad368e9eee GIT binary patch literal 304 zcmV-00nh%4P)a57x&N? z_|O;n&=&jA7W~l`RVDMB0001UNkl5!7f23ec+O21>j3`x#UCU=-esbEtp&m>OSHn z>T8a~I9IW4$JIOv48l&SbycbhF|x{L7@E@JA3Ood4+V*b0A6wc0000J%-y+V)9!7XcJJ7F zV8Y~s6Q`UxbLPB=_LD`cUToa)=k2@y|NoypXm${&-oVqvF+}2W@{PSkU-J}h#PKom z?7qD#@P~GjO_=iM<&rbbx=rNoiRksWZ~G}=5c7j!YWv3E$xlR11NAa^y85}Sb4q9e E0M~m!I{*Lx literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/mu.png b/dashboard/img/flags/mu.png new file mode 100755 index 0000000000000000000000000000000000000000..03f524f931923ffa45cc95da3aa00028e785ff70 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QbwLGjv*e$lXoa9x+@_VTf|yDDFNQ{3IY>K`k^=}Sw@4^-Yy0cvLOboFyt I=akR{0O3A1V*mgE literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/mw.png b/dashboard/img/flags/mw.png new file mode 100755 index 0000000000000000000000000000000000000000..bf38ff9c73a1ca5cdbb213e532aebb4bf99594cd GIT binary patch literal 261 zcmV+g0s8)lP) zI5{}#|bV$~O_j8_n++22FdI7iR&KH7Z_rN0AhuT zWf0}E3hYL;Q0#P^3swjqR%9TYP!YBIKh*nVQV}%0%qpT*|AqPvsDHHle6DE900000 LNkvXXu0mjf3o~<* literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/mx.png b/dashboard/img/flags/mx.png new file mode 100755 index 0000000000000000000000000000000000000000..783148b3e9a3d410a52d88321ff6c70e72f0fbeb GIT binary patch literal 309 zcmV-50m}Y~P)Tj~GU68nuZ6n|}QG{PM=pbuIBNp;l+MFQ=hR4{vO{ zvbJhNTYRa9cCxkdty70+V$-L$H!fV*wr5^-Ynppkv{h4(Zf}||^=*3a@Z$ITx9?q8 zabitvcbZ3CYUuW*GZ*(Y-@AX7$~HZEbYjQhV{`Uwy>o2MjzyCzQ~amY=0AIU_x9~W zRJQ5qvm3W>9$0+pMAf$K*-K`YE$OXWx9RS!LwE0=p?*AFzPk79?Njp)ZC*Jsed(?> z4j2N|PNZ14bL_ZRdz+r5G00000NkvXX Hu0mjfvZIsO literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/my.png b/dashboard/img/flags/my.png new file mode 100755 index 0000000000000000000000000000000000000000..5a9ae417fd6e3d2d28ff1b169370e494585aaa26 GIT binary patch literal 416 zcmV;R0bl-!P)-I_IV>QxoYi6#9*aNBpG!7Ex45M(_~l{#sGI@;`$cS) zEA<2WRJ^B3yUu1YUj^i%DgJf$4%rCB;>5!2pJ!QsK8A3CmWesdi_6Q+EJ=&b&F8gU z!fmsRCP95|hs?aGPH--l^)i?E`U9)9-yG#Vvq?FrFq_$IHM07z2M>^q5EcWY^UnpQ zjFL3C2rz`(+Jk^$@c$yizYB~L`@FUNCs5yFAbNF#uceAX43}mClG1U^6u;YS<`$QJaut&DQ zBeB{dydCI!%&bMt>;%k3Qzv*FS*tO9qI+(6ig9QcP>{)d4Lu4F;?aK!0K=}>LbB28 z=0>s+!$Vic0YMD^2M91cON<>5G;kIVSWpjG;-Vx=P?VhpDyRWD2!|2xnDyoW0000< KMNUMnLSTZ2s=HhO literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/mz.png b/dashboard/img/flags/mz.png new file mode 100755 index 0000000000000000000000000000000000000000..0e4c983ce87bf89db064ee8345722b49767cd8fd GIT binary patch literal 420 zcmV;V0bBlwP)=NOBm&ZnOj&`q@<*jmzQrW@Ia0Lii|Gc zlnJmfnAn#$eR9#3^&JUDrql@#p#DB?<+n40-t>#yG}8XOiRW0j^bvkT>O|uuL6dtv zst{*h7B;@;sRk6eQ=I+$-ty-UR*;RbWSOh-1|OF2|9QwjAwoC$wvFcZ6Ks^5i*EFj zOu6587^z||!ssi~hVNzzQp-?;(ZHhP+aV6>nhP@eQG&wnTTE0p7l;6ELz-|8jD9l! O0000Ge$MLi_dm zRQn8*cjv*GOlPd&{xLGDin6^$^ zw&z{%G8w}^$9ezN{{NHt`-}M3cMd`)jx83NuepBLp@(^Fn@$=&J^x#r-)X17JpQLl zT|5&suY45DTsXU6*Nmbg2X;HoE;7mD()DFzc)tB*+_b69ia?7PJYD@<);T3K0RUix BI+Xwb literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ng.png b/dashboard/img/flags/ng.png new file mode 100755 index 0000000000000000000000000000000000000000..ba56e9e06bc0da3dd6bef3e5897cfa51f3086288 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<<#0(^xG^T?%oB=)|t_ vps1&dV+hCfxP~0001ZP)t-skg@nI zi;OLAM=geaQ-}0qeV~nrc8-gCkBoJckbRbsftZtjnwNs1iesXnk*(06vah4E*RHs> zs=d3f#lpDC<e|=U&fD40-s08a;M?Kg+~wuq?Ca$7^YQxn`TP3# z`}_O+`}X|&{Qv*|Ej$lZ00001bW%=J%+fSg{Qv*}Pf0{UR4C75U?Bt;hK>rtKph3h z39<9ZqY9y_P~=qQRpwH{qe57MpH)yw1dj@78D=I%aVb11R5(N>#dy^4s8Cnn7GRS_ fb17jkjN%pmma-v?fscyM00000NkvXXu0mjfrGbjM literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/nl.png b/dashboard/img/flags/nl.png new file mode 100755 index 0000000000000000000000000000000000000000..aeb72b664a768827bd8ca879d0c904b5b34831c9 GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QpTPxjv*e$lOxm@J1QSB$ojIu z;8#ePV6VX8`dN*Ei`&~T?p!-NvqeJW?yk%hw_Z6hH)e(}^DgQ<>FNIf)Xw1P>gTe~ HDWM4f7d9gV literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/no.png b/dashboard/img/flags/no.png new file mode 100755 index 0000000000000000000000000000000000000000..e14f90f33d84e921007bdebe61514ef0b7c75c09 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZC!VDyH3LH)WDU|@95LX6`jMUmC?Xz~Q-F1Hd z$(zq#e|)d4`?b2}`_yT__U`+AoRPl%ev#>lhf zaal=837f&&7Yz(-;tB={C5=pMe;9lXX9a%w#KiD+O?>mRhsuFK%?zHdelF{r5}E+% CY&f9+ literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/np.png b/dashboard/img/flags/np.png new file mode 100755 index 0000000000000000000000000000000000000000..fd0cd6e626e9d13f65156dae3b09a014ea11fcef GIT binary patch literal 490 zcmVM6gOEGCu!4PqwQ02rPpY4cZAzxo!?5PhNyI4`F8|DvJ^3O+5S^*=>5_Ak3xPdCsY z4!j23i_86gN!jfG)5ab!2C+e6AlIxGGyP|vTlNBIhyzXoZn}s6f8I6q|Nnpgz!<~^ ziNU;d28c_PLjUrabSwcHB!D#x-mcj2|IgQNU<_iThYJXA7194^tzGyTXh;awK)fKO z|9`)%+5dhSm%q4hudK&^C+&j&KtnbHu{1_3fSl{2l?_r*1@4Ut30*J-8RDgx z^%JPToal6LH!9=*)A}wj2C+egxNGJ702*RU(15E(F8|-I+z5{a5E~?RT2TGJi+1jJ zpdki$4FK8r<>a~lFaTnM#6T`P1vJD_JMSyd5FL_T01KOwKtt?w3cdgh(Ih$y(9^&P zpdrvSpoTLu!D0bhA_C##LK^>p<;Mr0AM@4N0Ts+b&wUUr52A gQVeLoF(4KK03pGx(Q%`v!Tw>&6+MNIkH?3S(b*PlOs{rQb`x-Z{;`SJ7j|NsA!^5!T5O>p#d zaSW-r_4bsy5QBmM%Z8|@ zC4K`Ze*`Cg2rGdKErJa%gbpx-7dVL-If@=Wj3hpaElQIwNs%#1k~c|@N?4dsUYt~7 zo?~sKW^t!yaHfQAnumI&i;}yGle~qTC~e~a007fTL_t(|+TD;>4}w4tgip_ciWO1H zVPh%MR8Xq_|95$ah$cLc_~yLKX68#ayT}P{B1Q-i074Bf4a-Ay;xxyj6A^8x=8|>v{kH002ovPDHLk FV1jxn<;eg5 literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/om.png b/dashboard/img/flags/om.png new file mode 100755 index 0000000000000000000000000000000000000000..05c99d92a3b86b31c53dd5df579d4872617ff43f GIT binary patch literal 256 zcmV+b0ssDqP)O1hwnGmO;@SbTKWurb^6Fi@tQB+gt=Qiy3$qbI#_0 zBfQ1>y-J|;av<{3Mh!%h5RV*?iH}5+@yce!o+_}2tY#q7ah8X8GtX!20B@%Qp1UO; z-VmYhB3v&J9QW)1Bg;Tw>IhUBf!so>G?5w|woV-PGhk0eVzd$4CR-7{=^*GItxv8ft_*5Emw02un9P@4alI$?)7vrRDPu{Jae*f~c zJCa$NDHo)9dkh~5dcKpmzaF3K?#~s~9>pceu$Zw`V4Ky1dHn`JXEAuX`njxgN@xNA9OqA$ literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/pe.png b/dashboard/img/flags/pe.png new file mode 100755 index 0000000000000000000000000000000000000000..e4d623e8a14814abf07a513552fc00d5a924a466 GIT binary patch literal 91 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?$P6SGq{_DgDYgKg5Z5yd4FCWCKm6HI2q+@p n>Eal|aXmR@!+nhd9??t;&%#AS<1G_`QVa~9u6{1-oD!MZlpX z+_+I&TMJ~1GqKF$m4&FgD5LryR^d^y{PP-Fh*@7YOTKKDdEG5@NlBG}8zUnlZES2H zY$gVVY)+9gNE$9ksJ-ry`MzJ`>jp_+I6TRf1Cj(xgaalfCJ4ivm1{RYN(h`6R(qT& ze_2`OuD{}4e+BF&IyyQc8z&$jP*hZ8W@ZL4SD1-;I*$yp&I{sd_d*pP#3D6@TU+A_Uw%gBi9FH-@--R|6chx80|Q~3kKne(9=RYB! uN;rj+1XP*X*YPP((?lTPWMpdMmH+@vRY<=(6>!x60000=T z%nV`fJee`$&b{AvOw?({V`c9B_wSxg=hUyh?!7^)2aib=t3g>)a+jbW@Rs3eHoRb7 zUie)ro+o;rW;@^5cN~(fkP9XRoreURSlE85&zg0*UnRN|LM{C zzFejFrh>Z~bnGHG42Bj;x=uCP;>v({w7-2$&V9NUIJ3UFO%;(8D3A8f9|-au9=3s*t6K-B5YY~(+*7g_wV21caNDfn8`GnF`e<_ z_m7vKUdGhF;MfA~25tFDc`}Vwt5pLEe)#qQQ$J@mCq-cmF&YRo>NKdF_#goS6yJVj zJ1&ES3x&y#Mu=41raGWaXtF|uLdw<36eT{0?6%9>9C{oesYRqnBy(wI`MPpSv&{WB z_u*>3|N8#v`zK)H113RW-l0N9Z`#sy;N}5fYPtF1=CV`Eocf$b3)O))8UPcR*EanF Rcg+9*002ovPDHLkV1nGKk}&`P literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/pl.png b/dashboard/img/flags/pl.png new file mode 100755 index 0000000000000000000000000000000000000000..d4db002f655c3592b4821f0fd8fe2b7e6a9ddd5c GIT binary patch literal 91 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Ev$P6T}#joW7QfvV}A+C2sZ2tfM|9*$*C7_6a or;B3<$MxhN{46{wf-1}mYXjA9=5Gqx2b5#*boFyt=akR{0JXpv9smFU literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/pt.png b/dashboard/img/flags/pt.png new file mode 100755 index 0000000000000000000000000000000000000000..e0619bc9f66ec02e64f3a4f5dda366c0d3d5dbac GIT binary patch literal 395 zcmV;60d)R}P)f#6Rw}a*Dzy=wXC@zQ!&RBi(iO%@k$rkD>zSS=7G|NioSCNq|?OnBQ-Eq?Cr{^-~b|NYAE{y+Zpsl&g@ zUsjLq@2~&=-Z$@u{H=E%>p#Bw_J22D-mm)dAmfNR>-u(BFZ^3?aY3-y45+o}`JMme zzpP)p=I|(q`BlGv%ftU4UlkefKDun{dqC*f-Qwq({xe=BM)&iYq$O;K_*j47BiKn2 bvWyG?_gYu0&M3S9bT)&htDnm{r-UW|$h2&G literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/qa.png b/dashboard/img/flags/qa.png new file mode 100755 index 0000000000000000000000000000000000000000..0e615feb7b8d3989a1e8da70604e027d995d65c3 GIT binary patch literal 229 zcmV^P)00022NklceOOWHwQI}Oqreekw| f25HNY&aG_#Iz9e26>v;r00000NkvXXu0mjfZZ>8! literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ro.png b/dashboard/img/flags/ro.png new file mode 100755 index 0000000000000000000000000000000000000000..57f34f3559fa4e776ae44f5a9f6eaf3d71eec89a GIT binary patch literal 98 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QktGFjv*e$lM^niJKp>+M&xkw tInGrN9eEbJ^-I}ieOYl4%n<2iV~96Ar60F*dLK{|gQu&X%Q~loCIHsR9l!tp literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/rs.png b/dashboard/img/flags/rs.png new file mode 100755 index 0000000000000000000000000000000000000000..7273ea715508cf0c31664300d00890f3247b4f51 GIT binary patch literal 523 zcmV+m0`&cfP)N!x>N;|#o46E3CgE+uxNwk6uz{ELyGZ&PDY%b0|FP1#gZr^6 zGOw!#-HPSfQ+Zh4@3Bf*lp@Ou{=U!F^-F73xa+&s-}z(ys9yUq zoI=gysf~Or9Nhgz- zrpcJ(V0b#7AU!xp-rL3pRb#F@z(g>Fnah!qWCuU?2YDbKCM9|(_Jv6uZDjItGe#iD zP*0+=ur{@5mGW_@LoZXYzi0pe N002ovPDHLkV1gu+d~p%m z_Q|bmcS>d`_)fECe*bz}JQoYkAO3ZpIuA_Z<+0)3cWdTc9Z87_kvnV3Ou9QBvxfi; OVeoYIb6Mw<&;$VeKO`Uk literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/rw.png b/dashboard/img/flags/rw.png new file mode 100755 index 0000000000000000000000000000000000000000..5b859eafaac9c64a90a35009edb019b9b7f8bde7 GIT binary patch literal 285 zcmV+&0pk9NP)bN>;YSYPG-~t!8_hn$EM!MX@Qz})O_|24BKc-p0~sYp`|=KVdTq%G-BAi;cx=wfKiuWL zCD&|q3<*XXtPG!YX?gqEdCnWtRG0Xftd5G@RWbYOI^`ukSqIyI?A${gx+_9^&M&fC zpX9SOj|8Jxr<(u`_1&7^bb6NG)_kK?k*=FEfX**G(i6SA%6)TI&Y=$ZMV^@lTO)Rr z107C+(Ht|(fW`q01!|UZKENKCf zysx46!lIz<#Z@OJ15E@5Zq3Q5zyJ}Q=LigUV3+{S1=?Z1K3QskD`_c&ajGFOSb!uD z@y@b_cm)zx%+rh@YJdzT7<+_g8AuS3Z?yP)XJGoRJ~0ItlV!&y08<{23rsVq`%0qLGO@_}yX2m|<)*^t!LvQdwH?mh^3UG#&)@RU-}2bx^xo+9?eqHZ_51wM7XJSK zLY?sv0001$NklEGlklDa%S*`q%0E| z$`ra;kF#S;VZMjO1AYm6PMAWhp9)g-UMW+U$kU-rB0uHO7%9Rm!U#0RGZx8M3@VHF Y2ljRqhL?}c_y7O^07*qoM6N<$f=d*ZjQ{`u literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/sc.png b/dashboard/img/flags/sc.png new file mode 100755 index 0000000000000000000000000000000000000000..a497589e61fa350b09679a1f349aa60866308bb9 GIT binary patch literal 467 zcmV;^0WAKBP)07@?p|wC@96GHxOBFy@8-IpO&~Z-Aorx(!1T% ztneTuy0knK|3UYI&OiL-{|CMdV>y(O>8#;)pLaFit1emXq-(auFB*i3UN57Affa5& zkKh_XOLp)`BG0t|y7vPGwXlB4*%eleIS@pFXj(L>ra(L`o)ib-Y4M~u5KoII#V0zQ z4-A?XPl}^nGnt!@UQdt*#{g+HODZ}XwJ~by7$hy86i2BB^0&XIZG=ct43$n36b$qR z{RNV=?39ExV|ErO3Z!XUBpc*5{R`Pff()4k`kthFE z8xM9$N_3h0*H+K`AHP1qq(YYCkWA&Q|FeC0+14{BR%~#!Y-4^HxGn=E)BS0gqrg)O zS&qYUs`J+8g_X{!2)kOIqhR33-n1cY`S<_Y=kx!|b2v<4cAT;L(1-tfCcg$5Vv!el z^uNCS{$8ts3fGSd&Z*d3lv*FM^{W4h)vM*DIeKn4R=)Z#xrMdCEZ?L@J{K}r0`?5lz%qHf8fv4;{WZK>wa1>qoqT+(9rWPB+>mdKI;Vst0GSnS)c^nh literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/se.png b/dashboard/img/flags/se.png new file mode 100755 index 0000000000000000000000000000000000000000..9e1257830378de63f65a7ebce12d02e366017f81 GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Ev$P6T}#joW7QfvV}A+Fp3o&OIqaL-;l1t=os u>Eal|aXmR2H};p!iGbze=rzv#M9&FEiK7ySSK|3^_Hkp0!f>-XAiU(J1}VDz`p z^#A|<{W)^#i>~uGzr-&(PT%A5zvzM4y3Q0C{j+x_(8)jhX9L~)=irGiMjjw>eb+zx zj()WcppMZ{2|ZVc(Nql(Alp0s*V6UCF!?oi#kbH5YDVK%bKh^?aiGX_i~4FCM1#af q-E>XmEc2gcVASYQqeqP<2><~3kUCUpav6pI0000AtgI$6AN z{xzU|B6cr;2*_ADn+6sGgA@~W*PeGve|zl0&!gvm`sTiCt-gR&86}7T=pjrbuXPG& z>z8l;favVCUrJghuqvYn;gWCDwI?{1C|9;PV!1kFxkGHfL~XxEZ@@@!!B|R^h#pdp9ZrxP zO^|4qkZ75u89=AH;kn4?y2S$*COXwKMb$M&*E>wvL{-^LT-jrC z*=Kg#S7zU2a^rf1=#QD}pQ!Dpuk*#q_~7FC;pG4S|7yY;82|tPgGod|RCwCO$wv}` zP!L7YCW#pgpgj0Q`DFLMJX1NbyBz8n-KtC1ul~O?Kx-i5JG?t76m45Tox>0Gu!=E_ z4y7P&=4bl`c&I!MhnDIY00000NkvXXu0mjfuF;qk literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/sl.png b/dashboard/img/flags/sl.png new file mode 100755 index 0000000000000000000000000000000000000000..b68450ddaeaf5d978f86d8827d41097394c99170 GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!3HE}t?oSnq^vz%978;gCr`PZ^>uzC1H

~5ca^wrzv>}uAABC@~jvp%jkdiYclL#&}$lXu#W R^+017JYD@<);T3K0RWToE5!f+ literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/sm.png b/dashboard/img/flags/sm.png new file mode 100755 index 0000000000000000000000000000000000000000..43f1965025d9c53e034a0f5135c303b83dd0f896 GIT binary patch literal 352 zcmV-m0iXVfP)tOiKk`ikhFxZD!NI*7yqsjGwtEJ7D;_wo-7LxF&V##Tn%F&WVoX7DSb&CgT&QGX zn{{MRezu8Ms{i~=%kY`V&~yjJqGECC!e?T`IR@`UE*lpGWAoH3 zeR(s%%yb<-V`Ww+BbLM}vP`T$!w}P;pEoI|Yeqn5cu=@oW`41MPNhInK0{h1Sti1e yNck4cfOOI57H!`o*7{Qf)e|<6WHf3bRS*Ee8A`~ejMoGJ0000{|l#GjQuSed3&Lf z1KWh(?OlvUzh^MJu$)*>6p@}=(i8WV!Nq}XYVW=Bqk_GLvr^r9<@UHSGu-?k8+0xB RUN6vQ22WQ%mvv4FO#p(jKKB3s literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/so.png b/dashboard/img/flags/so.png new file mode 100755 index 0000000000000000000000000000000000000000..819490b9d77e82259eea19979998839160c0cbfe GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!3-qVmezg)QpN#3A+C;{cU`*gx%S-i=)LDR z@qW;h2g&mum#lcU=FEo;=RO{|@#W;*ucz;SyY}qIx1WE1{{Hv>|9|FlneTwwEj?Wv zLnI{c9%N@^P~c(Nm^_X5-_=DA1RW0P&v|^bXL{7cpxN1HrwKf=NOxJXsoe3kWx0yH dLdCuUM!QZ%!Nmt1ZU7Bo@O1TaS?83{1OVvYP8k3I literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/sr.png b/dashboard/img/flags/sr.png new file mode 100755 index 0000000000000000000000000000000000000000..9ac433788807de4396674e0917b7d5d5ac68be04 GIT binary patch literal 205 zcmV;;05boHP);JP1Km=p}xj;ecxca89&X4t+|IaZ15s(4oQZqn4&E$s|{b@QsHN*OWCabK_{CN;jhcUIPkK^mR)m00000NkvXX Hu0mjfHvkaN-_3jiUt9`@(k0qUr3mCS8qSig$$mqelF{r G5}E)AGD}1N literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/sv.png b/dashboard/img/flags/sv.png new file mode 100755 index 0000000000000000000000000000000000000000..7fe790cb21b704862b153ae720c6cb221418e413 GIT binary patch literal 260 zcmV+f0sH=mP)zZkc_?gb|3$xz5%PJvbQ5qA#z#>WmoBn-2cyZn7b00YVihN;yWosgC zt>ezX%ukyX@%!n?TNhuy<(HKBWvrmYz$Q=IR6bfpjM_A`Yytpd9$5X`f@tpm0000< KMNUMnLSTZ6tayF^ literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/sy.png b/dashboard/img/flags/sy.png new file mode 100755 index 0000000000000000000000000000000000000000..c78f9d5ff7a1a755b2cd7a78f674fff56749d220 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!VDxcS|@x5Qd$8%A+A7LW@Vw_#`^H^@Yy#H z9)ES`#H+h!-rPSYsCGZ8;N|y^fB*ga_y6Dj|Nj@QR^1F#ZR6?U7$R{w`Go^3&y{EA zU08X_8y}pBwcvc#-uQE+!9P*ecni))_r>mTt2_RQewzJICBj}P!N84`$ApdH-ixLM Tx92v2oWkJg>gTe~DWM4fu8&1F literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/sz.png b/dashboard/img/flags/sz.png new file mode 100755 index 0000000000000000000000000000000000000000..6550515e4aa8de2d10018ef39486a15313054003 GIT binary patch literal 537 zcmV+!0_OdRP)u+bCM)J%AFPYHsV0V&<5yrL9v`RCN6K z@dF1A?A^Qf;>C;mmQ0x8$*w_HsrlzL5ckf0v`taNdD~!2;S|%Hc zIr}t(+J>${Ga88ERcyS1CS_|lL%8dCctXt0fdOJ+Vd3TF1$3{0fdSA^Fm6ZVu*xA{;y1L-exUZuFZY~h5 z=HYFU(VZkDNm}BwGce%b;9z8AjE#+b^6(+~i4Rwn>D16@R9BxTAV6%EpJcIA^p~jEjmC=44$rjF6*2UngG=*9%ldm literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/tg.png b/dashboard/img/flags/tg.png new file mode 100755 index 0000000000000000000000000000000000000000..31f1a00ab7ca53b049a0124de5d3a78555f6aafa GIT binary patch literal 233 zcmVplyTu!yRrXTff*Xbbw;f_{*+%_-`R4njn?S}L z=lJUyoU#grF_4X*7660g%klI7e*gIo2LFEi{J8bNWid;tSpY#Fx9o>l@UnLv zT#%X;{Cx2A$L)u|U%vfv>>TwixUS>#cHWvxLS~o6t==u)0wjlKJ{W=)P!fSeMe?Wx j1TCN_0*OJR77#)Jv5Nzc=v&U800000NkvXXu0mjf*EVR0 literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/th.png b/dashboard/img/flags/th.png new file mode 100755 index 0000000000000000000000000000000000000000..5cf74c908b9769107855450dd17d2e56c8d3bf41 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QdXWWjv*e$llQ1A9CVOAU}4hx zZ&Mlb+Ma*^|Nj>-srvcMdyCO5$E9UgUIZ>?SNq6&_KwHlN10o+99S8wU(3C%$k*%z Pn!@1e>gTe~DWM4fr;sQq literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/tj.png b/dashboard/img/flags/tj.png new file mode 100755 index 0000000000000000000000000000000000000000..1d83e4c7a25b688d7db981aea6776b0989fe2e5d GIT binary patch literal 283 zcmV+$0p$LPP)b@KO=V#=r!3s~d{-qswI0%wVktx<_O`Xh9LNpJy) z)@$$ku#EvCwy8QfjwJb<@j4E1*HxHX70zjdG`z`k#Uwh8EM>?N2a%_Pmz1&5(`2^N hU9=#xYrq;%w0|-V6`b?Y(A)q3002ovPDHLkV1lVWdF%iH literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/tl.png b/dashboard/img/flags/tl.png new file mode 100755 index 0000000000000000000000000000000000000000..c646f33f5ce40eb6791dccc31fcec4f6ad924027 GIT binary patch literal 302 zcmV+}0nz@6P)Nkl?VF4C1}`zV270kM#^_ z02u67mMZ)|u10I?8887b*ymMC0PUu!^$fT`oG0IxeJZrG9$`~PMuwP}7?2??EiEf6 z3uI_2K!cqY)*~#=&d$Dj_wJ-glWyL;$;QTp8SK=x9%?H$H}{k&Q~rZNO-&7+V5gS# zAag}UMd!_%cm4Wxh{c~jfA;Y3pohh9aO>8s{QP_k4Gjke2WDnwdIU8Dbai#XW0!u3 z3kWzkI0hg)4R8T6Fh%A7R1yPIEe=dWV4#{l0F}Z?_l(7{CjbBd07*qoM6N<$f>tkp AfdBvi literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/tm.png b/dashboard/img/flags/tm.png new file mode 100755 index 0000000000000000000000000000000000000000..5dd8fb996e4c3506c6a0e5c1b7c44ab3d5a7eeb1 GIT binary patch literal 572 zcmV-C0>k}@P)^51MEs)eZXrv97A``(`em;)dLy`}bN6f3pKG5X4T23D>#gy$& zk8V{*tu3n<8(6JXm{ zVb@m)QIoxLhVS%dl8p}XbC|4SHQn2EZGhn{CzEw5&;SuAiQ>!;0W#R~f==AK$x|3c zj?vS#t)}>xtq;oR*`uYuS=!{V zsV3DDUu>|=0$Ckr5eWxrsTe`&{rWmoGup@7DN|X^Q%8A+r>ni9$Vw$ssu>*>XxlBW zsV^#KB`0UaFS1j^fNDkq)Ae2*U0^70mN5a6N3ArdW^`nr?Q#>t>;TKuFrzwO(_Pwn zR5Loj*P+MV*gnbLBF54=(Qd1*KGlp)46)j!Zm`Z!f02X!Moq&*rdm`pIwsI&o08$S zn&h3`32WV5_Z#R?vrs)WyZG6Gxr@?c->r{ZW9vXQqdmQxch-fzUu1W3Ve`uqi?`XB zQ`6`}##(EP?N<1BY*R7Xr>8?zSF0KvG1ok7rg79l1DLcaG#UVo5$E(l(Y;mx0000< KMNUMnLSTa4-w)9M literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/tn.png b/dashboard/img/flags/tn.png new file mode 100755 index 0000000000000000000000000000000000000000..09ce2352debf7bbc604101dc1b4775cae2a58364 GIT binary patch literal 236 zcmV_zV*Qh*4^0CItXlo}0m zAkd(9Ug6JKB|aqP{yKT~*Xi?L`lka03A&wt(LnD5oe5+B&HexX|EH3=|9}7fzIFHK z!J|Maii`#ZE-(;)44`|zui5m1TlNLJ?i0iyvsRj>kcsf4Zo0000 z_iA9^t@QNAy}i$-Pk*&y#rysHe?EQs^ZE0CKY#xJ|9|1L99y79BTpB{5Q)pl73{3S z5)&9E{J$d8{Xp5w=U^;%WY}G2@f?Op&pU*Utdd>rdShJ@^vNhk#x&qYA N;OXk;vd$@?2>_C*K(7D* literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/tr.png b/dashboard/img/flags/tr.png new file mode 100755 index 0000000000000000000000000000000000000000..a67740a1450b221cf5a4a8338e8a8c485c5257aa GIT binary patch literal 229 zcmV^P)-aqZGWCU2O=N?$fb_aA8K3v|NZ;#$IlNn&Cm6%o=T{`@(6mH zl0&J{KnDWN{r~6BD>r`>DPF1PMz&7`WuJ&Dl4&&1`~Uy{|1x(GrqZX<8c!wFfC`?< zYQAz0B-vxP~0002nP)t-s00001 z0RaL60tg5Q2?+@b3JMbw6BHB_78VvFA|fRvB_}5*H#avrIyy~FO;Au!R8&-IYHDt7 zZgO&Ri;IhokB^g+ld7t!t*x!Fu&~6$#K*_S$;rvi5hl(OC(jov&loJw7%kBtG|?h8 z(jzw1EXx?3G-rnBga)0A>f#Z3E=#ZM} zl%4A8>g((4?y9oxt+em4xbwrw^Tx~c$g@aL z?fdlf{Pgv?GOT_8007)cL_t(2&uz-ZfkFWk1i{7@cbCE4-QnYqe?*(Wt8=ls#sCP< z_cdA2?3Dx{P&qa2q2VXv0`L`Y9eb$v$a?_Xxo6)VYF|o!0Hl8td#G_71p!Dn3wx-# z*+u|}?$%XvNJ}RUKxllZ+e6cD3IKok+_HxT@2nfZTex@aq3*rl1#oBI1AC}-F8cvU zeW&(N{V)yz5Omvx_&b)c1Zp^|u@l6aw# zd7+Vdp^$r_j(($yexrqU!;>922#U1Cy8tACE=&85v$P@C)4)eXo^TEpV_4)L|%k;y{^u*2d z#?JJ|&-Kd-_sa}ma|Nmm?T`d3r0ZvIoK~#9!g^*`c!axv)FB=RI zj0QA{A|lv(LlV2FD4YQ?8j1xAJqpPG|KcUXh-M(ZH*@>W&9l3=i!xP(r4T|Q#v%!n zOHNmyix4koYdUIx6qiuT3TuX#9RN~;mvfrJN*GIAQZ4F9CeC~P5u%YOiqhq4z176H zQP4_Ji9CQwhi6lOa2NfCeC|c)C&wBT829w&v0;tY(UMkZVBBogUoQT%K7AV6N`=P_ z5K*jBRFj-O46A54nePnakL9-^*j^8-l+^^+UJpsCWo7=SqJ6Es9|Bg=va7Rj9j#`- zBxjg_@V~sNuMpi6bOeHoVb%fm4`zB-v_0R`B=qgRod`70y}^}8WJ!;K$31de{ZSAA zW{1Z{=uvCXG3jIA{C$vE3vj^+@Nf(Mqnk}jaO3W3ZZ#fX2HQMXg7$n2z~j-aH8?mh b0cL#zI>tlerp2($00000NkvXXu0mjf^}T(Z literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/tw.png b/dashboard/img/flags/tw.png new file mode 100755 index 0000000000000000000000000000000000000000..88cc0dfc6d7d195dbf0b00ac54878dd6dd72b7b5 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!VDxcS|@x5QU(D&A+8JzGntrXv9iuqRb8R2 zy~@aFt*Pm{q@)8iHK%K9Pd7E4oiypnqD4249)0njf#LuE|G#{ftOn{e^K@|xk+__k z(7>>-T!10P$k2GFVdQ&MBb@0A6uDQ~&?~ literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/tz.png b/dashboard/img/flags/tz.png new file mode 100755 index 0000000000000000000000000000000000000000..94ca541a1a929bdab9a0a4800ca8288642e00d47 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!3-qVmezg)QZ@lTA+A80Vewr?Mh3>kcjUHO z$*(*rztu`nn%Q!PS=zSV^ld$v;hdERw09l#+A~Ms&?))%=M_F27yWob^y3AIPtn2q zf!Y&2T^vIyZq=SW$<<&W;(T$BRmj@lumAstI-2M?ZQ3i-6qb7<%X7!_BK!H-$Bdn4 zn)L1A3mZ8lqy!D7LFVdQ&MBb@0FKpHt^fc4 literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ua.png b/dashboard/img/flags/ua.png new file mode 100755 index 0000000000000000000000000000000000000000..80301f4610064c2a80e47b86599c7bafdeb2b0e8 GIT binary patch literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?$P6SGq{_DgDYgKg5Lc_xBR}toZ8~#y8&E{Z q)5S4_<9c#}g5;n7|NrxQvM@Y+p}xB_DbW}x%i!ti=d#Wzp$PyB@EY0x literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ug.png b/dashboard/img/flags/ug.png new file mode 100755 index 0000000000000000000000000000000000000000..fec8a452195a87927fd2b98e3692f0ec3f789cf2 GIT binary patch literal 247 zcmV#N3KBM&AYfr( zxpL_W(6N=3mC-(KbL=&MT%aIz(tdt^{>AebYinv78ye@AVOO&m&&gOZH`rtyf z^cxH69I?fQgE;CTLc}s8AYaw2+e@NMHA7qR#fF3uW7F7fN~u}iznM&#ah*X~mov3& z>R!A0ZrfrR0)uD?t(Ro|r?=DcHf(1ZpC!HG!9<7c=deU2XayFi`Yfjz71QWreB}n%K7I&G z|7f!Vt9sS4^~t;+=AyMv0000P)Dh~CWPShs?f%^x5UGH& z!{*7m$v_~ZfBg9I^XHGQI-ezdx^vrAH_UdL-0uJS)st`Ez5!+B12!{QtRM#gHNSuN zX2I07&GUU0wh8T-E4Z>pa7mB)(pg!rUp)iL&fR>kf5lBQ5Xfj?_yWUWeuwh@g@QM? zh#XxcG`mH1!Iad?7miUOtPky)w4_gK!z7`NllXVf5!^D*Y3_vB&!0X3r8XUYx_s9| zG7!k<*RNmRx^Zq|tM9s5ZgW~>R!&rz-Q)B1%cqwwo>3asKmbe+@87+cKRJHhq~zTj zn{VGZckB8&h?I5O9-!%DAVj(brjy5y?g7IWn680ok(ybC`ni!j&k_|NWJVD&h`fYF xY~rI;Sd*8DiOT3S3~TZVOkxXFn%6Q^2LQ~m_EG=cYWDyD002ovPDHLkV1g@8$Q1wp literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/uz.png b/dashboard/img/flags/uz.png new file mode 100755 index 0000000000000000000000000000000000000000..37688d883a7fa8b358912db6623a322a6781e2cd GIT binary patch literal 304 zcmV-00nh%4P)oIu>2H`#&~umf72}(lo`$9I3^7|L=YJ=Ks#eum3x2I`Lm-$zBx2*+;JaXPUL` zfA--k5I&Tqn*&?V-TD9i=db@4z@= zXPv$6e-<#r7{MV44Z$OH4ne2QC;o##?7j=&s8m_LA54n?(|kb~LlgF21gk-(X^Iz>wrwBGnBo5*2cr%g zb>OH22{|yY)ot5g#td>>t^N;YJnFzv2aYL{DE#rjs5!}QJ5|Og5IaI=DpwfF*wcdC zZz+njK~e#Db^{5#hL+J*Ma;`>FgP`vo@IS=B(7n&=kx!oe!y=>TeI$3 S0gA8y0000uu5 literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/vc.png b/dashboard/img/flags/vc.png new file mode 100755 index 0000000000000000000000000000000000000000..55018b1437b05d334c7f577064a46d380cd20df1 GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&Qd>M-978;gCnsoFwROG{d-`{$ zhMUT&+j(aV^clIOOskGa{QWoQO1{Kz^BLZzi?g@gUSqLJMNdO|+&msdGjek&G|%ef?}#dkax`I(3^~{P{+u_bUJsj+Lh~=ly>;!P0vDI? lR95@_(hWK!u}oE-;o8g;hBtTY0)Xyk@O1TaS?83{1OTaGRp|f# literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/ve.png b/dashboard/img/flags/ve.png new file mode 100755 index 0000000000000000000000000000000000000000..4c8b135ab72f5619799515537417d538fbcb1acf GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!3-qVmezg)QceLrA+EDzd>D*Zb6KzBv)dr( zxKY??qqys4d7rIXp*yuhcbdfRamzmBm3P>;@JMvc$+Xt98Et3lXI`DP?%twVUgt%$ zzh4x8f7jtK&@{%9Aiv;;(_eFS06D>)E{-7;x6YpQ`F22WQ%mvv4FO#t&RSCs$& literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/vn.png b/dashboard/img/flags/vn.png new file mode 100755 index 0000000000000000000000000000000000000000..e9edf37ff74e8e0c505323b14fdfe6b053cb95eb GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!3-qVmezg)Qpo{6A+F~H)y|8lo)=TQAg*>n zTJ<6j$*NvbQoXFKaz$O`w!7jTU&RM83Xjv}pXAFw&6j)ABlD(L=FJ4@Hxp#uPL_T* zRr=Fv$s7@bv8cHp;jvp{n$sm?c9?^^-rUZ`??BKZlLWqZA$u>S=8DXF z)avKW6L>@Twey}89aAeF=9!$`vU7s!vafrtsZ1!9jJW0~_E6-ZJl~t`Y>nIgU%Cji OkHOQ`&t;ucLK6Vw3vP1& literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/vu.png b/dashboard/img/flags/vu.png new file mode 100755 index 0000000000000000000000000000000000000000..b2214473b5e37de6681e08a29514521a49531def GIT binary patch literal 540 zcmV+%0^|LOP)y7aMS8ls3$2cs?>6r@8GMVUwz6xqQ(vAlML@f`Zpz&nyhD?8A7t(c*>UzIkcdt*I_=g4>G&Db z;KUKWW|$r&xdjt(w5Vj(s}IVtoRCF-H}kWkhpDN=7P7}G%X-^`bZ8R5bGUMxZ_juz zNJR`sXeX`MD=(3+qqD_)`^fu}@y9QRLzV!dKEr2O$Z~gpSP8{K@3Z5t*JJ{4!{S5Q z>u5An_4?#>=T3i!rKsJ`SW-Rjgsjn9QdRAzX z^)}^hZmi6wDgWXzTT1?Z=Qt*ZHgS7Dqb)hJGD572)obH_-yo(&TRAtH zR9!x-K1TIz5`bSY4WniZ|E(lZ= eb1tb?h2sZuSqxYMaMM5l00009%!w2d%J<7 zzsZ|PEk&6vrp;)UsZUHHQ%3{Ot|%Uttb>yqISz>xzFoBTsL!)r$+yupT+WKN4^d@rz@y>F&e&lG@&6If- z(qJ>sB;MWh{fn&vlhKR0bH6NJ#w@s&OTf#dKguTS0HIYh5|jAOoPVBMwktk!GckzREc52=H=t@BnI7U1Q5k*Xwp)q@(?~KGWHkQb ti44agjCP{7V-ZGE-LY7Vrj}#j2mpEBtIDSf%hCV<002ovPDHLkV1ht=ft~;W literal 0 HcmV?d00001 diff --git a/dashboard/img/flags/zm.png b/dashboard/img/flags/zm.png new file mode 100755 index 0000000000000000000000000000000000000000..a8b574959d2e8592766cd5e39943b8b5e8c1e6c5 GIT binary patch literal 248 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 P{`+;-|5qg7Y2kkW3Rn(h literal 0 HcmV?d00001 diff --git a/dashboard/img/radio-waves-hi.png b/dashboard/img/radio-waves-hi.png new file mode 100755 index 0000000000000000000000000000000000000000..8befa19de905aeeef1af4b61e468ef9b5d41ed5f GIT binary patch literal 3953 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 LNkvXXu0mjfjDdRX literal 0 HcmV?d00001 diff --git a/dashboard/img/sat.png b/dashboard/img/sat.png new file mode 100755 index 0000000000000000000000000000000000000000..c672ce3dc012a417362bf9b0bbca459c0febdbe5 GIT binary patch literal 3239 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. +// ---------------------------------------------------------------------------- + +$FILE = "/var/log/xlxd.xml"; + +require_once("./pgs/functions.php"); +if (!class_exists('ParseXML')) require_once("./pgs/class.parsexml.php"); +if (!class_exists('Node')) require_once("./pgs/class.node.php"); +if (!class_exists('xReflector')) require_once("./pgs/class.reflector.php"); +if (!class_exists('Station')) require_once("./pgs/class.station.php"); + + + +//if (!isset($_GET['show'])) { $_GET['show'] == ''; } + +if (!@file_exists($FILE) && (!@is_readable($FILE))) die("xlxd.xml does not exist or is not readable"); + +$handle = fopen($FILE, 'r'); +$FILECONTENT = fread($handle, filesize($FILE)); +fclose($handle); + + + +$XML = new ParseXML(); +$Reflector = new xReflector(); +$Reflector->SetFlagFile("./pgs/country.csv"); + +$ServiceName = substr($FILECONTENT, strpos($FILECONTENT, "GetElement($FILECONTENT, $LinkedNodesName); +$tmpNodes = $XML->GetAllElements($AllNodesString, "NODE"); + +for ($i=0;$iGetElement($tmpNodes[$i], 'Callsign'), $XML->GetElement($tmpNodes[$i], 'IP'), $XML->GetElement($tmpNodes[$i], 'LinkedModule'), $XML->GetElement($tmpNodes[$i], 'Protocol'), $XML->GetElement($tmpNodes[$i], 'ConnectTime'), $XML->GetElement($tmpNodes[$i], 'LastHeardTime')); + $Reflector->AddNode($Node); +} + +$AllStationsString = $XML->GetElement($FILECONTENT, $LinkedUsersName); +$tmpStations = $XML->GetAllElements($AllStationsString, "STATION"); + +for ($i=0;$iGetElement($tmpStations[$i], 'Callsign'), $XML->GetElement($tmpStations[$i], 'Via'), $XML->GetElement($tmpStations[$i], 'LastHeardTime')); + $Reflector->AddStation($Station, false); +} + + +?> + + + + XLX Reflector Dashboard + + + + + +
XLX Multiprotocol Gateway Reflector
+ +
+ + + + diff --git a/dashboard/log/xlxlog.php b/dashboard/log/xlxlog.php new file mode 100755 index 0000000..1b42608 --- /dev/null +++ b/dashboard/log/xlxlog.php @@ -0,0 +1,103 @@ +. +// ---------------------------------------------------------------------------- +session_start(); + +if (isset($_POST['password'])) { + $_SESSION['password'] = $_POST['password']; +} + +if (isset($_SESSION['password'])) { + + if ($_SESSION['password'] != "-D-Star+") { + echo ' +
+ + + + +
'; + + die(); + } +} +else { + echo ' +
+ + + + +
'; + + die(); +} + + +?> + + + + + XLX Live Log + + + + +
+
+
+   
+ + diff --git a/dashboard/pgs/class.node.php b/dashboard/pgs/class.node.php new file mode 100755 index 0000000..908e733 --- /dev/null +++ b/dashboard/pgs/class.node.php @@ -0,0 +1,67 @@ +. +// ---------------------------------------------------------------------------- + +class Node { + + private $Callsign; + private $IP; + private $LinkedModule; + private $Protocol; + private $ConnectTime; + private $LastHeardTime; + private $Suffix; + + public function __construct($Callsign, $IP, $LinkedModule, $Protocol, $ConnectTime, $LastHeardTime) { + + $this->IP = $IP; + + $this->Protocol = $Protocol; + $this->ConnectTime = ParseTime($ConnectTime); + $this->LastHeardTime = ParseTime($LastHeardTime); + + if (strpos($Callsign, " ") !== false) { + $this->Callsign = trim(substr($Callsign, 0, strpos($Callsign, " "))); + $this->Suffix = trim(substr($Callsign, strpos($Callsign, " "), strlen($Callsign))); + } + else { + $this->Callsign = trim($Callsign); + $this->Suffix = ""; + } + + + $this->LinkedModule = trim($LinkedModule); + } + + + public function GetCallsign() { return $this->Callsign; } + public function GetIP() { return $this->IP; } + public function GetLinkedModule() { return $this->LinkedModule; } + public function GetProtocol() { return $this->Protocol; } + public function GetConnectTime() { return $this->ConnectTime; } + public function GetLastHeardTime() { return $this->LastHeardTime; } + public function GetSuffix() { return $this->Suffix; } + +} + +?> diff --git a/dashboard/pgs/class.parsexml.php b/dashboard/pgs/class.parsexml.php new file mode 100755 index 0000000..e948746 --- /dev/null +++ b/dashboard/pgs/class.parsexml.php @@ -0,0 +1,54 @@ +. +// ---------------------------------------------------------------------------- + +class ParseXML { + + public function __construct() { + return true; + } + + public function GetElement($InputString, $ElementName) { + if (strpos($InputString, "<".$ElementName.">") === false) return false; + if (strpos($InputString, "") === false) return false; + + $Element = substr($InputString, strpos($InputString, "<".$ElementName.">")+strlen($ElementName)+2, strpos($InputString, "")-strpos($InputString, "<".$ElementName.">")-strlen($ElementName)-2); + return $Element; + + } + + public function GetAllElements($InputString, $ElementName) { + $Elements = array(); + while (strpos($InputString, $ElementName) !== false) { + $Elements[] = $this->GetElement($InputString, $ElementName); + $InputString = substr($InputString, strpos($InputString, "")+strlen($ElementName)+3, strlen($InputString)); + } + return $Elements; + } + + +} + + + +?> diff --git a/dashboard/pgs/class.reflector.php b/dashboard/pgs/class.reflector.php new file mode 100755 index 0000000..928f264 --- /dev/null +++ b/dashboard/pgs/class.reflector.php @@ -0,0 +1,210 @@ +. +// ---------------------------------------------------------------------------- + +class xReflector { + + public $Nodes = null; + public $Stations = null; + private $Flagarray = null; + private $Flagfile = null; + + public function __construct() { + $this->Nodes = array(); + $this->Stations = array(); + } + + public function SetFlagFile($Flagfile) { + if (file_exists($Flagfile) && (is_readable($Flagfile))) { + $this->Flagfile = $Flagfile; + return true; + } + return false; + } + + public function LoadFlags() { + if ($this->Flagfile != null) { + $this->Flagarray = array(); + $handle = fopen($this->Flagfile,"r"); + if ($handle) { + $i = 0; + while(!feof($handle)) { + $row = fgets($handle,1024); + $tmp = explode(";", $row); + + if (isset($tmp[0])) { $this->Flagarray[$i]['Country'] = $tmp[0]; } else { $this->Flagarray[$i]['Country'] = 'Undefined'; } + if (isset($tmp[1])) { $this->Flagarray[$i]['ISO'] = $tmp[1]; } else { $this->Flagarray[$i]['ISO'] = "Undefined"; } + $this->Flagarray[$i]['DXCC'] = array(); + if (isset($tmp[2])) { + $tmp2 = explode("-", $tmp[2]); + for ($j=0;$jFlagarray[$i]['DXCC'][] = $tmp2[$j]; + } + } + $i++; + } + fclose($handle); + } + return true; + } + return false; + } + + public function AddNode($NodeObject) { + if (is_object($NodeObject)) { + $this->Nodes[] = $NodeObject; + } + } + + public function NodeCount() { + return count($this->Nodes); + } + + public function GetNode($ArrayIndex) { + if (isset($this->Nodes[$ArrayIndex])) { + return $this->Nodes[$ArrayIndex]; + } + return false; + } + + public function AddStation($StationObject, $AllowDouble = false) { + if (is_object($StationObject)) { + + if ($AllowDouble) { + $this->Stations[] = $StationObject; + } + else { + $FoundStationInList = false; + $i = 0; + + $tmp = explode(" ", $StationObject->GetCallsign()); + $RealCallsign = trim($tmp[0]); + + while (!$FoundStationInList && $i<$this->StationCount()) { + if ($this->Stations[$i]->GetCallsignOnly() == $RealCallsign) { + $FoundStationInList = true; + } + $i++; + } + + if (!$FoundStationInList) { + $this->Stations[] = $StationObject; + } + + } + } + } + + public function GetSuffixOfRepeater($Repeater) { + $suffix = ""; + $found = false; + $i = 0; + while (!$found && $i < $this->NodeCount()) { + + if (strpos($this->Nodes[$i]->GetCallSign(), $Repeater) !== false) { + + + $suffix = $this->Nodes[$i]->GetSuffix(); + $found = true; + } + $i++; + } + return $suffix; + } + + public function StationCount() { + return count($this->Stations); + } + + public function GetStation($ArrayIndex) { + if (isset($this->Stations[$ArrayIndex])) { + return $this->Stations[$ArrayIndex]; + } + return false; + } + + public function GetFlag($Callsign) { + $Image = ""; + $FoundFlag = false; + $Letters = 2; + while (($Letters < 5) && (!$FoundFlag)) { + $j = 0; + $Prefix = substr($Callsign, 0, $Letters); + while (($j < count($this->Flagarray)) && (!$FoundFlag)) { + + $z = 0; + while (($z < count($this->Flagarray[$j]['DXCC'])) && (!$FoundFlag)) { + if (trim($Prefix) == trim($this->Flagarray[$j]['DXCC'][$z])) { + $Image = $this->Flagarray[$j]['ISO']; + $FoundFlag = true; + } + $z++; + } + $j++; + } + $Letters++; + } + + if (!$FoundFlag) { + $Prefix = substr($Callsign, 0, 1); + if ($Prefix == 'N') { $Image = "us"; } + if ($Prefix == 'K') { $Image = "us"; } + if ($Prefix == 'W') { $Image = "us"; } + if ($Prefix == 'G') { $Image = "gb"; } + if ($Prefix == 'R') { $Image = "ru"; } + if ($Prefix == 'F') { $Image = "fr"; } + } + return strtolower($Image); + } + + public function GetModules() { + $out = array(); + for ($i=0;$i<$this->NodeCount();$i++) { + $Found = false; + $b = 0; + while ($b < count($out) && !$Found) { + if ($out[$b] == $this->Nodes[$i]->GetLinkedModule()) { + $Found = true; + } + $b++; + } + if (!$Found && (trim($this->Nodes[$i]->GetLinkedModule()) != "")) { + $out[] = $this->Nodes[$i]->GetLinkedModule(); + } + } + return $out; + } + + public function GetCallSignsInModules($Module) { + $out = array(); + for ($i=0;$i<$this->NodeCount();$i++) { + if ($this->Nodes[$i]->GetLinkedModule() == $Module) { + $out[] = $this->Nodes[$i]->GetCallsign(); + } + } + return $out; + } + +} + +?> diff --git a/dashboard/pgs/class.station.php b/dashboard/pgs/class.station.php new file mode 100755 index 0000000..0aa3ed5 --- /dev/null +++ b/dashboard/pgs/class.station.php @@ -0,0 +1,56 @@ +. +// ---------------------------------------------------------------------------- + +class Station { + + private $Callsign; + private $Via; + private $LastHeardTime; + private $Suffix; + private $CallsignOnly; + + public function __construct($Callsign, $Via, $LastHeardTime) { + $this->Callsign = trim($Callsign); + $this->Via = trim($Via); + $this->LastHeardTime = ParseTime($LastHeardTime); + if (strpos($Callsign, " / ") !== false) { + $this->Suffix = trim(substr($Callsign, strpos($Callsign, " / ")+3, strlen($Callsign))); + } + else { + $this->Suffix = ""; + } + + $tmp = explode(" ", $Callsign); + $this->CallsignOnly = $tmp[0]; + } + + public function GetCallsign() { return $this->Callsign; } + public function GetVIA() { return $this->Via; } + public function GetLastHeardTime() { return $this->LastHeardTime; } + public function GetSuffix() { return $this->Suffix; } + public function GetCallsignOnly() { return $this->CallsignOnly; } + +} + +?> diff --git a/dashboard/pgs/country.csv b/dashboard/pgs/country.csv new file mode 100755 index 0000000..5b3766a --- /dev/null +++ b/dashboard/pgs/country.csv @@ -0,0 +1,249 @@ +Afghanistan;AF;YA-T6 +Åland Islands;AX;OH0 +Albania;AL;ZA +Algeria;DZ;7T-7U-7V-7W-7X-7Y +American Samoa;AS;KH8 +Andorra;AD;C3 +Angola;AO;D2-D3 +Anguilla;AI;VP2E +Antarctica;AQ;CE9-KC4 +Antigua and Barbuda;AG;V2 +Argentina;AR;LO-LP-LQ-LR-LS-LT-LU-LV-LW +Armenia;AM;EK +Aruba;AW;P4 +Australia;AU;VK-AX +Austria;AT;OE +Azerbaijan;AZ;4J-4K +Bahamas;BS;C6 +Bahrain;BH;A9 +Bangladesh;BD;S2 +Barbados;BB;8P +Belarus;BY;EU-EV-EW +Belgium;BE;ON +Belize;BZ;V3 +Benin;BJ;TY +Bermuda;BM;VP9 +Bhutan;BT;A5 +Bolivia, Plurinational State of;BO;CP +Bonaire, Sint Eustatius and Saba;BQ;PJ4 +Bosnia and Herzegovina;BA;E7 +Botswana;BW;A2 +Bouvet Island;BV;3Y +Brazil;BR;PP-PQ-PR-PS-PT-PU-PV-PW-PX-PY-ZV-ZW-ZX-ZY-ZZ +British Indian Ocean Territory;IO;VP2V +Brunei Darussalam;BN;V8 +Bulgaria;BG;LZ +Burkina Faso;BF;XT +Burundi;BI;9U +Cambodia;KH;XU +Cameroon;CM;TJ +Canada;CA;VA-VB-VC-VD-VE-VF-VG +Cape Verde;CV;D4 +Cayman Islands;KY;ZF +Central African Republic;CF;TL +Chad;TD;TT +Chile;CL;CA-CB-CC-CD-CE +China;CN;BY +Christmas Island;CX;VK9X +Cocos (Keeling) Islands;CC;VK9C +Colombia;CO;HJ-HK-5J-5K +Comoros;KM;D6 +Congo;CG;TN +Congo, the Democratic Republic of the;CD;9Q-9R-9S-9T +Cook Islands;CK;E5 +Costa Rica;CR;TI-TE +Côte d'Ivoire;CI;TU +Croatia;HR;9A +Cuba;CU;CO-CM +Curaçao;CW;PJ2 +Cyprus;CY;5B-C4-P3 +Czech Republic;CZ;OK-OL +Denmark;DK;OU-OV-OW-OZ +Djibouti;DJ;J2 +Dominica;DM;J7 +Dominican Republic;DO;HI +Ecuador;EC;HC-HD +Egypt;EG;SU +El Salvador;SV;YS-HU +Equatorial Guinea;GQ;3C +Eritrea;ER;E3 +Estonia;EE;ES +Ethiopia;ET;ET +Falkland Islands (Malvinas);FK;VP8 +Faroe Islands;FO;OY +Fiji;FJ;3D2 +Finland;FI;OF-OG-OH-OI +France;FR;F +French Guiana;GF;FY +French Polynesia;PF;FO-TX +French Southern Territories;TF;TK +Gabon;GA;TR +Gambia;GM;C5 +Georgia;GE;4L +Germany;DE;DA-DB-DC-DD-DE-DF-DG-DH-DI-DJ-DK-DL-DM-DN-DO-DP-DQ-DR +Ghana;GH;9G +Gibraltar;GI;ZB2 +Greece;GR;SV-SW-SX-SY-SZ-J4 +Greenland;GL;OX +Grenada;GD;J3 +Guadeloupe;GP;FG-TO +Guam;GU;KH2 +Guatemala;GT;TG-TD +Guernsey;GG;GU-GP +Guinea;GN;3X +Guinea-Bissau;GW;J5 +Guyana;GY;8R +Haiti;HT;HH +Heard Island and McDonald Islands;HM;VK0 +Holy See (Vatican City State);VA;HV +Honduras;HN;HQ-HR +Hong Kong;HK;VR +Hungary;HU;HA-HG +Iceland;IS;TF +India;IN;VU +Indonesia;ID;YB-YC-YD-YE-YF-YG-YH +Iran, Islamic Republic of;IR;EP-EQ +Iraq;IQ;YI +Ireland;IE;EI-EJ +Isle of Man;IM;GD-GT +Israel;IL;4X-4Z +Italy;IT;I +Jamaica;JM;6Y +Japan;JP;JA-JB-JC-JD-JE-JF-JG-JH-JI-JJ-JK-JL-JM-JN-JO-JP-JQ-JR-JS-7J-7K-7L-7M-7N +Jersey;JE;GJ-GH +Jordan;JO;JY +Kazakhstan;KZ;UN-UO-UP-UQ +Kenya;KE;5Y-5Z +Kiribati;KI;T30 +Korea, Democratic People's Republic of;KP;P5 +Korea, Republic of;KR;HL-6K-6L-6M-6N +Kuwait;KW;9K +Kyrgyzstan;KG;EX +Lao People's Democratic Republic;LA;XW +Latvia;LV;YL +Lebanon;LB;OD +Lesotho;LS;7P +Liberia;LR;EL +Libya;LY;5A +Liechtenstein;LI;HB0 +Lithuania;LT;LY +Luxembourg;LU;LX +Macao;MO;XX9 +Macedonia, the Former Yugoslav Republic of;MK;Z3 +Madagascar;MG;5R +Malawi;MW;7Q +Malaysia;MY;9M +Maldives;MV;8Q +Mali;ML;TZ +Malta;MT;9H +Marshall Islands;MH;V7 +Martinique;MQ;FM-TO +Mauritania;MR;5T +Mauritius;MU;3B8 +Mayotte;YT;FH-FO +Mexico;MX;XA-XB-XC-XD-XE-XF-XG-XH-XI +Micronesia, Federated States of;FM;V6 +Moldova, Republic of;MD;ER +Monaco;MC;3A +Mongolia;MN;JT-JU-JV +Montenegro;ME;4O +Montserrat;MS;VP2M +Morocco;MA;CN +Mozambique;MZ;C8-C9 +Myanmar;MM;XY-XZ +Namibia;NA;V5 +Nauru;NR;C2 +Nepal;NP;9N +Netherlands;NL;PA-PB-PC-PD-PE-PF-PG-PH-PI +New Caledonia;NC;FK-TX +New Zealand;NZ;ZL-ZM +Nicaragua;NI;YN-H6-H7-HT +Niger;NE;5U +Nigeria;NG;5N +Niue;NU;ZK2 +Norfolk Island;NF;VK9N +Northern Mariana Islands;MP;KH0 +Norway;NO;LA-LB-LC-LD-LE-LF-LG-LH-LI-LJ-LK-LL-LM-LN +Oman;OM;YO-YP-YQ-YR +Pakistan;PK;AP +Palau;PW;T8 +Palestine, State of;PS;E4 +Panama;PA;HO-HP +Papua New Guinea;PG;P2 +Paraguay;PY;ZP +Peru;PE;OA-OB-OC +Philippines;PH;DU-DV-DW-DX-DY-DZ-4D-4E-4F-4G-4H-4I +Pitcairn;PN;VP6 +Poland;PL;SN-SO-SP-SQ-SR +Portugal;PT;CT +Puerto Rico;PR;KP3-KP4 +Qatar;QA;A7 +Réunion;RE;FR-TO +Romania;RO;YO-YP-YQ-YR +Russian Federation;RU;UA-UB-UC-UD-UE-UF-UG-UH-UI-RA-RB-RC-RD-RE-RF-RG-RH-RI-RJ-RK-RL-RM-RN-RO-RP-RQ-RR-RS-RT-RT-RU-RV-RW-RX-RY-RZ +Rwanda;RW;9X +Saint Barthélemy;BL;FJ-TO +Saint Helena, Ascension and Tristan da Cunha;SH;ZD9 +Saint Kitts and Nevis;KN;V4 +Saint Lucia;LC;J6 +Saint Martin (French part);MF;FS-TO +Saint Pierre and Miquelon;PM;FP +Saint Vincent and the Grenadines;VC;J8 +Samoa;WS;5W +San Marino;SM;T7 +Sao Tome and Principe;ST;S9 +Saudi Arabia;SA;HZ +Senegal;SN;6V-6W +Serbia;RS;YT-YU +Seychelles;SC;S7 +Sierra Leone;SL;9L +Singapore;SG;9V +Sint Maarten (Dutch part);SX;PJ7 +Slovakia;SK;OM +Slovenia;SI;S5 +Solomon Islands;SB;H4 +Somalia;SO;T5-6O +South Africa;ZA;VP8-LU +South Georgia and the South Sandwich Islands;GS;VP8-LU +South Sudan;SS;ZR-ZS-ZT-ZU +Spain;ES;EA-EB-EC-ED-EE-EF-EG-EH +Sri Lanka;LK;4S +Sudan;SD;ST +Suriname;SR;PZ +Svalbard and Jan Mayen;SJ;JW +Swaziland;SZ;3DA +Sweden;SE;SA-SB-SC-SD-SE-SF-SG-SH-SI-SJ-SK-SL-SM-7S-8S +Switzerland;CH;HB +Syrian Arab Republic;SY;YK +Taiwan, Province of China;TW;BU-BV-BW-BX +Tajikistan;TJ;EY +Tanzania, United Republic of;TZ;5H-5I +Thailand;TH;HS-E2 +Timor-Leste;TL;4W +Togo;TG;5V +Tokelau;TK;ZK3 +Tonga;TO;A3 +Trinidad and Tobago;TT;9Y-9Z +Tunisia;TN;3V +Turkey;TR;TA-TB-TC +Turkmenistan;TM;EZ +Turks and Caicos Islands;TC;VP5 +Tuvalu;TV;T2 +Uganda;UG;5X +Ukraine;UA;UR-US-UT-UU-UV-UW-UX-UY-UZ +United Arab Emirates;AE;A6 +United Kingdom;GB;G-GX-M +United States;US;K-W-N-AA-AB-AC-AD-AE-AF-AG-AH-AI-AJ-AK-NS +United States Minor Outlying Islands;UM; +Uruguay;UY;CV-CW-CX +Uzbekistan;UZ;UJ-UK-UL-UM +Vanuatu;VU;YJ +Venezuela, Bolivarian Republic of;VE;YV-YW-YX-YY-4M +Viet Nam;VN;3W-XV +Virgin Islands, British;VG;VP2V +Virgin Islands, U.S.;VI;KP2 +Wallis and Futuna;WF;FW +Western Sahara;EH;S0 +Yemen;YE;7O +Zambia;ZM;9I-9J +Zimbabwe;ZW;Z2 \ No newline at end of file diff --git a/dashboard/pgs/functions.php b/dashboard/pgs/functions.php new file mode 100755 index 0000000..a3b74a6 --- /dev/null +++ b/dashboard/pgs/functions.php @@ -0,0 +1,75 @@ +. +// ---------------------------------------------------------------------------- + +function GetSystemUptime() { + $out = exec("uptime"); + return substr($out, 0, strpos($out, ",")); +} + +function Debug($message) { + echo '

';
+   print_r($message);
+   echo '


'; +} + +function ParseTime($Input) { + + if (strpos($Input, "<") !== false) { + $Input = substr($Input, 0, strpos($Input, "<")); + } + + // Tuesday Tue Nov 17 14:23:22 2015 + $tmp = explode(" ", $Input); + if (strlen(trim($tmp[3])) == 0) { + unset($tmp[3]); + $tmp = array_values($tmp); + } + + $tmp1 = explode(":", $tmp[4]); + $month = ""; + switch (strtolower($tmp[2])) { + case 'jan' : $month = 1; break; + case 'feb' : $month = 2; break; + case 'mar' : $month = 3; break; + case 'apr' : $month = 4; break; + case 'mai' : $month = 5; break; + case 'jun' : $month = 6; break; + case 'jul' : $month = 7; break; + case 'aug' : $month = 8; break; + case 'sep' : $month = 9; break; + case 'oct' : $month = 10; break; + case 'nov' : $month = 11; break; + case 'dec' : $month = 12; break; + default : $month = 1; + } + return mktime($tmp1[0], $tmp1[1], $tmp1[2], $month, $tmp[3], $tmp[5]); + +} + +function FormatSeconds($seconds) { + $seconds = abs($seconds); + return sprintf("%d days %02d:%02d:%02d", $seconds/60/60/24,($seconds/60/60)%24,($seconds/60)%60,$seconds%60); +} + +?> diff --git a/dashboard/pgs/liveccs.php b/dashboard/pgs/liveccs.php new file mode 100755 index 0000000..518e73d --- /dev/null +++ b/dashboard/pgs/liveccs.php @@ -0,0 +1,27 @@ +. +// ---------------------------------------------------------------------------- +?> +
+ +
diff --git a/dashboard/pgs/liveircddb.php b/dashboard/pgs/liveircddb.php new file mode 100755 index 0000000..2afb057 --- /dev/null +++ b/dashboard/pgs/liveircddb.php @@ -0,0 +1,27 @@ +. +// ---------------------------------------------------------------------------- +?> +
+ +
diff --git a/dashboard/pgs/repeaters.php b/dashboard/pgs/repeaters.php new file mode 100755 index 0000000..dc6e823 --- /dev/null +++ b/dashboard/pgs/repeaters.php @@ -0,0 +1,79 @@ +. +// ---------------------------------------------------------------------------- +?> + + + + + + + + + + + + +LoadFlags(); + +for ($i=0;$i<$Reflector->NodeCount();$i++) { + + if ($odd == "#FFFFFF") { $odd = "#F1FAFA"; } else { $odd = "#FFFFFF"; } + + echo ' + + + + + + + + + + + '; + if ($i == 41) { $i = $Reflector->NodeCount()+1; } +} + +?> + +
#FlagDV StationBandLast HeardLinked forProtocolModuleIP
'.($i+1).''; + if (file_exists("./img/flags/".$Reflector->GetFlag($Reflector->Nodes[$i]->GetCallSign()).".png")) { + echo ''; + } + echo 'Nodes[$i]->GetSuffix(); + echo '" class="pl" target="_blank">'.$Reflector->Nodes[$i]->GetCallSign(); + if ($Reflector->Nodes[$i]->GetSuffix() != "") { echo '-'.$Reflector->Nodes[$i]->GetSuffix(); } + echo ''; + switch ($Reflector->Nodes[$i]->GetSuffix()) { + case 'A' : echo '23cm'; break; + case 'B' : echo '70cm'; break; + case 'C' : echo '2m'; break; + case 'G' : echo 'Internet-Gateway'; break; + default : echo ''; + } + echo ''.date("d.m.Y H:i", $Reflector->Nodes[$i]->GetLastHeardTime()).''.FormatSeconds(time()-$Reflector->Nodes[$i]->GetConnectTime()).' s'.$Reflector->Nodes[$i]->GetProtocol().''.$Reflector->Nodes[$i]->GetLinkedModule().''.$Reflector->Nodes[$i]->GetIP().'
diff --git a/dashboard/pgs/users.php b/dashboard/pgs/users.php new file mode 100755 index 0000000..2b25646 --- /dev/null +++ b/dashboard/pgs/users.php @@ -0,0 +1,123 @@ +. +// ---------------------------------------------------------------------------- +?> + + + + + +
+ + + + + + + + + + + + +LoadFlags(); +$odd = ""; +for ($i=0;$i<$Reflector->StationCount();$i++) { + if ($odd == "#FFFFFF") { $odd = "#F1FAFA"; } else { $odd = "#FFFFFF"; } + echo ' + + + + + + + + + '; + if ($i == 41) { $i = $Reflector->StationCount()+1; } +} + +?> + +
#FlagCallsignSuffixDPRSViaLast heard
'; + echo ($i==0 ? '' : $i+1); + + + echo ''; + + if (file_exists("./img/flags/".$Reflector->GetFlag($Reflector->Stations[$i]->GetCallSign()).".png")) { + echo ''; + } + echo ''.$Reflector->Stations[$i]->GetCallsignOnly().''.$Reflector->Stations[$i]->GetSuffix().''.$Reflector->Stations[$i]->GetVia().''.date("d.m.Y H:i", $Reflector->Stations[$i]->GetLastHeardTime()).'
+ + +
+ + + + + +'; + +$Modules = $Reflector->GetModules(); +for ($i=0;$i'.$Modules[$i].''; +} + +echo ' + +'; + +for ($i=0;$iGetCallSignsInModules($Modules[$i]); + echo ' + '; +} + +echo ' +'; + +?> +
+ + '; + $odd = ""; + for ($j=0;$j + + '; + } + echo ' +
'.$Users[$j].'-'.$Reflector->GetSuffixOfRepeater($Users[$j]).'
+ +
+ + +
diff --git a/scripts/xlxd b/scripts/xlxd new file mode 100755 index 0000000..c05b89e --- /dev/null +++ b/scripts/xlxd @@ -0,0 +1,75 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: xlxd service +# Processname: xlxd +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: starts the dstar reflector as a linux service +# Description: dstar reflector by LX3JL +# start script by LX1IQ +### END INIT INFO + + +PATH=/sbin:/bin:/usr/sbin:/usr/bin + +. /lib/lsb/init-functions + +NAME="xlxd" +DAEMON="/xlxd/xlxd" +ARGUMENTS="XLX270 158.64.26.132" +PIDFILE="/var/log/xlxd.pid" +USER=root +GROUP=root + +[ -f $DAEMON ] || exit 0 + +start () { + +# start daemon + + echo -n "Starting $NAME: " + start-stop-daemon --start --exec $DAEMON --chuid $USER:$GROUP --background -- $ARGUMENTS + RETVAL=$? + echo + sleep 4 + echo `pidof xlxd` > $PIDFILE + return $RETVAL +} + +stop () { + echo -n "Stopping $NAME: " + start-stop-daemon --stop --pidfile $PIDFILE + RETVAL=$? + echo +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + status) + PIDID=`pidof xlxd` + echo $DAEMON $NAME : + if [ $PIDID -gt 0 ] 2>/dev/null; + then + echo running + else + echo not running + fi + + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 +esac + +exit 0