$mirrors = { 'Africa' => { 'South Africa' => { 'http://ctan.mirror.ac.za/' => 1, 'http://ftp.leg.uct.ac.za/pub/packages/ctan/' => 1, 'http://ftp.sun.ac.za/ftp/CTAN/' => 1 } }, 'Asia' => { 'China' => { 'http://ftp.ctex.org/mirrors/CTAN/' => 1, 'http://mirror.bjtu.edu.cn/CTAN/' => 1, 'http://mirror.neu.edu.cn/CTAN/' => 1, 'http://mirrors.hustunique.com/CTAN/' => 1, 'http://mirrors.stuhome.net/CTAN/' => 1, 'http://mirrors.ustc.edu.cn/CTAN/' => 1 }, 'Hong Kong' => { 'ftp://ftp.comp.hkbu.edu.hk/pub/TeX/CTAN/' => 1 }, 'India' => { 'http://ctan.imsc.res.in/' => 1 }, 'Iran' => { 'http://ctan.asis.io/tex-archive/' => 1, 'http://ctan.yazd.ac.ir/' => 1 }, 'Japan' => { 'ftp://ftp.kddilabs.jp/CTAN/' => 1, 'ftp://ftp.u-aizu.ac.jp/pub/tex/CTAN/' => 1, 'http://ftp.jaist.ac.jp/pub/CTAN/' => 1 }, 'Korea' => { 'http://ftp.kaist.ac.kr/pub/tex-archive/' => 1, 'http://ftp.ktug.org/tex-archive/' => 1, 'http://ftp.neowiz.com/CTAN/' => 1 }, 'Malaysia' => { 'http://ossm.utm.my/tex-archive/' => 1 }, 'Singapore' => { 'http://download.nus.edu.sg/mirror/CTAN/' => 1 }, 'Taiwan' => { 'ftp://ftp.ccu.edu.tw/pub/tex/' => 1, 'http://ftp.yzu.edu.tw/CTAN/' => 1, 'http://shadow.ind.ntou.edu.tw/ctan/' => 1 }, 'Thailand' => { 'http://ctan.megagod.net/tex-archive/' => 1 } }, 'Australasia' => { 'Australia' => { 'http://ctan.unsw.edu.au/' => 1 }, 'New Zealand' => { 'http://mirror.aut.ac.nz/CTAN/' => 1 } }, 'Europe' => { 'Austria' => { 'http://mirror.easyname.at/ctan/' => 1 }, 'Czech Republic' => { 'http://ftp.cvut.cz/tex-archive/' => 1 }, 'Denmark' => { 'http://mirrors.dotsrc.org/ctan/' => 1 }, 'Finland' => { 'ftp://ftp.funet.fi/pub/TeX/CTAN/' => 1 }, 'France' => { 'http://ctan.mines-albi.fr/' => 1, 'http://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/ctan/' => 1, 'http://ftp.oleane.net/pub/CTAN/' => 1, 'http://mirror.ibcp.fr/pub/CTAN/' => 1, 'http://mirrors.ircam.fr/pub/CTAN/' => 1 }, 'Germany' => { 'ftp://ftp.fu-berlin.de/tex/CTAN/' => 1, 'ftp://ftp.rrzn.uni-hannover.de/pub/mirror/tex-archive/' => 1, 'ftp://ftp.tu-chemnitz.de/pub/tex/' => 1, 'http://ctan.sciserv.eu/' => 1, 'http://ctan.space-pro.be/tex-archive/' => 1, 'http://ftp.fau.de/ctan/' => 1, 'http://mirror.physik-pool.tu-berlin.de/tex-archive/' => 1, 'http://mirror.selfnet.de/tex-archive/' => 1, 'http://sunsite.informatik.rwth-aachen.de/ftp/pub/mirror/ctan/' => 1 }, 'Greece' => { 'http://ftp.cc.uoc.gr/mirrors/CTAN/' => 1 }, 'Italy' => { 'http://ctan.mirror.garr.it/mirrors/CTAN/' => 1 }, 'Netherlands' => { 'http://ctan.cs.uu.nl/' => 1, 'http://ftp.snt.utwente.nl/pub/software/tex/' => 1 }, 'Norway' => { 'http://ctan.uib.no/' => 1 }, 'Poland' => { 'ftp://ftp.gust.org.pl/TeX/' => 1, 'ftp://sunsite.icm.edu.pl/pub/CTAN/' => 1, 'http://piotrkosoft.net/pub/mirrors/CTAN/' => 1 }, 'Portugal' => { 'ftp://ftp.di.uminho.pt/pub/ctan/' => 1, 'ftp://ftp.ist.utl.pt/pub/ctan/' => 1, 'http://ftp.eq.uc.pt/software/TeX/' => 1, 'http://mirrors.fe.up.pt/pub/CTAN/' => 1 }, 'Russia' => { 'http://ctan.uni-altai.ru/' => 1, 'http://mirror.macomnet.net/pub/CTAN/' => 1 }, 'Slovenia' => { 'http://ctan.ijs.si/tex-archive/' => 1 }, 'Spain' => { 'http://osl.ugr.es/CTAN/' => 1 }, 'Switzerland' => { 'http://mirror.switch.ch/ftp/mirror/tex/' => 1, 'http://www.pirbot.com/mirrors/ctan/' => 1 }, 'UK' => { 'http://anorien.csc.warwick.ac.uk/mirrors/CTAN/' => 1 } }, 'North America' => { 'Canada' => { 'http://ctan.math.ca/tex-archive/' => 1, 'http://ctan.mirror.rafal.ca/' => 1, 'http://mirror.its.dal.ca/ctan/' => 1 }, 'Costa Rica' => { 'http://mirrors.ucr.ac.cr/CTAN/' => 1 }, 'USA' => { 'http://ctan.mackichan.com/' => 1, 'http://ctan.math.washington.edu/tex-archive/' => 1, 'http://ctan.mirrorcatalogs.com/' => 1, 'http://ctan.mirrors.hoobly.com/' => 1, 'http://ctan.sharelatex.com/tex-archive/' => 1, 'http://get-software.net/' => 1, 'http://mirror.hmc.edu/ctan/' => 1, 'http://mirror.jmu.edu/pub/CTAN/' => 1, 'http://mirror.math.ku.edu/tex-archive/' => 1, 'http://mirror.unl.edu/ctan/' => 1, 'http://mirror.utexas.edu/ctan/' => 1, 'http://mirrors.concertpass.com/tex-archive/' => 1, 'http://mirrors.ibiblio.org/pub/mirrors/CTAN/' => 1, 'http://mirrors.rit.edu/CTAN/' => 1 } }, 'South America' => { 'Brazil' => { 'http://linorg.usp.br/CTAN/' => 1, 'http://repositorios.cpai.unb.br/ctan/' => 1 } } };