File Coverage

blib/lib/Lingua/Flags.pm
Criterion Covered Total %
statement 20 20 100.0
branch 4 4 100.0
condition n/a
subroutine 6 6 100.0
pod 2 2 100.0
total 32 32 100.0


line stmt bran cond sub pod time code
1             package Lingua::Flags;
2              
3 1     1   18917 use base 'Exporter';
  1         2  
  1         78  
4 1     1   688 use MIME::Base64;
  1         659  
  1         61  
5 1     1   6 use warnings;
  1         5  
  1         24  
6 1     1   4 use strict;
  1         2  
  1         371  
7              
8             our @EXPORT = qw.as_html_img as_gif.;
9              
10             =head1 NAME
11              
12             Lingua::Flags - Provide small flag icons
13              
14             =cut
15              
16             our $VERSION = '0.07';
17              
18             =head1 SYNOPSIS
19              
20             Provides small flag icons in different formats.
21              
22             use Lingua::Flags;
23              
24             my $foo = as_html_img("PT");
25             print "

This is in $foo language

";
26            
27             open GIF, ">image.gif";
28             print GIF as_gif("PT");
29             close GIF;
30              
31             =head1 DISCLAIMER
32              
33             It is impossible to map flags to languages. Languages cross
34             countries. And countries cross languages. What language should use the
35             Spanish flag? The Catalan or Castilian or other? What flag should be
36             used for Afrikaans? South Africa or Namibia?
37              
38             I tried to choose the more consensual flags, but in some cases I have
39             doubts. If you have better ideas, please correct me.
40              
41             Nevertheless, I think this module is useful.
42              
43             =head1 DESCRIPTION
44              
45             Module with small flags icons. You can get them in base64 inline HTML
46             image or as a gif image.
47              
48             =cut
49              
50             our %FLAGS = (
51             # Portugues
52             PT => q{R0lGODlhFAANAPU7AACHNwCINgCINwCJNwSINQaLNQmJNA+PMxGPMyKXLiWQKzqhKDuhKVefIUyiIne6GpQ3F5Q4FpQ4F5lBFaBoDrVmEf4AAP8AAP0FAPsLAP4ZAP4eAPskAPgxAPE8Ff09GcZbGMBlCsp3B8R1FtxuC+pMAOxVAPVOAPlAAPxJAPteAPNZMulwAPtgAPNiI/hkWe9/a4OGFoS6FKKoEp/LEOeBAfGUAPChAL3F4N2zu/aqj+a9vwAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUAA0AAAZjwIBwOIhcjsjkcUg0Kp/MAEAAeUKHgMMixMFYkVhFjFJCmTLfixBgkJFesA+rk14naKMcbtVS1aUIDxU6Oy42KX8AAA4zIB41Nxp/UgQMDSInG2lqWAAFExabnEwDEqKjTadBADs=},
53             # Espanhol
54             ES => q{R0lGODlhFAANAPUuAP8AAP8vAP8wAP8xAOppDO5qFfhmIuRxU+l5kdSKHN2WLt+YLueFDP2DDf+TD+CDNuiPNP+dPOm+GPW8BvuGWemvbtHCAN3GAN3HOezAEODRAOTZBuzWAebTH+3THfLYEPPcF//BJvnSMu/jG/vuAvjsBf3uAP7uAP/uAPX3APf5Av/4AP78AP/+AP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUAA0AAAZYQIBwSCwaj0hiYMlsOp2oKMpUIp2k2Kxr6/IoEhuueMxVTQiQUYrMbokaBkQFxCavIo7HgRJq1cUsGB8FDAsdf1tRJxYcEhkXGlmSTAMCA5cCT05JnJ2cQQA7},
55             # Frances
56             FR => q{R0lGODlhFAANAPIHAAc9mAxBmmGEvf8AAP9aWv7+/v/+/v///yH5BAAAAAAALAAAAAAUAA0AAAM4GKogdfAYMqpdzEVJbcVB80ST92HiVppgSnZeq73mII/QGqNzDl88HKd2U/1OC5ePGDQyk72hKQEAOw==},
57             # Italiano
58             IT => q{R0lGODlhFAANAPIHAACFMwCIN1qyff8AAP9aWv7+/v/+/v///yH5BAAAAAAALAAAAAAUAA0AAAM4GKogdfAYMqpdzEVJbcVB80ST92HiVppgSnZeq73mII/QGqNzDl88HKd2U/1OC5ePGDQyk72hKQEAOw==},
59             # Esperanto
60             EO => q{R0lGODlhFAANAPQAAACXAACYAACZAAGZAS2qLUa1RlK5UnLGcnbIdn/Mf4DMgIrQio/Sj5XUlaTapKXbpabbpq3ercfox97y3uf15/D58PX79fn8+fv9+/3+/f7+/v///wAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUAA0AAAVA4LZpmOgMQqquqVhFJsrOmXQQy/TI86pRBQDCsuuxNhZGw7E5GVei0mUD4T0T2IQiYXiuAOBwwEsum8/otJoVAgA7},
61             # Danish
62             DA => q{R0lGODlhFAAPAPIHAP8AAP8QEP+YmP+fn//Q0P/W1v/s7P///yH5BAAAAAAALAAAAAAUAA8AAAM0CLpysjDG9qRl7mqqL+/StwkkWRxFqapH674wvAqnMcxqeBABOO09H4YnHAaLDWIRkDxaEgA7},
63             # Romanian
64             RO => q{R0lGODlhFAANAPIHAAc9nAxBmmGEY/8AAP9aAP7+AP/+AP//ACH5BAAAAAAALAAAAAAUAA0AAAM4GKogdfAYMqpdzEVJbcVB80ST92HiVppgSnZeq73mII/QGqNzDl88HKd2U/1OC5ePGDQyk72hKQEAOw==},
65             # Dutch
66             NL => q{R0lGODlhFAANAPIFAAtAmQxBmv8AAKm72/+kpP///wAAAAAAACH5BAAAAAAALAAAAAAUAA0AAAMmKLrc/jDKSRW5OGtduv9gKI5kCQ5oqq5r4L5wHAN0bd+3rO98nwAAOw==},
67             # English
68             EN => q{R0lGODlhFAANAPeSAAc/mgg+mAg/mQk/mQhAmghAmwlAmgpAmQtAmQpAmgtDnAxBmg1Cmg5Cmw1FnRFFnBFFnRFGnRJHnRFInxFJnxNInhVInR1MnhpMoClRnzVTnTpWniFPoCJQoS1cqS9dqjVirDdkrTpnrz5qsUhZnFdcmURdoVlgnUFssUZwtGZdlXhklWZooGaKwmyPxP8AAP8PD/8vL/8wMP8yMdBpev9NTf9OTv9SUv9TUv9TU/9UU/9VU/9UVP9VVO51evdwc4Jmk4RolJJjipRymZR4n6Jxkqhzk75zirJ8l8J2jMN2jMx6jOJ9h+1+g/d9gJOq0pWs05Wt1J2y1p2z15+x1KCy1aa316O52qW42aa42Ka726i52Km52Km52au72qy82q292rK10bS20a/B3rrD3LrH4PCAhfWcn/2dneWYofafoeihqfaipf+npvutrvytrfuvsPy/v/++vMa/08bB1sbE2dPM29XK2dri8N3k8e3Eye7Gy+jP1+nO1u3P1eTU3uXW3+vU2urX3/bFyPTIy/rBwf/CwPzMzP/MzP/Ozv/V1P/X1/zf4Pzh4/zs7f/z8v/29v/9/P/9/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUAA0AAAj4AH8MuuIhwAEEEcTMmCEmAgIEADoEaSJHBY02dlpYCPBAIcMHAiqUUPIG0JQCGYT4KAQGhYQwC8NMMIGEDZ8nIBYsSOCAxBE0gqLUWThnyBo9VEQwGLCgS5ctWMoQWiTJUQwZjBBBwuPFyhanPcL20MEjx40aMGDY4HEDxw6xPV7InUu3bl24O3Dc4GEjbY29PN6KdbrFypc8jxI1khHDUSRFfcZk4eJ0wYAGI6rsSUOEzsI6UQKpKaJBwQGdIaD4OWNkAwWYM8JISEEmDpMVHAxI+eMmyQkIAjouFPMgAAYXd+AsYWHIDJALBB4mHO7wQIAPWg45CQgAOw==},
69             # Western Frisian
70             FY => q{R0lGODlhFAANAPcAAOweE+0nHO0pH+wrIewwJ+4zKe00Ku03Le44L+9BOO9FPO5GPetKQ/BLQvFXT/JaUvFjW850fOhoZPR2bux5de54dO15dvB2cPV9d/aEfgRGmARHmQdJmglJmgxMmwtOng5NnBBPnRJQnhZTnxZVoiVboiFbpCRepShgpyZhqCxjqC1nrDBhpDNnqTJrrjNsrzZsrjdtrjtwsF10qEN2tEt9uGZ3p299qWB+so97m8R3g1CAuleDulWEu12Gu1iHvmGDtmaDtGWEtmKJvG2LunmPul2KwGWOwGmRwWuRwnGWxZeWtZyZt7KSp7mcr6CgvaylvbOkutGNlsqQm9mQltWSmdaTmvaRjPaYk86apMqir8esutKst9evuPGmpe+3t+24ufq1sPy7t4Giy4qpz5iiw5qvz42q0I+t0Z252aq61ay916S82qa92qS+3K7F4LPI4d7Hz+LHzfvEwPLIyPnS0fjV1P7W1P7Z1v7c2svY6s/c69Dd7Nbh7tbi8N7o8/7j4vfq7P7t7OLr9e7y+Pby9P/y8P/19P/49/P2+v/6+f/8+/j7/fr8/f///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUAA0AAAj6AB0J5FODgwYOIsYQEmjHSQwOEDnsEehIThESGjR44MEHEYQFUoaEyGiCDCE8CS5EkWFQwwkzEgJkCMQkRcYOO7YcGCBmkJIRGT3M4GLoCoMpQDJqKJEDjCJHjNa0MMhhBZsKAB4ESgJUw4cffBwJmlAlCIiMIGxUweOoEZwYSlGkoTNggBc3Kg5qcPGGkaM5VIiIQIsjAgZAjvoYOauBxJFCEARUUONCrwo2fhd9WWLToA8dC7Ac6iKEMYgkf+4YcKCFR4eMJcokClOAwhMVLWNAYYBATCI0J9AayUIgQR4/Q0AYFHEjDkU+r1+zaFJHYKIzQCHS0EMxIAA7},
71             # Indonesian
72             ID => q{R0lGODlhFAANAPECAP8AAP9/f////wAAACH5BAAAAAAALAAAAAAUAA0AAAIXhI+py+0Po5yh2oux2Lz7D4biSJbmiRYAOw==},
73             # Malay
74             MS => q{R0lGODlhFAAKAPUAAEUvf0cwflk7ckdjfUpie1pscGx3ZGZ2aMtreOlzcLimMN29F5OPSZSPSZ+WQYGEVQ8+owk6pws7pgU3qwA1rQE0rgc6qAI5rBw8pgA0sEQugEUugFo8ghVCnxxFmxhDnR9ImCxQjzlYhj1ahClQkhxAqR1Bq859is+DkNqMldGPnOyFg+yGg+2IhOyIhe2Ni+6Niu6Oi+2OjOuQj+mPkO2Tke+amO+cmvCcmfKurAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUAAoAAAZ8QAolIgpdhBQMIsFsNikTQ8ETGkEoJRRsG5vJYDIZBcSwdBwLAlaFu+HetjaO8ml0Ig+FKKnd+mdbGRkDByQdHRQZJScujY0tkCwbkwICABoAGxwpNjc2n6A2M141MjU0NTUzqaytNSywK7KysbO0sCyuurupOb6/wMHBQQA7},
75             # Albanian
76             SQ => q{R0lGODlhFAANAPZRAAAAAAIAAAgAAAoAAA4AABgAACAAACEAACUAACkAACsAADwAAEEAAEUAAEYAAEsAAFcAAFkAAFsAAFwAAGsAAG8AAHEAAHMAAHYAAHcAAHoAAHwAAH0AAH8AAIIAAIUAAIkAAIwAAJAAAJQAAJUAAJcAAJgAAJwAAJ4AAKAAAKMAAKUAAKYAAKcAALMAALwAAL8AAMIAAMYAAMcAAMgAAMkAAMoAAMsAAMwAAM0AANAAANMAANcAANwAAOAAAOEAAOcAAOkAAOsAAOwAAO0AAO4AAO8AAPEAAPMAAPUAAPcAAPkAAPoAAPsAAPwAAP0AAP4AAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUAA0AAAd6gFGCg4SFhoVORj1RQj5ITYeEODo6FikWLUA5S5GCNBgXIQseIyIvkJ02EAEHBg4DEStInVExEwgAuQIUHUe0MhkVCQAEDxwbRbQ8LDAaBQ0fLyREtEo3JigKEiUuQlC0UTsgMwwgPydB4FFMSUwqNU+o6oJDvvP3UYEAOw==},
77             # Turkish
78             TR => q{R0lGODlhFAANAPUsAP8AAP8BAf8CAv8EBP8FBf8ICP8JCf8MDP8PD/8QEP8REf8SEv8TE/8UFP8VFf8YGP8aGv8fH/8lJf8mJv8nJ/8rK/8vL/84OP9NTf9bW/9cXP9eXv9oaP94eP96ev97e/99ff+fn/+iov+np/+wsP+ysv+zs/+1tf/MzP/Q0P/l5f/o6P/r6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUAA0AAAZNQIBwSCwaj8gkYJAYKIsCzEjEoQSewowKFFlABFgF6kQYHiwJpYT1GQYwpYmykSKVhY4L4rlZdR4JDGBYAxomIR4Vg1gABQoGjJGSSUEAOw==},
79             # Latin
80             LA => q{R0lGODlhFAANAPQeAGgmXmgnXmknXmkoXmwqX20qYG0rYG8sYQk+mAo/mQZBnAdCnAxBmhZNonWTxY9FbpFHb/0AAP8AAI2q1I+s1ZGt1pOv15yx1eDs9+Hs9+Lt9+Tu+P39/v3+/v///wAAACH5BAAAAAAALAAAAAAUAA0AAAVSoCSOZGmeaEpGUSq88BAUz0MEAwwvfK80lAxm0lD0eoykEuHoeDwdB0JJrSYuz+clUe0ymJwnR9o98n6WjaZSNC90rwHgAHkYcHBBiqXq+/8jIQA7},
81             # Russian
82             RU => q{R0lGODlhFAANAPMIAGEqYwc9mAdCnAxBmmGEvf4AAP8AAP7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUAA0AAAQyEMlJq70463q6/yBIjGRpmkGqriw7vHAsy0Jt3zgO7Hzv+4WgcEgkGo7IpHLJbDqfyggAOw==},
83             # Norwegian
84             NO => q{R0lGODlhFAAMAPQRABxNoCtZpztorztqsjtrslh+u12Cvl2FwGuNw2uPxf8AAP+AgP+Bgf6Li/CSmPCTme/Izf7GxgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUAAwAAAU8oCIqTDI8Y6qm5bm+Y4vC75IQDj02fBMhAkhvSDwYD4YAoHBsOpvJ5fM5/AWJ2EbKhtOtZF4VOBwzzXQhADs=},
85             # Afrikaans
86             AF => q{R0lGODlhFAAKAPUAAAAAAAwIAA0IAE01AFA3AFc8AAB2SQB3SwB3TQF4TB1+Q+I1JeI4KOQ6K5Z3CaF+COVBMuZCNO11au11a+9+dC+DPnqRJRWCWRqGXB2KYyGKYS+Rai6QayuQbIGRI4uXIgAcnQAgnwMioQ0qpA8rpVBkvVBlvltuwnq3oIq4o4m5pIC4qdannNaonc+2q9mzqdm0qtjEu4Wfx5WszZSwyam/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUAAoAAAZwwMPhgopRIIskY8lsWioHxCb1kiCbWEbB4YEeOimYJMJomM9mgIDA9XZUrpZ8PgfYBYPHR5FIYDKAgYF2anl7CH4aiouLamxdQhsrNDKVlpZbkAeSMyUkIqChoU+InCYjICGqq6xRRDUnqCGprLO0QQA7},
87             # Irish
88             GA => q{R0lGODlhFAAKAPIAAP9xAP9zAACTQACVQ/+iVl68if/+/v///yH5BAAAAAAALAAAAAAUAAoAAAMwOKpS95AAEGpYzMEnqcVDs3GTdWHiKJnnkm6dCb5R+aEa7N1uXrMzH2nXyowOHVsCADs=},
89             # Swedish
90             SV => q{R0lGODlhFAAKAPMAALOvPLSvPL2zN/TNGv/UEvzRFt/EJeDEJQRdlwZelgBbmQBamh9piSNshwAAAAAAACH5BAAAAAAALAAAAAAUAAoAAARCUEmJAglorcn7qleidaSiARdiaizLvG8jEEJjwzhj7PsxEIMDb0jk+YBC4iGZk9EaudxEg0BhWq1SwoIpebchryQCADs=},
91             # Breton
92             BR => q{iVBORw0KGgoAAAANSUhEUgAAABQAAAAKEAYAAADkxaKlAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAUAAAACgB3ehUOAAACUUlEQVQ4y8XOvUsbYQCA8ee9a6J2qGDIIIIElUAkeKgEcc0iajWLiItSrHRRRNeDIEgRB0FwcFPoEKEOwToUGziMg1YM4vlFbjCCKSKRkOFAsRd5r0tXpwg+f8DDT5zpZ/qZ7rql3dJuaRc61jrWOtbAmDfmjXkYOB44HjiGVCaVSWWgc6pzqnMKri+uL64vwBGOcET591J2KbuUdb5YI9aINeKNESRIkGoq7J36oD6oD/A88TzxPAE3sZvYTQy8fq/f64er4avhq2EQDaJBNEA+kU/kE/Dke/I9+aAuVBeqC/FhtWu1a7WLX47u6I4uvuLHjx9PxcCgHtSDOgiv8AovZO4z95l76DvpO+k7geR6cj25DoN3g3eDd5CuT9en6yE0GhoNjUJgO7Ad2KZ6rnWuda5VxPPd+e58t/jBOOOMU64UKE4PTw9PD93c7ebt5u0mhGfDs+FZ2D/fP98/h+hWdCu6BWnSpIFIf6Q/0g85O2fnbKgN1AZqA+Wfslf2yt6/H23TNm2z6rPQhCY0qioGjllj1phV/vZoPpqPJjQeNB40HoBVtIpWEcIr4ZXwClwWL4uXRWjJtmRbslCYLkwXphGeNk+bp00mmnqaepp63IK6oW6oG+p3JBJZKQ/Ewt7C3sKe80ksi2WxDDIu4zIOSo1So9SANKQhDVA0RVM0kJrUpAZKu9KutIObdJNuEp874864M7zHxsbmT+W0/8CdyZ3Jncly9LWGr50YSg2lhlKO+daQl3q3WFosLZaE8daQlxLNR81HzUflyFtDXuofJm37+nnT0cEAAAAASUVORK5CYII=},
93             # Deutch
94             DE => q{R0lGODlhFAAMAPIHAAAAAB4AAOAAAP8AAP4YB/61OP3PQP7OQCH5BAAAAAAALAAAAAAUAAwAAAMrCLrc/jDKFqq9GIvNu/dDKI5kaZ4joa5s2xZwLM+zYd94nh987//AoNCXAAA7},
95             # Bosnian
96             BS => q{R0lGODlhFAAKAPUAAE1ZaF1lYWJqamNrampxbW91b3J3am91cGdxe3N5ct7CHuLFHOTGHeXHHvzXEv/ZEf/bEODDIAsphwkoigwqiA0riA4siBEvihYzjBc0jRk2jh05kB87kUdepUphpk5kqFRpq1RprVxwr1twsF9zsmZ5tGd6tGl8t26AuHaHvX+PwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUAAoAAAZcwEol4yEhFJCkA7J0BCbCaOWCAhUYzKzDCZVGSycBtsl8eqOYj2qwSDK5Z6Fk00kR2kpzvCLRjEgHbVt6e1MoIYFlXYVCJicDDHCMFxVpKgIKTxSFm0J0KQYAi0EAOw==},
97             # Slovene
98             SL => q{R0lGODlhFAAKAPQAAFRGd+wcJO0cJABaogRboQFepABepidxpleKuViLuWmRu1qWxJu61py717nR4MbO38TR4vD0+PH0+P7+/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUAAoAAAU7ICWOZGmKkuNEZ0s9xwG55GIjTJPYfN8PQIJCQQAaj0eDcslsNgHQqHQ6DVgDgqxVcM1yu96weEwuj0MAOw==},
99             # Somali
100             SO => q{R0lGODlhFAANAPQeAJjY6JnY6JnZ6ZrZ6ZvZ6Z7a6p/a6p/b6qHb6qLc6qPc6qTc66zg7a3g7bPi7rrl787s9M/t9NDt9NHt9dPu9dTu9dTv9dXv9t/z+OX1+eb1+fX7/Pf8/fr9/f///wAAACH5BAAAAAAALAAAAAAUAA0AAAVJoCCOZGmeg5ierEAQLQs4DhCT7zBVw3sHCwhms8FEFoHbgJHxeDSN1Q0g6XAutpsgcKA8HJZE8mdQAACIwjg2CCTbAal2TieFAAA7},
101             # Polish
102             PL => q{R0lGODlhFAANAPECAP8AAP9/f////wAAACH5BAAAAAAALAAAAAAUAA0AAAIXlI+py+0Po5yh2osx2Lz7D4biSJbmiRYAOw==},
103             # Icelandic
104             IS => q{R0lGODlhFAAMAPIHAAM6lgc9mAxBml+Bu2GDvf8cHP5VVZmu0yH5BAAAAAAALAAAAAAUAAwAAAM9KBpkRkHJSZmDNEv7ot5BAAzOAIRoGhLscDjHwM4069xFce98n/fAmQsmq9VQo9JJpdo0Op8MBxOdTD3RBAA7},
105             # Finish
106             FI => q{R0lGODlhFAALAPQaAAY8lwc9mAg9mAk/mQpAmQtAmQxBmg1CmhtMoCFSoyVVpDFeqTNfqkRtsUVtsWGDvWSGvmmJwGmKwJ+016S42ay+3K2+3K2/3evv9vP1+v///wAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUAAsAAAVEoCaK1RFEY6qm5bm+o2VK8JjdN2VCeN83wIZjYSAkgkgkYLkUFAwDplTKqFYVRYR1u8V4vRPT40smqy6z2quFUqvY7hAAOw==},
107             # Croatian
108             HR => q{R0lGODlhFAAKAPU2AHpaewg/mQk/mQlAmQtAmQtAmgxBmhpGlzdaoG5jlK9KYatide0JD/IKDv4BAf8AAP0FBf8KCv8LC/8NDeQZIesiJ/skJNhjbNptdNp2eelOTOROVfV7evd/fv9ycv91dfl+fv9+folZgrl7h/+Afrmds6O00qa62qm726m829qEhN+Eg9SPmv+AgO69ve7c3PjHx//Jyf/KyvLc3PLy8vTz8////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUAAoAAAZbwIdwSCwajRBGhdJwHCfQaESzUABGFkk0Gut6ZS7M5pKBec+2tNr24nw8Ktp6Pp91Qq1VjW5D+f8pJiwkICUnf4gGiosGBAgiCQeMjASVlpUCAwEFl5eTn6CKQQA7},
109             # Hungarian
110             HU => q{R0lGODlhFAANAPIFAACHNgCIN/8AAKTUuP+kpP///wAAAAAAACH5BAAAAAAALAAAAAAUAA0AAAMmKLrc/jDKSRW5OGtduv9gKI5kCQ5oqq5r4L5wHAN0bd+3rO98nwAAOw==},
111             # Welsh
112             CY => q{R0lGODlhFAAKAPYAAHw+MDp1NDN5NDJ9NU9WLkldL1VcMltYMmlMMW1PMnRDMH9KOWVSMmFXM2dUMnVSOE9mM6YJJq4OLLYNLbgJKrsJK7oLK7kNLbwOL60TLbMRLbwRL7EbMrUYNb0YNJ4lL5ItL4oyL50oMIU8MZUxMsAML8IOL8oNMsEYN70jQL8pRcYsSMg3UoRTRL5FVr5LYLdSZcRAV8tAWslGXsVJYM5OZs5gdc5neNVqftJsfx6NNg+ZNgucNgycNxSVNhSZNyOGNCOHNSOJNSqTPgWiNwihNwOmOAekOAugOAmjOACqOACrOAGqOQCsOT6DQB6wThu0Thy0T9VugdNzhNeAkdCHldmGldaNm9iKmdyKmdGSmtSWotObpdqdqOSksOW1vue8xObEy+nGzerP1O3P1evQ1e3S1+3W2uvY3PDS19nh1dzl2/Li5fHm6PTl6Pbn6vLr7OD15/v09fn29/z5+f78/P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUAAoAAAe2gHaCgm5oYnKCdGNzc3CDg2xhVy8rNG52ZjgsVFNoc2N0g2dcWzAdK2ZeKxYYGFJuVVJ1dYJdVXNYEjJjLBMbJjJgUjRfs3FxWjdrLBEpNCgbJR42WTUuasdQT04LLRwTExWtGBsnHg9OUVBQSu0/IyIdGSAfJSQQDgAKO03t/kg6DDAIAERAiA8BfghRgKSJQ4dKICRIEKRIgQMIBPQg4KBBj4f9lPT4UaSIEiRIiBgRiaTkw0AAOw==},
113             # Swahili
114             SW => q{R0lGODlhFAAKAPQAAAAAAAUDAAYEAB8aAzEmATEmAzktAjktBIZyDYVxEIV8EIR6HRu1Ox61OiK2OlG+M1i/MqC1H4+1I5SzIZC1IoqtXJavUoSuY4OuZDqvszqws0KxrQal2wCj3QCi4AAAACH5BAAAAAAALAAAAAAUAAoAAAVVYCOOZMM4UIQMQFuS50MpR9AKxSs6Mm0DAcOiUopJfK3g4qLhkHizWlLI5Hg6u8dRCqQ2r50Ob/tTVsHhzgTZXX7T8ILgdlhgMla4vgUYJCwbeXp6IQA7},
115             );
116            
117              
118             =head1 FUNCTIONS
119              
120             =head2 as_html_img
121              
122             Returns an inline HTML image. For now, it just works with
123             Netscape/Gecko based browsers.
124              
125             =cut
126              
127             sub as_html_img {
128 2     2 1 5 my $cc = shift;
129 2 100       7 if (exists($FLAGS{$cc})) {
130 1         10 return "\"$cc\"";
131             } else {
132 1         6 return undef;
133             }
134             }
135              
136             =head2 as_gif
137              
138             Returns the gif code. Normally used as:
139              
140             open GIF, ">image.gif";
141             print GIF as_gif("PT");
142             close GIF;
143              
144             =cut
145              
146             sub as_gif {
147 2     2 1 12 my $cc = shift;
148 2 100       10 if (exists($FLAGS{$cc})) {
149 1         23 return decode_base64($FLAGS{$cc});
150             } else {
151 1         10 return undef;
152             }
153             }
154              
155             =head1 AUTHOR
156              
157             Alberto Simoes, C<< >>
158              
159             =head1 BUGS
160              
161             Please report any bugs or feature requests to
162             C, or through the web interface at
163             L.
164             I will be notified, and then you'll automatically be notified of progress on
165             your bug as I make changes.
166              
167             =head1 COPYRIGHT & LICENSE
168              
169             Copyright 2007-2009 Alberto Simoes, all rights reserved.
170              
171             This program is free software; you can redistribute it and/or modify it
172             under the same terms as Perl itself.
173              
174             =cut
175              
176             1; # End of Lingua::Flags