File Coverage

blib/lib/Locale/CLDR/Plurals.pm
Criterion Covered Total %
statement 35 35 100.0
branch 8 8 100.0
condition 6 10 60.0
subroutine 10 10 100.0
pod 0 2 0.0
total 59 65 90.7


line stmt bran cond sub pod time code
1             package Locale::CLDR::Plurals;
2             # This file auto generated from Data\common\supplemental\ordinals.xml
3             # on Sun 24 Apr 8:12:28 am GMT
4            
5 21     21   16133 use version;
  21         32  
  21         104  
6            
7             our $VERSION = version->declare('v0.29.0');
8            
9 21     21   1697 use v5.10.1;
  21         52  
10 21     21   76 use mro 'c3';
  21         26  
  21         108  
11 21     21   563 use utf8;
  21         29  
  21         86  
12 21     21   577 use if $^V ge v5.12.0, feature => 'unicode_strings';
  21         26  
  21         233  
13            
14 21     21   1878 use Types::Standard qw( Str Int HashRef ArrayRef CodeRef RegexpRef );
  21         28  
  21         121  
15 21     21   13730 use Moo::Role;
  21         34  
  21         120  
16            
17             my %_plurals = (
18             cardinal => {
19             af => {
20             one => sub {
21            
22             my $number = shift;
23             my $n = abs($number);
24             my $i = int($n);
25             my ($f) = $number =~ /\.(.*)$/;
26             $f //= '';
27             my $t = length $f ? $f + 0 : '';
28             my $v = length $f;
29             my $w = length $t;
30             $t ||= 0;
31            
32             return scalar (grep {$n == $_} (1)) ;
33             },
34             },
35             ak => {
36             one => sub {
37            
38             my $number = shift;
39             my $n = abs($number);
40             my $i = int($n);
41             my ($f) = $number =~ /\.(.*)$/;
42             $f //= '';
43             my $t = length $f ? $f + 0 : '';
44             my $v = length $f;
45             my $w = length $t;
46             $t ||= 0;
47            
48             return scalar (grep {$n == $_} (0..1)) ;
49             },
50             },
51             am => {
52             one => sub {
53            
54             my $number = shift;
55             my $n = abs($number);
56             my $i = int($n);
57             my ($f) = $number =~ /\.(.*)$/;
58             $f //= '';
59             my $t = length $f ? $f + 0 : '';
60             my $v = length $f;
61             my $w = length $t;
62             $t ||= 0;
63            
64             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
65             },
66             },
67             ar => {
68             few => sub {
69            
70             my $number = shift;
71             my $n = abs($number);
72             my $i = int($n);
73             my ($f) = $number =~ /\.(.*)$/;
74             $f //= '';
75             my $t = length $f ? $f + 0 : '';
76             my $v = length $f;
77             my $w = length $t;
78             $t ||= 0;
79            
80             return scalar (grep {$n % 100 == $_} (3..10)) ;
81             },
82             many => sub {
83            
84             my $number = shift;
85             my $n = abs($number);
86             my $i = int($n);
87             my ($f) = $number =~ /\.(.*)$/;
88             $f //= '';
89             my $t = length $f ? $f + 0 : '';
90             my $v = length $f;
91             my $w = length $t;
92             $t ||= 0;
93            
94             return scalar (grep {$n % 100 == $_} (11..99)) ;
95             },
96             one => sub {
97            
98             my $number = shift;
99             my $n = abs($number);
100             my $i = int($n);
101             my ($f) = $number =~ /\.(.*)$/;
102             $f //= '';
103             my $t = length $f ? $f + 0 : '';
104             my $v = length $f;
105             my $w = length $t;
106             $t ||= 0;
107            
108             return scalar (grep {$n == $_} (1)) ;
109             },
110             two => sub {
111            
112             my $number = shift;
113             my $n = abs($number);
114             my $i = int($n);
115             my ($f) = $number =~ /\.(.*)$/;
116             $f //= '';
117             my $t = length $f ? $f + 0 : '';
118             my $v = length $f;
119             my $w = length $t;
120             $t ||= 0;
121            
122             return scalar (grep {$n == $_} (2)) ;
123             },
124             zero => sub {
125            
126             my $number = shift;
127             my $n = abs($number);
128             my $i = int($n);
129             my ($f) = $number =~ /\.(.*)$/;
130             $f //= '';
131             my $t = length $f ? $f + 0 : '';
132             my $v = length $f;
133             my $w = length $t;
134             $t ||= 0;
135            
136             return scalar (grep {$n == $_} (0)) ;
137             },
138             },
139             as => {
140             one => sub {
141            
142             my $number = shift;
143             my $n = abs($number);
144             my $i = int($n);
145             my ($f) = $number =~ /\.(.*)$/;
146             $f //= '';
147             my $t = length $f ? $f + 0 : '';
148             my $v = length $f;
149             my $w = length $t;
150             $t ||= 0;
151            
152             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
153             },
154             },
155             asa => {
156             one => sub {
157            
158             my $number = shift;
159             my $n = abs($number);
160             my $i = int($n);
161             my ($f) = $number =~ /\.(.*)$/;
162             $f //= '';
163             my $t = length $f ? $f + 0 : '';
164             my $v = length $f;
165             my $w = length $t;
166             $t ||= 0;
167            
168             return scalar (grep {$n == $_} (1)) ;
169             },
170             },
171             ast => {
172             one => sub {
173            
174             my $number = shift;
175             my $n = abs($number);
176             my $i = int($n);
177             my ($f) = $number =~ /\.(.*)$/;
178             $f //= '';
179             my $t = length $f ? $f + 0 : '';
180             my $v = length $f;
181             my $w = length $t;
182             $t ||= 0;
183            
184             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
185             },
186             },
187             az => {
188             one => sub {
189            
190             my $number = shift;
191             my $n = abs($number);
192             my $i = int($n);
193             my ($f) = $number =~ /\.(.*)$/;
194             $f //= '';
195             my $t = length $f ? $f + 0 : '';
196             my $v = length $f;
197             my $w = length $t;
198             $t ||= 0;
199            
200             return scalar (grep {$n == $_} (1)) ;
201             },
202             },
203             be => {
204             few => sub {
205            
206             my $number = shift;
207             my $n = abs($number);
208             my $i = int($n);
209             my ($f) = $number =~ /\.(.*)$/;
210             $f //= '';
211             my $t = length $f ? $f + 0 : '';
212             my $v = length $f;
213             my $w = length $t;
214             $t ||= 0;
215            
216             return scalar (grep {$n % 10 == $_} (2..4)) && ! scalar (grep {$n % 100 == $_} (12..14)) ;
217             },
218             many => sub {
219            
220             my $number = shift;
221             my $n = abs($number);
222             my $i = int($n);
223             my ($f) = $number =~ /\.(.*)$/;
224             $f //= '';
225             my $t = length $f ? $f + 0 : '';
226             my $v = length $f;
227             my $w = length $t;
228             $t ||= 0;
229            
230             return scalar (grep {$n % 10 == $_} (0)) || scalar (grep {$n % 10 == $_} (5..9)) || scalar (grep {$n % 100 == $_} (11..14)) ;
231             },
232             one => sub {
233            
234             my $number = shift;
235             my $n = abs($number);
236             my $i = int($n);
237             my ($f) = $number =~ /\.(.*)$/;
238             $f //= '';
239             my $t = length $f ? $f + 0 : '';
240             my $v = length $f;
241             my $w = length $t;
242             $t ||= 0;
243            
244             return scalar (grep {$n % 10 == $_} (1)) && ! scalar (grep {$n % 100 == $_} (11)) ;
245             },
246             },
247             bem => {
248             one => sub {
249            
250             my $number = shift;
251             my $n = abs($number);
252             my $i = int($n);
253             my ($f) = $number =~ /\.(.*)$/;
254             $f //= '';
255             my $t = length $f ? $f + 0 : '';
256             my $v = length $f;
257             my $w = length $t;
258             $t ||= 0;
259            
260             return scalar (grep {$n == $_} (1)) ;
261             },
262             },
263             bez => {
264             one => sub {
265            
266             my $number = shift;
267             my $n = abs($number);
268             my $i = int($n);
269             my ($f) = $number =~ /\.(.*)$/;
270             $f //= '';
271             my $t = length $f ? $f + 0 : '';
272             my $v = length $f;
273             my $w = length $t;
274             $t ||= 0;
275            
276             return scalar (grep {$n == $_} (1)) ;
277             },
278             },
279             bg => {
280             one => sub {
281            
282             my $number = shift;
283             my $n = abs($number);
284             my $i = int($n);
285             my ($f) = $number =~ /\.(.*)$/;
286             $f //= '';
287             my $t = length $f ? $f + 0 : '';
288             my $v = length $f;
289             my $w = length $t;
290             $t ||= 0;
291            
292             return scalar (grep {$n == $_} (1)) ;
293             },
294             },
295             bh => {
296             one => sub {
297            
298             my $number = shift;
299             my $n = abs($number);
300             my $i = int($n);
301             my ($f) = $number =~ /\.(.*)$/;
302             $f //= '';
303             my $t = length $f ? $f + 0 : '';
304             my $v = length $f;
305             my $w = length $t;
306             $t ||= 0;
307            
308             return scalar (grep {$n == $_} (0..1)) ;
309             },
310             },
311             bn => {
312             one => sub {
313            
314             my $number = shift;
315             my $n = abs($number);
316             my $i = int($n);
317             my ($f) = $number =~ /\.(.*)$/;
318             $f //= '';
319             my $t = length $f ? $f + 0 : '';
320             my $v = length $f;
321             my $w = length $t;
322             $t ||= 0;
323            
324             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
325             },
326             },
327             br => {
328             few => sub {
329            
330             my $number = shift;
331             my $n = abs($number);
332             my $i = int($n);
333             my ($f) = $number =~ /\.(.*)$/;
334             $f //= '';
335             my $t = length $f ? $f + 0 : '';
336             my $v = length $f;
337             my $w = length $t;
338             $t ||= 0;
339            
340             return scalar (grep {$n % 10 == $_} (3..4,9)) && ! scalar (grep {$n % 100 == $_} (10..19,70..79,90..99)) ;
341             },
342             many => sub {
343            
344             my $number = shift;
345             my $n = abs($number);
346             my $i = int($n);
347             my ($f) = $number =~ /\.(.*)$/;
348             $f //= '';
349             my $t = length $f ? $f + 0 : '';
350             my $v = length $f;
351             my $w = length $t;
352             $t ||= 0;
353            
354             return ! scalar (grep {$n == $_} (0)) && scalar (grep {$n % 1000000 == $_} (0)) ;
355             },
356             one => sub {
357            
358             my $number = shift;
359             my $n = abs($number);
360             my $i = int($n);
361             my ($f) = $number =~ /\.(.*)$/;
362             $f //= '';
363             my $t = length $f ? $f + 0 : '';
364             my $v = length $f;
365             my $w = length $t;
366             $t ||= 0;
367            
368             return scalar (grep {$n % 10 == $_} (1)) && ! scalar (grep {$n % 100 == $_} (11,71,91)) ;
369             },
370             two => sub {
371            
372             my $number = shift;
373             my $n = abs($number);
374             my $i = int($n);
375             my ($f) = $number =~ /\.(.*)$/;
376             $f //= '';
377             my $t = length $f ? $f + 0 : '';
378             my $v = length $f;
379             my $w = length $t;
380             $t ||= 0;
381            
382             return scalar (grep {$n % 10 == $_} (2)) && ! scalar (grep {$n % 100 == $_} (12,72,92)) ;
383             },
384             },
385             brx => {
386             one => sub {
387            
388             my $number = shift;
389             my $n = abs($number);
390             my $i = int($n);
391             my ($f) = $number =~ /\.(.*)$/;
392             $f //= '';
393             my $t = length $f ? $f + 0 : '';
394             my $v = length $f;
395             my $w = length $t;
396             $t ||= 0;
397            
398             return scalar (grep {$n == $_} (1)) ;
399             },
400             },
401             bs => {
402             few => sub {
403            
404             my $number = shift;
405             my $n = abs($number);
406             my $i = int($n);
407             my ($f) = $number =~ /\.(.*)$/;
408             $f //= '';
409             my $t = length $f ? $f + 0 : '';
410             my $v = length $f;
411             my $w = length $t;
412             $t ||= 0;
413            
414             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (2..4)) && ! scalar (grep {$i % 100 == $_} (12..14)) || scalar (grep {$f % 10 == $_} (2..4)) && ! scalar (grep {$f % 100 == $_} (12..14)) ;
415             },
416             one => sub {
417            
418             my $number = shift;
419             my $n = abs($number);
420             my $i = int($n);
421             my ($f) = $number =~ /\.(.*)$/;
422             $f //= '';
423             my $t = length $f ? $f + 0 : '';
424             my $v = length $f;
425             my $w = length $t;
426             $t ||= 0;
427            
428             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) || scalar (grep {$f % 10 == $_} (1)) && ! scalar (grep {$f % 100 == $_} (11)) ;
429             },
430             },
431             ca => {
432             one => sub {
433            
434             my $number = shift;
435             my $n = abs($number);
436             my $i = int($n);
437             my ($f) = $number =~ /\.(.*)$/;
438             $f //= '';
439             my $t = length $f ? $f + 0 : '';
440             my $v = length $f;
441             my $w = length $t;
442             $t ||= 0;
443            
444             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
445             },
446             },
447             ce => {
448             one => sub {
449            
450             my $number = shift;
451             my $n = abs($number);
452             my $i = int($n);
453             my ($f) = $number =~ /\.(.*)$/;
454             $f //= '';
455             my $t = length $f ? $f + 0 : '';
456             my $v = length $f;
457             my $w = length $t;
458             $t ||= 0;
459            
460             return scalar (grep {$n == $_} (1)) ;
461             },
462             },
463             cgg => {
464             one => sub {
465            
466             my $number = shift;
467             my $n = abs($number);
468             my $i = int($n);
469             my ($f) = $number =~ /\.(.*)$/;
470             $f //= '';
471             my $t = length $f ? $f + 0 : '';
472             my $v = length $f;
473             my $w = length $t;
474             $t ||= 0;
475            
476             return scalar (grep {$n == $_} (1)) ;
477             },
478             },
479             chr => {
480             one => sub {
481            
482             my $number = shift;
483             my $n = abs($number);
484             my $i = int($n);
485             my ($f) = $number =~ /\.(.*)$/;
486             $f //= '';
487             my $t = length $f ? $f + 0 : '';
488             my $v = length $f;
489             my $w = length $t;
490             $t ||= 0;
491            
492             return scalar (grep {$n == $_} (1)) ;
493             },
494             },
495             ckb => {
496             one => sub {
497            
498             my $number = shift;
499             my $n = abs($number);
500             my $i = int($n);
501             my ($f) = $number =~ /\.(.*)$/;
502             $f //= '';
503             my $t = length $f ? $f + 0 : '';
504             my $v = length $f;
505             my $w = length $t;
506             $t ||= 0;
507            
508             return scalar (grep {$n == $_} (1)) ;
509             },
510             },
511             cs => {
512             few => sub {
513            
514             my $number = shift;
515             my $n = abs($number);
516             my $i = int($n);
517             my ($f) = $number =~ /\.(.*)$/;
518             $f //= '';
519             my $t = length $f ? $f + 0 : '';
520             my $v = length $f;
521             my $w = length $t;
522             $t ||= 0;
523            
524             return scalar (grep {$i == $_} (2..4)) && scalar (grep {$v == $_} (0)) ;
525             },
526             many => sub {
527            
528             my $number = shift;
529             my $n = abs($number);
530             my $i = int($n);
531             my ($f) = $number =~ /\.(.*)$/;
532             $f //= '';
533             my $t = length $f ? $f + 0 : '';
534             my $v = length $f;
535             my $w = length $t;
536             $t ||= 0;
537            
538             return ! scalar (grep {$v == $_} (0)) ;
539             },
540             one => sub {
541            
542             my $number = shift;
543             my $n = abs($number);
544             my $i = int($n);
545             my ($f) = $number =~ /\.(.*)$/;
546             $f //= '';
547             my $t = length $f ? $f + 0 : '';
548             my $v = length $f;
549             my $w = length $t;
550             $t ||= 0;
551            
552             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
553             },
554             },
555             cy => {
556             few => sub {
557            
558             my $number = shift;
559             my $n = abs($number);
560             my $i = int($n);
561             my ($f) = $number =~ /\.(.*)$/;
562             $f //= '';
563             my $t = length $f ? $f + 0 : '';
564             my $v = length $f;
565             my $w = length $t;
566             $t ||= 0;
567            
568             return scalar (grep {$n == $_} (3)) ;
569             },
570             many => sub {
571            
572             my $number = shift;
573             my $n = abs($number);
574             my $i = int($n);
575             my ($f) = $number =~ /\.(.*)$/;
576             $f //= '';
577             my $t = length $f ? $f + 0 : '';
578             my $v = length $f;
579             my $w = length $t;
580             $t ||= 0;
581            
582             return scalar (grep {$n == $_} (6)) ;
583             },
584             one => sub {
585            
586             my $number = shift;
587             my $n = abs($number);
588             my $i = int($n);
589             my ($f) = $number =~ /\.(.*)$/;
590             $f //= '';
591             my $t = length $f ? $f + 0 : '';
592             my $v = length $f;
593             my $w = length $t;
594             $t ||= 0;
595            
596             return scalar (grep {$n == $_} (1)) ;
597             },
598             two => sub {
599            
600             my $number = shift;
601             my $n = abs($number);
602             my $i = int($n);
603             my ($f) = $number =~ /\.(.*)$/;
604             $f //= '';
605             my $t = length $f ? $f + 0 : '';
606             my $v = length $f;
607             my $w = length $t;
608             $t ||= 0;
609            
610             return scalar (grep {$n == $_} (2)) ;
611             },
612             zero => sub {
613            
614             my $number = shift;
615             my $n = abs($number);
616             my $i = int($n);
617             my ($f) = $number =~ /\.(.*)$/;
618             $f //= '';
619             my $t = length $f ? $f + 0 : '';
620             my $v = length $f;
621             my $w = length $t;
622             $t ||= 0;
623            
624             return scalar (grep {$n == $_} (0)) ;
625             },
626             },
627             da => {
628             one => sub {
629            
630             my $number = shift;
631             my $n = abs($number);
632             my $i = int($n);
633             my ($f) = $number =~ /\.(.*)$/;
634             $f //= '';
635             my $t = length $f ? $f + 0 : '';
636             my $v = length $f;
637             my $w = length $t;
638             $t ||= 0;
639            
640             return scalar (grep {$n == $_} (1)) || ! scalar (grep {$t == $_} (0)) && scalar (grep {$i == $_} (0,1)) ;
641             },
642             },
643             de => {
644             one => sub {
645            
646             my $number = shift;
647             my $n = abs($number);
648             my $i = int($n);
649             my ($f) = $number =~ /\.(.*)$/;
650             $f //= '';
651             my $t = length $f ? $f + 0 : '';
652             my $v = length $f;
653             my $w = length $t;
654             $t ||= 0;
655            
656             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
657             },
658             },
659             dsb => {
660             few => sub {
661            
662             my $number = shift;
663             my $n = abs($number);
664             my $i = int($n);
665             my ($f) = $number =~ /\.(.*)$/;
666             $f //= '';
667             my $t = length $f ? $f + 0 : '';
668             my $v = length $f;
669             my $w = length $t;
670             $t ||= 0;
671            
672             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (3..4)) || scalar (grep {$f % 100 == $_} (3..4)) ;
673             },
674             one => sub {
675            
676             my $number = shift;
677             my $n = abs($number);
678             my $i = int($n);
679             my ($f) = $number =~ /\.(.*)$/;
680             $f //= '';
681             my $t = length $f ? $f + 0 : '';
682             my $v = length $f;
683             my $w = length $t;
684             $t ||= 0;
685            
686             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (1)) || scalar (grep {$f % 100 == $_} (1)) ;
687             },
688             two => sub {
689            
690             my $number = shift;
691             my $n = abs($number);
692             my $i = int($n);
693             my ($f) = $number =~ /\.(.*)$/;
694             $f //= '';
695             my $t = length $f ? $f + 0 : '';
696             my $v = length $f;
697             my $w = length $t;
698             $t ||= 0;
699            
700             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (2)) || scalar (grep {$f % 100 == $_} (2)) ;
701             },
702             },
703             dv => {
704             one => sub {
705            
706             my $number = shift;
707             my $n = abs($number);
708             my $i = int($n);
709             my ($f) = $number =~ /\.(.*)$/;
710             $f //= '';
711             my $t = length $f ? $f + 0 : '';
712             my $v = length $f;
713             my $w = length $t;
714             $t ||= 0;
715            
716             return scalar (grep {$n == $_} (1)) ;
717             },
718             },
719             ee => {
720             one => sub {
721            
722             my $number = shift;
723             my $n = abs($number);
724             my $i = int($n);
725             my ($f) = $number =~ /\.(.*)$/;
726             $f //= '';
727             my $t = length $f ? $f + 0 : '';
728             my $v = length $f;
729             my $w = length $t;
730             $t ||= 0;
731            
732             return scalar (grep {$n == $_} (1)) ;
733             },
734             },
735             el => {
736             one => sub {
737            
738             my $number = shift;
739             my $n = abs($number);
740             my $i = int($n);
741             my ($f) = $number =~ /\.(.*)$/;
742             $f //= '';
743             my $t = length $f ? $f + 0 : '';
744             my $v = length $f;
745             my $w = length $t;
746             $t ||= 0;
747            
748             return scalar (grep {$n == $_} (1)) ;
749             },
750             },
751             en => {
752             one => sub {
753            
754             my $number = shift;
755             my $n = abs($number);
756             my $i = int($n);
757             my ($f) = $number =~ /\.(.*)$/;
758             $f //= '';
759             my $t = length $f ? $f + 0 : '';
760             my $v = length $f;
761             my $w = length $t;
762             $t ||= 0;
763            
764             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
765             },
766             },
767             eo => {
768             one => sub {
769            
770             my $number = shift;
771             my $n = abs($number);
772             my $i = int($n);
773             my ($f) = $number =~ /\.(.*)$/;
774             $f //= '';
775             my $t = length $f ? $f + 0 : '';
776             my $v = length $f;
777             my $w = length $t;
778             $t ||= 0;
779            
780             return scalar (grep {$n == $_} (1)) ;
781             },
782             },
783             es => {
784             one => sub {
785            
786             my $number = shift;
787             my $n = abs($number);
788             my $i = int($n);
789             my ($f) = $number =~ /\.(.*)$/;
790             $f //= '';
791             my $t = length $f ? $f + 0 : '';
792             my $v = length $f;
793             my $w = length $t;
794             $t ||= 0;
795            
796             return scalar (grep {$n == $_} (1)) ;
797             },
798             },
799             et => {
800             one => sub {
801            
802             my $number = shift;
803             my $n = abs($number);
804             my $i = int($n);
805             my ($f) = $number =~ /\.(.*)$/;
806             $f //= '';
807             my $t = length $f ? $f + 0 : '';
808             my $v = length $f;
809             my $w = length $t;
810             $t ||= 0;
811            
812             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
813             },
814             },
815             eu => {
816             one => sub {
817            
818             my $number = shift;
819             my $n = abs($number);
820             my $i = int($n);
821             my ($f) = $number =~ /\.(.*)$/;
822             $f //= '';
823             my $t = length $f ? $f + 0 : '';
824             my $v = length $f;
825             my $w = length $t;
826             $t ||= 0;
827            
828             return scalar (grep {$n == $_} (1)) ;
829             },
830             },
831             fa => {
832             one => sub {
833            
834             my $number = shift;
835             my $n = abs($number);
836             my $i = int($n);
837             my ($f) = $number =~ /\.(.*)$/;
838             $f //= '';
839             my $t = length $f ? $f + 0 : '';
840             my $v = length $f;
841             my $w = length $t;
842             $t ||= 0;
843            
844             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
845             },
846             },
847             ff => {
848             one => sub {
849            
850             my $number = shift;
851             my $n = abs($number);
852             my $i = int($n);
853             my ($f) = $number =~ /\.(.*)$/;
854             $f //= '';
855             my $t = length $f ? $f + 0 : '';
856             my $v = length $f;
857             my $w = length $t;
858             $t ||= 0;
859            
860             return scalar (grep {$i == $_} (0,1)) ;
861             },
862             },
863             fi => {
864             one => sub {
865            
866             my $number = shift;
867             my $n = abs($number);
868             my $i = int($n);
869             my ($f) = $number =~ /\.(.*)$/;
870             $f //= '';
871             my $t = length $f ? $f + 0 : '';
872             my $v = length $f;
873             my $w = length $t;
874             $t ||= 0;
875            
876             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
877             },
878             },
879             fil => {
880             one => sub {
881            
882             my $number = shift;
883             my $n = abs($number);
884             my $i = int($n);
885             my ($f) = $number =~ /\.(.*)$/;
886             $f //= '';
887             my $t = length $f ? $f + 0 : '';
888             my $v = length $f;
889             my $w = length $t;
890             $t ||= 0;
891            
892             return scalar (grep {$v == $_} (0)) && scalar (grep {$i == $_} (1,2,3)) || scalar (grep {$v == $_} (0)) && ! scalar (grep {$i % 10 == $_} (4,6,9)) || ! scalar (grep {$v == $_} (0)) && ! scalar (grep {$f % 10 == $_} (4,6,9)) ;
893             },
894             },
895             fo => {
896             one => sub {
897            
898             my $number = shift;
899             my $n = abs($number);
900             my $i = int($n);
901             my ($f) = $number =~ /\.(.*)$/;
902             $f //= '';
903             my $t = length $f ? $f + 0 : '';
904             my $v = length $f;
905             my $w = length $t;
906             $t ||= 0;
907            
908             return scalar (grep {$n == $_} (1)) ;
909             },
910             },
911             fr => {
912             one => sub {
913            
914             my $number = shift;
915             my $n = abs($number);
916             my $i = int($n);
917             my ($f) = $number =~ /\.(.*)$/;
918             $f //= '';
919             my $t = length $f ? $f + 0 : '';
920             my $v = length $f;
921             my $w = length $t;
922             $t ||= 0;
923            
924             return scalar (grep {$i == $_} (0,1)) ;
925             },
926             },
927             fur => {
928             one => sub {
929            
930             my $number = shift;
931             my $n = abs($number);
932             my $i = int($n);
933             my ($f) = $number =~ /\.(.*)$/;
934             $f //= '';
935             my $t = length $f ? $f + 0 : '';
936             my $v = length $f;
937             my $w = length $t;
938             $t ||= 0;
939            
940             return scalar (grep {$n == $_} (1)) ;
941             },
942             },
943             fy => {
944             one => sub {
945            
946             my $number = shift;
947             my $n = abs($number);
948             my $i = int($n);
949             my ($f) = $number =~ /\.(.*)$/;
950             $f //= '';
951             my $t = length $f ? $f + 0 : '';
952             my $v = length $f;
953             my $w = length $t;
954             $t ||= 0;
955            
956             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
957             },
958             },
959             ga => {
960             few => sub {
961            
962             my $number = shift;
963             my $n = abs($number);
964             my $i = int($n);
965             my ($f) = $number =~ /\.(.*)$/;
966             $f //= '';
967             my $t = length $f ? $f + 0 : '';
968             my $v = length $f;
969             my $w = length $t;
970             $t ||= 0;
971            
972             return scalar (grep {$n == $_} (3..6)) ;
973             },
974             many => sub {
975            
976             my $number = shift;
977             my $n = abs($number);
978             my $i = int($n);
979             my ($f) = $number =~ /\.(.*)$/;
980             $f //= '';
981             my $t = length $f ? $f + 0 : '';
982             my $v = length $f;
983             my $w = length $t;
984             $t ||= 0;
985            
986             return scalar (grep {$n == $_} (7..10)) ;
987             },
988             one => sub {
989            
990             my $number = shift;
991             my $n = abs($number);
992             my $i = int($n);
993             my ($f) = $number =~ /\.(.*)$/;
994             $f //= '';
995             my $t = length $f ? $f + 0 : '';
996             my $v = length $f;
997             my $w = length $t;
998             $t ||= 0;
999            
1000             return scalar (grep {$n == $_} (1)) ;
1001             },
1002             two => sub {
1003            
1004             my $number = shift;
1005             my $n = abs($number);
1006             my $i = int($n);
1007             my ($f) = $number =~ /\.(.*)$/;
1008             $f //= '';
1009             my $t = length $f ? $f + 0 : '';
1010             my $v = length $f;
1011             my $w = length $t;
1012             $t ||= 0;
1013            
1014             return scalar (grep {$n == $_} (2)) ;
1015             },
1016             },
1017             gd => {
1018             few => sub {
1019            
1020             my $number = shift;
1021             my $n = abs($number);
1022             my $i = int($n);
1023             my ($f) = $number =~ /\.(.*)$/;
1024             $f //= '';
1025             my $t = length $f ? $f + 0 : '';
1026             my $v = length $f;
1027             my $w = length $t;
1028             $t ||= 0;
1029            
1030             return scalar (grep {$n == $_} (3..10,13..19)) ;
1031             },
1032             one => sub {
1033            
1034             my $number = shift;
1035             my $n = abs($number);
1036             my $i = int($n);
1037             my ($f) = $number =~ /\.(.*)$/;
1038             $f //= '';
1039             my $t = length $f ? $f + 0 : '';
1040             my $v = length $f;
1041             my $w = length $t;
1042             $t ||= 0;
1043            
1044             return scalar (grep {$n == $_} (1,11)) ;
1045             },
1046             two => sub {
1047            
1048             my $number = shift;
1049             my $n = abs($number);
1050             my $i = int($n);
1051             my ($f) = $number =~ /\.(.*)$/;
1052             $f //= '';
1053             my $t = length $f ? $f + 0 : '';
1054             my $v = length $f;
1055             my $w = length $t;
1056             $t ||= 0;
1057            
1058             return scalar (grep {$n == $_} (2,12)) ;
1059             },
1060             },
1061             gl => {
1062             one => sub {
1063            
1064             my $number = shift;
1065             my $n = abs($number);
1066             my $i = int($n);
1067             my ($f) = $number =~ /\.(.*)$/;
1068             $f //= '';
1069             my $t = length $f ? $f + 0 : '';
1070             my $v = length $f;
1071             my $w = length $t;
1072             $t ||= 0;
1073            
1074             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
1075             },
1076             },
1077             gsw => {
1078             one => sub {
1079            
1080             my $number = shift;
1081             my $n = abs($number);
1082             my $i = int($n);
1083             my ($f) = $number =~ /\.(.*)$/;
1084             $f //= '';
1085             my $t = length $f ? $f + 0 : '';
1086             my $v = length $f;
1087             my $w = length $t;
1088             $t ||= 0;
1089            
1090             return scalar (grep {$n == $_} (1)) ;
1091             },
1092             },
1093             gu => {
1094             one => sub {
1095            
1096             my $number = shift;
1097             my $n = abs($number);
1098             my $i = int($n);
1099             my ($f) = $number =~ /\.(.*)$/;
1100             $f //= '';
1101             my $t = length $f ? $f + 0 : '';
1102             my $v = length $f;
1103             my $w = length $t;
1104             $t ||= 0;
1105            
1106             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
1107             },
1108             },
1109             guw => {
1110             one => sub {
1111            
1112             my $number = shift;
1113             my $n = abs($number);
1114             my $i = int($n);
1115             my ($f) = $number =~ /\.(.*)$/;
1116             $f //= '';
1117             my $t = length $f ? $f + 0 : '';
1118             my $v = length $f;
1119             my $w = length $t;
1120             $t ||= 0;
1121            
1122             return scalar (grep {$n == $_} (0..1)) ;
1123             },
1124             },
1125             gv => {
1126             few => sub {
1127            
1128             my $number = shift;
1129             my $n = abs($number);
1130             my $i = int($n);
1131             my ($f) = $number =~ /\.(.*)$/;
1132             $f //= '';
1133             my $t = length $f ? $f + 0 : '';
1134             my $v = length $f;
1135             my $w = length $t;
1136             $t ||= 0;
1137            
1138             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (0,20,40,60,80)) ;
1139             },
1140             many => sub {
1141            
1142             my $number = shift;
1143             my $n = abs($number);
1144             my $i = int($n);
1145             my ($f) = $number =~ /\.(.*)$/;
1146             $f //= '';
1147             my $t = length $f ? $f + 0 : '';
1148             my $v = length $f;
1149             my $w = length $t;
1150             $t ||= 0;
1151            
1152             return ! scalar (grep {$v == $_} (0)) ;
1153             },
1154             one => sub {
1155            
1156             my $number = shift;
1157             my $n = abs($number);
1158             my $i = int($n);
1159             my ($f) = $number =~ /\.(.*)$/;
1160             $f //= '';
1161             my $t = length $f ? $f + 0 : '';
1162             my $v = length $f;
1163             my $w = length $t;
1164             $t ||= 0;
1165            
1166             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (1)) ;
1167             },
1168             two => sub {
1169            
1170             my $number = shift;
1171             my $n = abs($number);
1172             my $i = int($n);
1173             my ($f) = $number =~ /\.(.*)$/;
1174             $f //= '';
1175             my $t = length $f ? $f + 0 : '';
1176             my $v = length $f;
1177             my $w = length $t;
1178             $t ||= 0;
1179            
1180             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (2)) ;
1181             },
1182             },
1183             ha => {
1184             one => sub {
1185            
1186             my $number = shift;
1187             my $n = abs($number);
1188             my $i = int($n);
1189             my ($f) = $number =~ /\.(.*)$/;
1190             $f //= '';
1191             my $t = length $f ? $f + 0 : '';
1192             my $v = length $f;
1193             my $w = length $t;
1194             $t ||= 0;
1195            
1196             return scalar (grep {$n == $_} (1)) ;
1197             },
1198             },
1199             haw => {
1200             one => sub {
1201            
1202             my $number = shift;
1203             my $n = abs($number);
1204             my $i = int($n);
1205             my ($f) = $number =~ /\.(.*)$/;
1206             $f //= '';
1207             my $t = length $f ? $f + 0 : '';
1208             my $v = length $f;
1209             my $w = length $t;
1210             $t ||= 0;
1211            
1212             return scalar (grep {$n == $_} (1)) ;
1213             },
1214             },
1215             he => {
1216             many => sub {
1217            
1218             my $number = shift;
1219             my $n = abs($number);
1220             my $i = int($n);
1221             my ($f) = $number =~ /\.(.*)$/;
1222             $f //= '';
1223             my $t = length $f ? $f + 0 : '';
1224             my $v = length $f;
1225             my $w = length $t;
1226             $t ||= 0;
1227            
1228             return scalar (grep {$v == $_} (0)) && ! scalar (grep {$n == $_} (0..10)) && scalar (grep {$n % 10 == $_} (0)) ;
1229             },
1230             one => sub {
1231            
1232             my $number = shift;
1233             my $n = abs($number);
1234             my $i = int($n);
1235             my ($f) = $number =~ /\.(.*)$/;
1236             $f //= '';
1237             my $t = length $f ? $f + 0 : '';
1238             my $v = length $f;
1239             my $w = length $t;
1240             $t ||= 0;
1241            
1242             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
1243             },
1244             two => sub {
1245            
1246             my $number = shift;
1247             my $n = abs($number);
1248             my $i = int($n);
1249             my ($f) = $number =~ /\.(.*)$/;
1250             $f //= '';
1251             my $t = length $f ? $f + 0 : '';
1252             my $v = length $f;
1253             my $w = length $t;
1254             $t ||= 0;
1255            
1256             return scalar (grep {$i == $_} (2)) && scalar (grep {$v == $_} (0)) ;
1257             },
1258             },
1259             hi => {
1260             one => sub {
1261            
1262             my $number = shift;
1263             my $n = abs($number);
1264             my $i = int($n);
1265             my ($f) = $number =~ /\.(.*)$/;
1266             $f //= '';
1267             my $t = length $f ? $f + 0 : '';
1268             my $v = length $f;
1269             my $w = length $t;
1270             $t ||= 0;
1271            
1272             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
1273             },
1274             },
1275             hr => {
1276             few => sub {
1277            
1278             my $number = shift;
1279             my $n = abs($number);
1280             my $i = int($n);
1281             my ($f) = $number =~ /\.(.*)$/;
1282             $f //= '';
1283             my $t = length $f ? $f + 0 : '';
1284             my $v = length $f;
1285             my $w = length $t;
1286             $t ||= 0;
1287            
1288             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (2..4)) && ! scalar (grep {$i % 100 == $_} (12..14)) || scalar (grep {$f % 10 == $_} (2..4)) && ! scalar (grep {$f % 100 == $_} (12..14)) ;
1289             },
1290             one => sub {
1291            
1292             my $number = shift;
1293             my $n = abs($number);
1294             my $i = int($n);
1295             my ($f) = $number =~ /\.(.*)$/;
1296             $f //= '';
1297             my $t = length $f ? $f + 0 : '';
1298             my $v = length $f;
1299             my $w = length $t;
1300             $t ||= 0;
1301            
1302             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) || scalar (grep {$f % 10 == $_} (1)) && ! scalar (grep {$f % 100 == $_} (11)) ;
1303             },
1304             },
1305             hsb => {
1306             few => sub {
1307            
1308             my $number = shift;
1309             my $n = abs($number);
1310             my $i = int($n);
1311             my ($f) = $number =~ /\.(.*)$/;
1312             $f //= '';
1313             my $t = length $f ? $f + 0 : '';
1314             my $v = length $f;
1315             my $w = length $t;
1316             $t ||= 0;
1317            
1318             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (3..4)) || scalar (grep {$f % 100 == $_} (3..4)) ;
1319             },
1320             one => sub {
1321            
1322             my $number = shift;
1323             my $n = abs($number);
1324             my $i = int($n);
1325             my ($f) = $number =~ /\.(.*)$/;
1326             $f //= '';
1327             my $t = length $f ? $f + 0 : '';
1328             my $v = length $f;
1329             my $w = length $t;
1330             $t ||= 0;
1331            
1332             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (1)) || scalar (grep {$f % 100 == $_} (1)) ;
1333             },
1334             two => sub {
1335            
1336             my $number = shift;
1337             my $n = abs($number);
1338             my $i = int($n);
1339             my ($f) = $number =~ /\.(.*)$/;
1340             $f //= '';
1341             my $t = length $f ? $f + 0 : '';
1342             my $v = length $f;
1343             my $w = length $t;
1344             $t ||= 0;
1345            
1346             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (2)) || scalar (grep {$f % 100 == $_} (2)) ;
1347             },
1348             },
1349             hu => {
1350             one => sub {
1351            
1352             my $number = shift;
1353             my $n = abs($number);
1354             my $i = int($n);
1355             my ($f) = $number =~ /\.(.*)$/;
1356             $f //= '';
1357             my $t = length $f ? $f + 0 : '';
1358             my $v = length $f;
1359             my $w = length $t;
1360             $t ||= 0;
1361            
1362             return scalar (grep {$n == $_} (1)) ;
1363             },
1364             },
1365             hy => {
1366             one => sub {
1367            
1368             my $number = shift;
1369             my $n = abs($number);
1370             my $i = int($n);
1371             my ($f) = $number =~ /\.(.*)$/;
1372             $f //= '';
1373             my $t = length $f ? $f + 0 : '';
1374             my $v = length $f;
1375             my $w = length $t;
1376             $t ||= 0;
1377            
1378             return scalar (grep {$i == $_} (0,1)) ;
1379             },
1380             },
1381             is => {
1382             one => sub {
1383            
1384             my $number = shift;
1385             my $n = abs($number);
1386             my $i = int($n);
1387             my ($f) = $number =~ /\.(.*)$/;
1388             $f //= '';
1389             my $t = length $f ? $f + 0 : '';
1390             my $v = length $f;
1391             my $w = length $t;
1392             $t ||= 0;
1393            
1394             return scalar (grep {$t == $_} (0)) && scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) || ! scalar (grep {$t == $_} (0)) ;
1395             },
1396             },
1397             it => {
1398             one => sub {
1399            
1400             my $number = shift;
1401             my $n = abs($number);
1402             my $i = int($n);
1403             my ($f) = $number =~ /\.(.*)$/;
1404             $f //= '';
1405             my $t = length $f ? $f + 0 : '';
1406             my $v = length $f;
1407             my $w = length $t;
1408             $t ||= 0;
1409            
1410             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
1411             },
1412             },
1413             iu => {
1414             one => sub {
1415            
1416             my $number = shift;
1417             my $n = abs($number);
1418             my $i = int($n);
1419             my ($f) = $number =~ /\.(.*)$/;
1420             $f //= '';
1421             my $t = length $f ? $f + 0 : '';
1422             my $v = length $f;
1423             my $w = length $t;
1424             $t ||= 0;
1425            
1426             return scalar (grep {$n == $_} (1)) ;
1427             },
1428             two => sub {
1429            
1430             my $number = shift;
1431             my $n = abs($number);
1432             my $i = int($n);
1433             my ($f) = $number =~ /\.(.*)$/;
1434             $f //= '';
1435             my $t = length $f ? $f + 0 : '';
1436             my $v = length $f;
1437             my $w = length $t;
1438             $t ||= 0;
1439            
1440             return scalar (grep {$n == $_} (2)) ;
1441             },
1442             },
1443             iw => {
1444             many => sub {
1445            
1446             my $number = shift;
1447             my $n = abs($number);
1448             my $i = int($n);
1449             my ($f) = $number =~ /\.(.*)$/;
1450             $f //= '';
1451             my $t = length $f ? $f + 0 : '';
1452             my $v = length $f;
1453             my $w = length $t;
1454             $t ||= 0;
1455            
1456             return scalar (grep {$v == $_} (0)) && ! scalar (grep {$n == $_} (0..10)) && scalar (grep {$n % 10 == $_} (0)) ;
1457             },
1458             one => sub {
1459            
1460             my $number = shift;
1461             my $n = abs($number);
1462             my $i = int($n);
1463             my ($f) = $number =~ /\.(.*)$/;
1464             $f //= '';
1465             my $t = length $f ? $f + 0 : '';
1466             my $v = length $f;
1467             my $w = length $t;
1468             $t ||= 0;
1469            
1470             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
1471             },
1472             two => sub {
1473            
1474             my $number = shift;
1475             my $n = abs($number);
1476             my $i = int($n);
1477             my ($f) = $number =~ /\.(.*)$/;
1478             $f //= '';
1479             my $t = length $f ? $f + 0 : '';
1480             my $v = length $f;
1481             my $w = length $t;
1482             $t ||= 0;
1483            
1484             return scalar (grep {$i == $_} (2)) && scalar (grep {$v == $_} (0)) ;
1485             },
1486             },
1487             jgo => {
1488             one => sub {
1489            
1490             my $number = shift;
1491             my $n = abs($number);
1492             my $i = int($n);
1493             my ($f) = $number =~ /\.(.*)$/;
1494             $f //= '';
1495             my $t = length $f ? $f + 0 : '';
1496             my $v = length $f;
1497             my $w = length $t;
1498             $t ||= 0;
1499            
1500             return scalar (grep {$n == $_} (1)) ;
1501             },
1502             },
1503             ji => {
1504             one => sub {
1505            
1506             my $number = shift;
1507             my $n = abs($number);
1508             my $i = int($n);
1509             my ($f) = $number =~ /\.(.*)$/;
1510             $f //= '';
1511             my $t = length $f ? $f + 0 : '';
1512             my $v = length $f;
1513             my $w = length $t;
1514             $t ||= 0;
1515            
1516             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
1517             },
1518             },
1519             jmc => {
1520             one => sub {
1521            
1522             my $number = shift;
1523             my $n = abs($number);
1524             my $i = int($n);
1525             my ($f) = $number =~ /\.(.*)$/;
1526             $f //= '';
1527             my $t = length $f ? $f + 0 : '';
1528             my $v = length $f;
1529             my $w = length $t;
1530             $t ||= 0;
1531            
1532             return scalar (grep {$n == $_} (1)) ;
1533             },
1534             },
1535             ka => {
1536             one => sub {
1537            
1538             my $number = shift;
1539             my $n = abs($number);
1540             my $i = int($n);
1541             my ($f) = $number =~ /\.(.*)$/;
1542             $f //= '';
1543             my $t = length $f ? $f + 0 : '';
1544             my $v = length $f;
1545             my $w = length $t;
1546             $t ||= 0;
1547            
1548             return scalar (grep {$n == $_} (1)) ;
1549             },
1550             },
1551             kab => {
1552             one => sub {
1553            
1554             my $number = shift;
1555             my $n = abs($number);
1556             my $i = int($n);
1557             my ($f) = $number =~ /\.(.*)$/;
1558             $f //= '';
1559             my $t = length $f ? $f + 0 : '';
1560             my $v = length $f;
1561             my $w = length $t;
1562             $t ||= 0;
1563            
1564             return scalar (grep {$i == $_} (0,1)) ;
1565             },
1566             },
1567             kaj => {
1568             one => sub {
1569            
1570             my $number = shift;
1571             my $n = abs($number);
1572             my $i = int($n);
1573             my ($f) = $number =~ /\.(.*)$/;
1574             $f //= '';
1575             my $t = length $f ? $f + 0 : '';
1576             my $v = length $f;
1577             my $w = length $t;
1578             $t ||= 0;
1579            
1580             return scalar (grep {$n == $_} (1)) ;
1581             },
1582             },
1583             kcg => {
1584             one => sub {
1585            
1586             my $number = shift;
1587             my $n = abs($number);
1588             my $i = int($n);
1589             my ($f) = $number =~ /\.(.*)$/;
1590             $f //= '';
1591             my $t = length $f ? $f + 0 : '';
1592             my $v = length $f;
1593             my $w = length $t;
1594             $t ||= 0;
1595            
1596             return scalar (grep {$n == $_} (1)) ;
1597             },
1598             },
1599             kk => {
1600             one => sub {
1601            
1602             my $number = shift;
1603             my $n = abs($number);
1604             my $i = int($n);
1605             my ($f) = $number =~ /\.(.*)$/;
1606             $f //= '';
1607             my $t = length $f ? $f + 0 : '';
1608             my $v = length $f;
1609             my $w = length $t;
1610             $t ||= 0;
1611            
1612             return scalar (grep {$n == $_} (1)) ;
1613             },
1614             },
1615             kkj => {
1616             one => sub {
1617            
1618             my $number = shift;
1619             my $n = abs($number);
1620             my $i = int($n);
1621             my ($f) = $number =~ /\.(.*)$/;
1622             $f //= '';
1623             my $t = length $f ? $f + 0 : '';
1624             my $v = length $f;
1625             my $w = length $t;
1626             $t ||= 0;
1627            
1628             return scalar (grep {$n == $_} (1)) ;
1629             },
1630             },
1631             kl => {
1632             one => sub {
1633            
1634             my $number = shift;
1635             my $n = abs($number);
1636             my $i = int($n);
1637             my ($f) = $number =~ /\.(.*)$/;
1638             $f //= '';
1639             my $t = length $f ? $f + 0 : '';
1640             my $v = length $f;
1641             my $w = length $t;
1642             $t ||= 0;
1643            
1644             return scalar (grep {$n == $_} (1)) ;
1645             },
1646             },
1647             kn => {
1648             one => sub {
1649            
1650             my $number = shift;
1651             my $n = abs($number);
1652             my $i = int($n);
1653             my ($f) = $number =~ /\.(.*)$/;
1654             $f //= '';
1655             my $t = length $f ? $f + 0 : '';
1656             my $v = length $f;
1657             my $w = length $t;
1658             $t ||= 0;
1659            
1660             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
1661             },
1662             },
1663             ks => {
1664             one => sub {
1665            
1666             my $number = shift;
1667             my $n = abs($number);
1668             my $i = int($n);
1669             my ($f) = $number =~ /\.(.*)$/;
1670             $f //= '';
1671             my $t = length $f ? $f + 0 : '';
1672             my $v = length $f;
1673             my $w = length $t;
1674             $t ||= 0;
1675            
1676             return scalar (grep {$n == $_} (1)) ;
1677             },
1678             },
1679             ksb => {
1680             one => sub {
1681            
1682             my $number = shift;
1683             my $n = abs($number);
1684             my $i = int($n);
1685             my ($f) = $number =~ /\.(.*)$/;
1686             $f //= '';
1687             my $t = length $f ? $f + 0 : '';
1688             my $v = length $f;
1689             my $w = length $t;
1690             $t ||= 0;
1691            
1692             return scalar (grep {$n == $_} (1)) ;
1693             },
1694             },
1695             ksh => {
1696             one => sub {
1697            
1698             my $number = shift;
1699             my $n = abs($number);
1700             my $i = int($n);
1701             my ($f) = $number =~ /\.(.*)$/;
1702             $f //= '';
1703             my $t = length $f ? $f + 0 : '';
1704             my $v = length $f;
1705             my $w = length $t;
1706             $t ||= 0;
1707            
1708             return scalar (grep {$n == $_} (1)) ;
1709             },
1710             zero => sub {
1711            
1712             my $number = shift;
1713             my $n = abs($number);
1714             my $i = int($n);
1715             my ($f) = $number =~ /\.(.*)$/;
1716             $f //= '';
1717             my $t = length $f ? $f + 0 : '';
1718             my $v = length $f;
1719             my $w = length $t;
1720             $t ||= 0;
1721            
1722             return scalar (grep {$n == $_} (0)) ;
1723             },
1724             },
1725             ku => {
1726             one => sub {
1727            
1728             my $number = shift;
1729             my $n = abs($number);
1730             my $i = int($n);
1731             my ($f) = $number =~ /\.(.*)$/;
1732             $f //= '';
1733             my $t = length $f ? $f + 0 : '';
1734             my $v = length $f;
1735             my $w = length $t;
1736             $t ||= 0;
1737            
1738             return scalar (grep {$n == $_} (1)) ;
1739             },
1740             },
1741             kw => {
1742             one => sub {
1743            
1744             my $number = shift;
1745             my $n = abs($number);
1746             my $i = int($n);
1747             my ($f) = $number =~ /\.(.*)$/;
1748             $f //= '';
1749             my $t = length $f ? $f + 0 : '';
1750             my $v = length $f;
1751             my $w = length $t;
1752             $t ||= 0;
1753            
1754             return scalar (grep {$n == $_} (1)) ;
1755             },
1756             two => sub {
1757            
1758             my $number = shift;
1759             my $n = abs($number);
1760             my $i = int($n);
1761             my ($f) = $number =~ /\.(.*)$/;
1762             $f //= '';
1763             my $t = length $f ? $f + 0 : '';
1764             my $v = length $f;
1765             my $w = length $t;
1766             $t ||= 0;
1767            
1768             return scalar (grep {$n == $_} (2)) ;
1769             },
1770             },
1771             ky => {
1772             one => sub {
1773            
1774             my $number = shift;
1775             my $n = abs($number);
1776             my $i = int($n);
1777             my ($f) = $number =~ /\.(.*)$/;
1778             $f //= '';
1779             my $t = length $f ? $f + 0 : '';
1780             my $v = length $f;
1781             my $w = length $t;
1782             $t ||= 0;
1783            
1784             return scalar (grep {$n == $_} (1)) ;
1785             },
1786             },
1787             lag => {
1788             one => sub {
1789            
1790             my $number = shift;
1791             my $n = abs($number);
1792             my $i = int($n);
1793             my ($f) = $number =~ /\.(.*)$/;
1794             $f //= '';
1795             my $t = length $f ? $f + 0 : '';
1796             my $v = length $f;
1797             my $w = length $t;
1798             $t ||= 0;
1799            
1800             return scalar (grep {$i == $_} (0,1)) && ! scalar (grep {$n == $_} (0)) ;
1801             },
1802             zero => sub {
1803            
1804             my $number = shift;
1805             my $n = abs($number);
1806             my $i = int($n);
1807             my ($f) = $number =~ /\.(.*)$/;
1808             $f //= '';
1809             my $t = length $f ? $f + 0 : '';
1810             my $v = length $f;
1811             my $w = length $t;
1812             $t ||= 0;
1813            
1814             return scalar (grep {$n == $_} (0)) ;
1815             },
1816             },
1817             lb => {
1818             one => sub {
1819            
1820             my $number = shift;
1821             my $n = abs($number);
1822             my $i = int($n);
1823             my ($f) = $number =~ /\.(.*)$/;
1824             $f //= '';
1825             my $t = length $f ? $f + 0 : '';
1826             my $v = length $f;
1827             my $w = length $t;
1828             $t ||= 0;
1829            
1830             return scalar (grep {$n == $_} (1)) ;
1831             },
1832             },
1833             lg => {
1834             one => sub {
1835            
1836             my $number = shift;
1837             my $n = abs($number);
1838             my $i = int($n);
1839             my ($f) = $number =~ /\.(.*)$/;
1840             $f //= '';
1841             my $t = length $f ? $f + 0 : '';
1842             my $v = length $f;
1843             my $w = length $t;
1844             $t ||= 0;
1845            
1846             return scalar (grep {$n == $_} (1)) ;
1847             },
1848             },
1849             ln => {
1850             one => sub {
1851            
1852             my $number = shift;
1853             my $n = abs($number);
1854             my $i = int($n);
1855             my ($f) = $number =~ /\.(.*)$/;
1856             $f //= '';
1857             my $t = length $f ? $f + 0 : '';
1858             my $v = length $f;
1859             my $w = length $t;
1860             $t ||= 0;
1861            
1862             return scalar (grep {$n == $_} (0..1)) ;
1863             },
1864             },
1865             lt => {
1866             few => sub {
1867            
1868             my $number = shift;
1869             my $n = abs($number);
1870             my $i = int($n);
1871             my ($f) = $number =~ /\.(.*)$/;
1872             $f //= '';
1873             my $t = length $f ? $f + 0 : '';
1874             my $v = length $f;
1875             my $w = length $t;
1876             $t ||= 0;
1877            
1878             return scalar (grep {$n % 10 == $_} (2..9)) && ! scalar (grep {$n % 100 == $_} (11..19)) ;
1879             },
1880             many => sub {
1881            
1882             my $number = shift;
1883             my $n = abs($number);
1884             my $i = int($n);
1885             my ($f) = $number =~ /\.(.*)$/;
1886             $f //= '';
1887             my $t = length $f ? $f + 0 : '';
1888             my $v = length $f;
1889             my $w = length $t;
1890             $t ||= 0;
1891            
1892             return ! scalar (grep {$f == $_} (0)) ;
1893             },
1894             one => sub {
1895            
1896             my $number = shift;
1897             my $n = abs($number);
1898             my $i = int($n);
1899             my ($f) = $number =~ /\.(.*)$/;
1900             $f //= '';
1901             my $t = length $f ? $f + 0 : '';
1902             my $v = length $f;
1903             my $w = length $t;
1904             $t ||= 0;
1905            
1906             return scalar (grep {$n % 10 == $_} (1)) && ! scalar (grep {$n % 100 == $_} (11..19)) ;
1907             },
1908             },
1909             lv => {
1910             one => sub {
1911            
1912             my $number = shift;
1913             my $n = abs($number);
1914             my $i = int($n);
1915             my ($f) = $number =~ /\.(.*)$/;
1916             $f //= '';
1917             my $t = length $f ? $f + 0 : '';
1918             my $v = length $f;
1919             my $w = length $t;
1920             $t ||= 0;
1921            
1922             return scalar (grep {$n % 10 == $_} (1)) && ! scalar (grep {$n % 100 == $_} (11)) || scalar (grep {$v == $_} (2)) && scalar (grep {$f % 10 == $_} (1)) && ! scalar (grep {$f % 100 == $_} (11)) || ! scalar (grep {$v == $_} (2)) && scalar (grep {$f % 10 == $_} (1)) ;
1923             },
1924             zero => sub {
1925            
1926             my $number = shift;
1927             my $n = abs($number);
1928             my $i = int($n);
1929             my ($f) = $number =~ /\.(.*)$/;
1930             $f //= '';
1931             my $t = length $f ? $f + 0 : '';
1932             my $v = length $f;
1933             my $w = length $t;
1934             $t ||= 0;
1935            
1936             return scalar (grep {$n % 10 == $_} (0)) || scalar (grep {$n % 100 == $_} (11..19)) || scalar (grep {$v == $_} (2)) && scalar (grep {$f % 100 == $_} (11..19)) ;
1937             },
1938             },
1939             mas => {
1940             one => sub {
1941            
1942             my $number = shift;
1943             my $n = abs($number);
1944             my $i = int($n);
1945             my ($f) = $number =~ /\.(.*)$/;
1946             $f //= '';
1947             my $t = length $f ? $f + 0 : '';
1948             my $v = length $f;
1949             my $w = length $t;
1950             $t ||= 0;
1951            
1952             return scalar (grep {$n == $_} (1)) ;
1953             },
1954             },
1955             mg => {
1956             one => sub {
1957            
1958             my $number = shift;
1959             my $n = abs($number);
1960             my $i = int($n);
1961             my ($f) = $number =~ /\.(.*)$/;
1962             $f //= '';
1963             my $t = length $f ? $f + 0 : '';
1964             my $v = length $f;
1965             my $w = length $t;
1966             $t ||= 0;
1967            
1968             return scalar (grep {$n == $_} (0..1)) ;
1969             },
1970             },
1971             mgo => {
1972             one => sub {
1973            
1974             my $number = shift;
1975             my $n = abs($number);
1976             my $i = int($n);
1977             my ($f) = $number =~ /\.(.*)$/;
1978             $f //= '';
1979             my $t = length $f ? $f + 0 : '';
1980             my $v = length $f;
1981             my $w = length $t;
1982             $t ||= 0;
1983            
1984             return scalar (grep {$n == $_} (1)) ;
1985             },
1986             },
1987             mk => {
1988             one => sub {
1989            
1990             my $number = shift;
1991             my $n = abs($number);
1992             my $i = int($n);
1993             my ($f) = $number =~ /\.(.*)$/;
1994             $f //= '';
1995             my $t = length $f ? $f + 0 : '';
1996             my $v = length $f;
1997             my $w = length $t;
1998             $t ||= 0;
1999            
2000             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (1)) || scalar (grep {$f % 10 == $_} (1)) ;
2001             },
2002             },
2003             ml => {
2004             one => sub {
2005            
2006             my $number = shift;
2007             my $n = abs($number);
2008             my $i = int($n);
2009             my ($f) = $number =~ /\.(.*)$/;
2010             $f //= '';
2011             my $t = length $f ? $f + 0 : '';
2012             my $v = length $f;
2013             my $w = length $t;
2014             $t ||= 0;
2015            
2016             return scalar (grep {$n == $_} (1)) ;
2017             },
2018             },
2019             mn => {
2020             one => sub {
2021            
2022             my $number = shift;
2023             my $n = abs($number);
2024             my $i = int($n);
2025             my ($f) = $number =~ /\.(.*)$/;
2026             $f //= '';
2027             my $t = length $f ? $f + 0 : '';
2028             my $v = length $f;
2029             my $w = length $t;
2030             $t ||= 0;
2031            
2032             return scalar (grep {$n == $_} (1)) ;
2033             },
2034             },
2035             mo => {
2036             few => sub {
2037            
2038             my $number = shift;
2039             my $n = abs($number);
2040             my $i = int($n);
2041             my ($f) = $number =~ /\.(.*)$/;
2042             $f //= '';
2043             my $t = length $f ? $f + 0 : '';
2044             my $v = length $f;
2045             my $w = length $t;
2046             $t ||= 0;
2047            
2048             return ! scalar (grep {$v == $_} (0)) || scalar (grep {$n == $_} (0)) || ! scalar (grep {$n == $_} (1)) && scalar (grep {$n % 100 == $_} (1..19)) ;
2049             },
2050             one => sub {
2051            
2052             my $number = shift;
2053             my $n = abs($number);
2054             my $i = int($n);
2055             my ($f) = $number =~ /\.(.*)$/;
2056             $f //= '';
2057             my $t = length $f ? $f + 0 : '';
2058             my $v = length $f;
2059             my $w = length $t;
2060             $t ||= 0;
2061            
2062             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
2063             },
2064             },
2065             mr => {
2066             one => sub {
2067            
2068             my $number = shift;
2069             my $n = abs($number);
2070             my $i = int($n);
2071             my ($f) = $number =~ /\.(.*)$/;
2072             $f //= '';
2073             my $t = length $f ? $f + 0 : '';
2074             my $v = length $f;
2075             my $w = length $t;
2076             $t ||= 0;
2077            
2078             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
2079             },
2080             },
2081             mt => {
2082             few => sub {
2083            
2084             my $number = shift;
2085             my $n = abs($number);
2086             my $i = int($n);
2087             my ($f) = $number =~ /\.(.*)$/;
2088             $f //= '';
2089             my $t = length $f ? $f + 0 : '';
2090             my $v = length $f;
2091             my $w = length $t;
2092             $t ||= 0;
2093            
2094             return scalar (grep {$n == $_} (0)) || scalar (grep {$n % 100 == $_} (2..10)) ;
2095             },
2096             many => sub {
2097            
2098             my $number = shift;
2099             my $n = abs($number);
2100             my $i = int($n);
2101             my ($f) = $number =~ /\.(.*)$/;
2102             $f //= '';
2103             my $t = length $f ? $f + 0 : '';
2104             my $v = length $f;
2105             my $w = length $t;
2106             $t ||= 0;
2107            
2108             return scalar (grep {$n % 100 == $_} (11..19)) ;
2109             },
2110             one => sub {
2111            
2112             my $number = shift;
2113             my $n = abs($number);
2114             my $i = int($n);
2115             my ($f) = $number =~ /\.(.*)$/;
2116             $f //= '';
2117             my $t = length $f ? $f + 0 : '';
2118             my $v = length $f;
2119             my $w = length $t;
2120             $t ||= 0;
2121            
2122             return scalar (grep {$n == $_} (1)) ;
2123             },
2124             },
2125             nah => {
2126             one => sub {
2127            
2128             my $number = shift;
2129             my $n = abs($number);
2130             my $i = int($n);
2131             my ($f) = $number =~ /\.(.*)$/;
2132             $f //= '';
2133             my $t = length $f ? $f + 0 : '';
2134             my $v = length $f;
2135             my $w = length $t;
2136             $t ||= 0;
2137            
2138             return scalar (grep {$n == $_} (1)) ;
2139             },
2140             },
2141             naq => {
2142             one => sub {
2143            
2144             my $number = shift;
2145             my $n = abs($number);
2146             my $i = int($n);
2147             my ($f) = $number =~ /\.(.*)$/;
2148             $f //= '';
2149             my $t = length $f ? $f + 0 : '';
2150             my $v = length $f;
2151             my $w = length $t;
2152             $t ||= 0;
2153            
2154             return scalar (grep {$n == $_} (1)) ;
2155             },
2156             two => sub {
2157            
2158             my $number = shift;
2159             my $n = abs($number);
2160             my $i = int($n);
2161             my ($f) = $number =~ /\.(.*)$/;
2162             $f //= '';
2163             my $t = length $f ? $f + 0 : '';
2164             my $v = length $f;
2165             my $w = length $t;
2166             $t ||= 0;
2167            
2168             return scalar (grep {$n == $_} (2)) ;
2169             },
2170             },
2171             nb => {
2172             one => sub {
2173            
2174             my $number = shift;
2175             my $n = abs($number);
2176             my $i = int($n);
2177             my ($f) = $number =~ /\.(.*)$/;
2178             $f //= '';
2179             my $t = length $f ? $f + 0 : '';
2180             my $v = length $f;
2181             my $w = length $t;
2182             $t ||= 0;
2183            
2184             return scalar (grep {$n == $_} (1)) ;
2185             },
2186             },
2187             nd => {
2188             one => sub {
2189            
2190             my $number = shift;
2191             my $n = abs($number);
2192             my $i = int($n);
2193             my ($f) = $number =~ /\.(.*)$/;
2194             $f //= '';
2195             my $t = length $f ? $f + 0 : '';
2196             my $v = length $f;
2197             my $w = length $t;
2198             $t ||= 0;
2199            
2200             return scalar (grep {$n == $_} (1)) ;
2201             },
2202             },
2203             ne => {
2204             one => sub {
2205            
2206             my $number = shift;
2207             my $n = abs($number);
2208             my $i = int($n);
2209             my ($f) = $number =~ /\.(.*)$/;
2210             $f //= '';
2211             my $t = length $f ? $f + 0 : '';
2212             my $v = length $f;
2213             my $w = length $t;
2214             $t ||= 0;
2215            
2216             return scalar (grep {$n == $_} (1)) ;
2217             },
2218             },
2219             nl => {
2220             one => sub {
2221            
2222             my $number = shift;
2223             my $n = abs($number);
2224             my $i = int($n);
2225             my ($f) = $number =~ /\.(.*)$/;
2226             $f //= '';
2227             my $t = length $f ? $f + 0 : '';
2228             my $v = length $f;
2229             my $w = length $t;
2230             $t ||= 0;
2231            
2232             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
2233             },
2234             },
2235             nn => {
2236             one => sub {
2237            
2238             my $number = shift;
2239             my $n = abs($number);
2240             my $i = int($n);
2241             my ($f) = $number =~ /\.(.*)$/;
2242             $f //= '';
2243             my $t = length $f ? $f + 0 : '';
2244             my $v = length $f;
2245             my $w = length $t;
2246             $t ||= 0;
2247            
2248             return scalar (grep {$n == $_} (1)) ;
2249             },
2250             },
2251             nnh => {
2252             one => sub {
2253            
2254             my $number = shift;
2255             my $n = abs($number);
2256             my $i = int($n);
2257             my ($f) = $number =~ /\.(.*)$/;
2258             $f //= '';
2259             my $t = length $f ? $f + 0 : '';
2260             my $v = length $f;
2261             my $w = length $t;
2262             $t ||= 0;
2263            
2264             return scalar (grep {$n == $_} (1)) ;
2265             },
2266             },
2267             no => {
2268             one => sub {
2269            
2270             my $number = shift;
2271             my $n = abs($number);
2272             my $i = int($n);
2273             my ($f) = $number =~ /\.(.*)$/;
2274             $f //= '';
2275             my $t = length $f ? $f + 0 : '';
2276             my $v = length $f;
2277             my $w = length $t;
2278             $t ||= 0;
2279            
2280             return scalar (grep {$n == $_} (1)) ;
2281             },
2282             },
2283             nr => {
2284             one => sub {
2285            
2286             my $number = shift;
2287             my $n = abs($number);
2288             my $i = int($n);
2289             my ($f) = $number =~ /\.(.*)$/;
2290             $f //= '';
2291             my $t = length $f ? $f + 0 : '';
2292             my $v = length $f;
2293             my $w = length $t;
2294             $t ||= 0;
2295            
2296             return scalar (grep {$n == $_} (1)) ;
2297             },
2298             },
2299             nso => {
2300             one => sub {
2301            
2302             my $number = shift;
2303             my $n = abs($number);
2304             my $i = int($n);
2305             my ($f) = $number =~ /\.(.*)$/;
2306             $f //= '';
2307             my $t = length $f ? $f + 0 : '';
2308             my $v = length $f;
2309             my $w = length $t;
2310             $t ||= 0;
2311            
2312             return scalar (grep {$n == $_} (0..1)) ;
2313             },
2314             },
2315             ny => {
2316             one => sub {
2317            
2318             my $number = shift;
2319             my $n = abs($number);
2320             my $i = int($n);
2321             my ($f) = $number =~ /\.(.*)$/;
2322             $f //= '';
2323             my $t = length $f ? $f + 0 : '';
2324             my $v = length $f;
2325             my $w = length $t;
2326             $t ||= 0;
2327            
2328             return scalar (grep {$n == $_} (1)) ;
2329             },
2330             },
2331             nyn => {
2332             one => sub {
2333            
2334             my $number = shift;
2335             my $n = abs($number);
2336             my $i = int($n);
2337             my ($f) = $number =~ /\.(.*)$/;
2338             $f //= '';
2339             my $t = length $f ? $f + 0 : '';
2340             my $v = length $f;
2341             my $w = length $t;
2342             $t ||= 0;
2343            
2344             return scalar (grep {$n == $_} (1)) ;
2345             },
2346             },
2347             om => {
2348             one => sub {
2349            
2350             my $number = shift;
2351             my $n = abs($number);
2352             my $i = int($n);
2353             my ($f) = $number =~ /\.(.*)$/;
2354             $f //= '';
2355             my $t = length $f ? $f + 0 : '';
2356             my $v = length $f;
2357             my $w = length $t;
2358             $t ||= 0;
2359            
2360             return scalar (grep {$n == $_} (1)) ;
2361             },
2362             },
2363             or => {
2364             one => sub {
2365            
2366             my $number = shift;
2367             my $n = abs($number);
2368             my $i = int($n);
2369             my ($f) = $number =~ /\.(.*)$/;
2370             $f //= '';
2371             my $t = length $f ? $f + 0 : '';
2372             my $v = length $f;
2373             my $w = length $t;
2374             $t ||= 0;
2375            
2376             return scalar (grep {$n == $_} (1)) ;
2377             },
2378             },
2379             os => {
2380             one => sub {
2381            
2382             my $number = shift;
2383             my $n = abs($number);
2384             my $i = int($n);
2385             my ($f) = $number =~ /\.(.*)$/;
2386             $f //= '';
2387             my $t = length $f ? $f + 0 : '';
2388             my $v = length $f;
2389             my $w = length $t;
2390             $t ||= 0;
2391            
2392             return scalar (grep {$n == $_} (1)) ;
2393             },
2394             },
2395             pa => {
2396             one => sub {
2397            
2398             my $number = shift;
2399             my $n = abs($number);
2400             my $i = int($n);
2401             my ($f) = $number =~ /\.(.*)$/;
2402             $f //= '';
2403             my $t = length $f ? $f + 0 : '';
2404             my $v = length $f;
2405             my $w = length $t;
2406             $t ||= 0;
2407            
2408             return scalar (grep {$n == $_} (0..1)) ;
2409             },
2410             },
2411             pap => {
2412             one => sub {
2413            
2414             my $number = shift;
2415             my $n = abs($number);
2416             my $i = int($n);
2417             my ($f) = $number =~ /\.(.*)$/;
2418             $f //= '';
2419             my $t = length $f ? $f + 0 : '';
2420             my $v = length $f;
2421             my $w = length $t;
2422             $t ||= 0;
2423            
2424             return scalar (grep {$n == $_} (1)) ;
2425             },
2426             },
2427             pl => {
2428             few => sub {
2429            
2430             my $number = shift;
2431             my $n = abs($number);
2432             my $i = int($n);
2433             my ($f) = $number =~ /\.(.*)$/;
2434             $f //= '';
2435             my $t = length $f ? $f + 0 : '';
2436             my $v = length $f;
2437             my $w = length $t;
2438             $t ||= 0;
2439            
2440             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (2..4)) && ! scalar (grep {$i % 100 == $_} (12..14)) ;
2441             },
2442             many => sub {
2443            
2444             my $number = shift;
2445             my $n = abs($number);
2446             my $i = int($n);
2447             my ($f) = $number =~ /\.(.*)$/;
2448             $f //= '';
2449             my $t = length $f ? $f + 0 : '';
2450             my $v = length $f;
2451             my $w = length $t;
2452             $t ||= 0;
2453            
2454             return scalar (grep {$v == $_} (0)) && ! scalar (grep {$i == $_} (1)) && scalar (grep {$i % 10 == $_} (0..1)) || scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (5..9)) || scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (12..14)) ;
2455             },
2456             one => sub {
2457            
2458             my $number = shift;
2459             my $n = abs($number);
2460             my $i = int($n);
2461             my ($f) = $number =~ /\.(.*)$/;
2462             $f //= '';
2463             my $t = length $f ? $f + 0 : '';
2464             my $v = length $f;
2465             my $w = length $t;
2466             $t ||= 0;
2467            
2468             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
2469             },
2470             },
2471             prg => {
2472             one => sub {
2473            
2474             my $number = shift;
2475             my $n = abs($number);
2476             my $i = int($n);
2477             my ($f) = $number =~ /\.(.*)$/;
2478             $f //= '';
2479             my $t = length $f ? $f + 0 : '';
2480             my $v = length $f;
2481             my $w = length $t;
2482             $t ||= 0;
2483            
2484             return scalar (grep {$n % 10 == $_} (1)) && ! scalar (grep {$n % 100 == $_} (11)) || scalar (grep {$v == $_} (2)) && scalar (grep {$f % 10 == $_} (1)) && ! scalar (grep {$f % 100 == $_} (11)) || ! scalar (grep {$v == $_} (2)) && scalar (grep {$f % 10 == $_} (1)) ;
2485             },
2486             zero => sub {
2487            
2488             my $number = shift;
2489             my $n = abs($number);
2490             my $i = int($n);
2491             my ($f) = $number =~ /\.(.*)$/;
2492             $f //= '';
2493             my $t = length $f ? $f + 0 : '';
2494             my $v = length $f;
2495             my $w = length $t;
2496             $t ||= 0;
2497            
2498             return scalar (grep {$n % 10 == $_} (0)) || scalar (grep {$n % 100 == $_} (11..19)) || scalar (grep {$v == $_} (2)) && scalar (grep {$f % 100 == $_} (11..19)) ;
2499             },
2500             },
2501             ps => {
2502             one => sub {
2503            
2504             my $number = shift;
2505             my $n = abs($number);
2506             my $i = int($n);
2507             my ($f) = $number =~ /\.(.*)$/;
2508             $f //= '';
2509             my $t = length $f ? $f + 0 : '';
2510             my $v = length $f;
2511             my $w = length $t;
2512             $t ||= 0;
2513            
2514             return scalar (grep {$n == $_} (1)) ;
2515             },
2516             },
2517             pt => {
2518             one => sub {
2519            
2520             my $number = shift;
2521             my $n = abs($number);
2522             my $i = int($n);
2523             my ($f) = $number =~ /\.(.*)$/;
2524             $f //= '';
2525             my $t = length $f ? $f + 0 : '';
2526             my $v = length $f;
2527             my $w = length $t;
2528             $t ||= 0;
2529            
2530             return scalar (grep {$n == $_} (0..2)) && ! scalar (grep {$n == $_} (2)) ;
2531             },
2532             },
2533             pt_PT => {
2534             one => sub {
2535            
2536             my $number = shift;
2537             my $n = abs($number);
2538             my $i = int($n);
2539             my ($f) = $number =~ /\.(.*)$/;
2540             $f //= '';
2541             my $t = length $f ? $f + 0 : '';
2542             my $v = length $f;
2543             my $w = length $t;
2544             $t ||= 0;
2545            
2546             return scalar (grep {$n == $_} (1)) && scalar (grep {$v == $_} (0)) ;
2547             },
2548             },
2549             rm => {
2550             one => sub {
2551            
2552             my $number = shift;
2553             my $n = abs($number);
2554             my $i = int($n);
2555             my ($f) = $number =~ /\.(.*)$/;
2556             $f //= '';
2557             my $t = length $f ? $f + 0 : '';
2558             my $v = length $f;
2559             my $w = length $t;
2560             $t ||= 0;
2561            
2562             return scalar (grep {$n == $_} (1)) ;
2563             },
2564             },
2565             ro => {
2566             few => sub {
2567            
2568             my $number = shift;
2569             my $n = abs($number);
2570             my $i = int($n);
2571             my ($f) = $number =~ /\.(.*)$/;
2572             $f //= '';
2573             my $t = length $f ? $f + 0 : '';
2574             my $v = length $f;
2575             my $w = length $t;
2576             $t ||= 0;
2577            
2578             return ! scalar (grep {$v == $_} (0)) || scalar (grep {$n == $_} (0)) || ! scalar (grep {$n == $_} (1)) && scalar (grep {$n % 100 == $_} (1..19)) ;
2579             },
2580             one => sub {
2581            
2582             my $number = shift;
2583             my $n = abs($number);
2584             my $i = int($n);
2585             my ($f) = $number =~ /\.(.*)$/;
2586             $f //= '';
2587             my $t = length $f ? $f + 0 : '';
2588             my $v = length $f;
2589             my $w = length $t;
2590             $t ||= 0;
2591            
2592             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
2593             },
2594             },
2595             rof => {
2596             one => sub {
2597            
2598             my $number = shift;
2599             my $n = abs($number);
2600             my $i = int($n);
2601             my ($f) = $number =~ /\.(.*)$/;
2602             $f //= '';
2603             my $t = length $f ? $f + 0 : '';
2604             my $v = length $f;
2605             my $w = length $t;
2606             $t ||= 0;
2607            
2608             return scalar (grep {$n == $_} (1)) ;
2609             },
2610             },
2611             ru => {
2612             few => sub {
2613            
2614             my $number = shift;
2615             my $n = abs($number);
2616             my $i = int($n);
2617             my ($f) = $number =~ /\.(.*)$/;
2618             $f //= '';
2619             my $t = length $f ? $f + 0 : '';
2620             my $v = length $f;
2621             my $w = length $t;
2622             $t ||= 0;
2623            
2624             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (2..4)) && ! scalar (grep {$i % 100 == $_} (12..14)) ;
2625             },
2626             many => sub {
2627            
2628             my $number = shift;
2629             my $n = abs($number);
2630             my $i = int($n);
2631             my ($f) = $number =~ /\.(.*)$/;
2632             $f //= '';
2633             my $t = length $f ? $f + 0 : '';
2634             my $v = length $f;
2635             my $w = length $t;
2636             $t ||= 0;
2637            
2638             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (0)) || scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (5..9)) || scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (11..14)) ;
2639             },
2640             one => sub {
2641            
2642             my $number = shift;
2643             my $n = abs($number);
2644             my $i = int($n);
2645             my ($f) = $number =~ /\.(.*)$/;
2646             $f //= '';
2647             my $t = length $f ? $f + 0 : '';
2648             my $v = length $f;
2649             my $w = length $t;
2650             $t ||= 0;
2651            
2652             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) ;
2653             },
2654             },
2655             rwk => {
2656             one => sub {
2657            
2658             my $number = shift;
2659             my $n = abs($number);
2660             my $i = int($n);
2661             my ($f) = $number =~ /\.(.*)$/;
2662             $f //= '';
2663             my $t = length $f ? $f + 0 : '';
2664             my $v = length $f;
2665             my $w = length $t;
2666             $t ||= 0;
2667            
2668             return scalar (grep {$n == $_} (1)) ;
2669             },
2670             },
2671             saq => {
2672             one => sub {
2673            
2674             my $number = shift;
2675             my $n = abs($number);
2676             my $i = int($n);
2677             my ($f) = $number =~ /\.(.*)$/;
2678             $f //= '';
2679             my $t = length $f ? $f + 0 : '';
2680             my $v = length $f;
2681             my $w = length $t;
2682             $t ||= 0;
2683            
2684             return scalar (grep {$n == $_} (1)) ;
2685             },
2686             },
2687             sdh => {
2688             one => sub {
2689            
2690             my $number = shift;
2691             my $n = abs($number);
2692             my $i = int($n);
2693             my ($f) = $number =~ /\.(.*)$/;
2694             $f //= '';
2695             my $t = length $f ? $f + 0 : '';
2696             my $v = length $f;
2697             my $w = length $t;
2698             $t ||= 0;
2699            
2700             return scalar (grep {$n == $_} (1)) ;
2701             },
2702             },
2703             se => {
2704             one => sub {
2705            
2706             my $number = shift;
2707             my $n = abs($number);
2708             my $i = int($n);
2709             my ($f) = $number =~ /\.(.*)$/;
2710             $f //= '';
2711             my $t = length $f ? $f + 0 : '';
2712             my $v = length $f;
2713             my $w = length $t;
2714             $t ||= 0;
2715            
2716             return scalar (grep {$n == $_} (1)) ;
2717             },
2718             two => sub {
2719            
2720             my $number = shift;
2721             my $n = abs($number);
2722             my $i = int($n);
2723             my ($f) = $number =~ /\.(.*)$/;
2724             $f //= '';
2725             my $t = length $f ? $f + 0 : '';
2726             my $v = length $f;
2727             my $w = length $t;
2728             $t ||= 0;
2729            
2730             return scalar (grep {$n == $_} (2)) ;
2731             },
2732             },
2733             seh => {
2734             one => sub {
2735            
2736             my $number = shift;
2737             my $n = abs($number);
2738             my $i = int($n);
2739             my ($f) = $number =~ /\.(.*)$/;
2740             $f //= '';
2741             my $t = length $f ? $f + 0 : '';
2742             my $v = length $f;
2743             my $w = length $t;
2744             $t ||= 0;
2745            
2746             return scalar (grep {$n == $_} (1)) ;
2747             },
2748             },
2749             sh => {
2750             few => sub {
2751            
2752             my $number = shift;
2753             my $n = abs($number);
2754             my $i = int($n);
2755             my ($f) = $number =~ /\.(.*)$/;
2756             $f //= '';
2757             my $t = length $f ? $f + 0 : '';
2758             my $v = length $f;
2759             my $w = length $t;
2760             $t ||= 0;
2761            
2762             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (2..4)) && ! scalar (grep {$i % 100 == $_} (12..14)) || scalar (grep {$f % 10 == $_} (2..4)) && ! scalar (grep {$f % 100 == $_} (12..14)) ;
2763             },
2764             one => sub {
2765            
2766             my $number = shift;
2767             my $n = abs($number);
2768             my $i = int($n);
2769             my ($f) = $number =~ /\.(.*)$/;
2770             $f //= '';
2771             my $t = length $f ? $f + 0 : '';
2772             my $v = length $f;
2773             my $w = length $t;
2774             $t ||= 0;
2775            
2776             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) || scalar (grep {$f % 10 == $_} (1)) && ! scalar (grep {$f % 100 == $_} (11)) ;
2777             },
2778             },
2779             shi => {
2780             few => sub {
2781            
2782             my $number = shift;
2783             my $n = abs($number);
2784             my $i = int($n);
2785             my ($f) = $number =~ /\.(.*)$/;
2786             $f //= '';
2787             my $t = length $f ? $f + 0 : '';
2788             my $v = length $f;
2789             my $w = length $t;
2790             $t ||= 0;
2791            
2792             return scalar (grep {$n == $_} (2..10)) ;
2793             },
2794             one => sub {
2795            
2796             my $number = shift;
2797             my $n = abs($number);
2798             my $i = int($n);
2799             my ($f) = $number =~ /\.(.*)$/;
2800             $f //= '';
2801             my $t = length $f ? $f + 0 : '';
2802             my $v = length $f;
2803             my $w = length $t;
2804             $t ||= 0;
2805            
2806             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
2807             },
2808             },
2809             si => {
2810             one => sub {
2811            
2812             my $number = shift;
2813             my $n = abs($number);
2814             my $i = int($n);
2815             my ($f) = $number =~ /\.(.*)$/;
2816             $f //= '';
2817             my $t = length $f ? $f + 0 : '';
2818             my $v = length $f;
2819             my $w = length $t;
2820             $t ||= 0;
2821            
2822             return scalar (grep {$n == $_} (0,1)) || scalar (grep {$i == $_} (0)) && scalar (grep {$f == $_} (1)) ;
2823             },
2824             },
2825             sk => {
2826             few => sub {
2827            
2828             my $number = shift;
2829             my $n = abs($number);
2830             my $i = int($n);
2831             my ($f) = $number =~ /\.(.*)$/;
2832             $f //= '';
2833             my $t = length $f ? $f + 0 : '';
2834             my $v = length $f;
2835             my $w = length $t;
2836             $t ||= 0;
2837            
2838             return scalar (grep {$i == $_} (2..4)) && scalar (grep {$v == $_} (0)) ;
2839             },
2840             many => sub {
2841            
2842             my $number = shift;
2843             my $n = abs($number);
2844             my $i = int($n);
2845             my ($f) = $number =~ /\.(.*)$/;
2846             $f //= '';
2847             my $t = length $f ? $f + 0 : '';
2848             my $v = length $f;
2849             my $w = length $t;
2850             $t ||= 0;
2851            
2852             return ! scalar (grep {$v == $_} (0)) ;
2853             },
2854             one => sub {
2855            
2856             my $number = shift;
2857             my $n = abs($number);
2858             my $i = int($n);
2859             my ($f) = $number =~ /\.(.*)$/;
2860             $f //= '';
2861             my $t = length $f ? $f + 0 : '';
2862             my $v = length $f;
2863             my $w = length $t;
2864             $t ||= 0;
2865            
2866             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
2867             },
2868             },
2869             sl => {
2870             few => sub {
2871            
2872             my $number = shift;
2873             my $n = abs($number);
2874             my $i = int($n);
2875             my ($f) = $number =~ /\.(.*)$/;
2876             $f //= '';
2877             my $t = length $f ? $f + 0 : '';
2878             my $v = length $f;
2879             my $w = length $t;
2880             $t ||= 0;
2881            
2882             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (3..4)) || ! scalar (grep {$v == $_} (0)) ;
2883             },
2884             one => sub {
2885            
2886             my $number = shift;
2887             my $n = abs($number);
2888             my $i = int($n);
2889             my ($f) = $number =~ /\.(.*)$/;
2890             $f //= '';
2891             my $t = length $f ? $f + 0 : '';
2892             my $v = length $f;
2893             my $w = length $t;
2894             $t ||= 0;
2895            
2896             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (1)) ;
2897             },
2898             two => sub {
2899            
2900             my $number = shift;
2901             my $n = abs($number);
2902             my $i = int($n);
2903             my ($f) = $number =~ /\.(.*)$/;
2904             $f //= '';
2905             my $t = length $f ? $f + 0 : '';
2906             my $v = length $f;
2907             my $w = length $t;
2908             $t ||= 0;
2909            
2910             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (2)) ;
2911             },
2912             },
2913             sma => {
2914             one => sub {
2915            
2916             my $number = shift;
2917             my $n = abs($number);
2918             my $i = int($n);
2919             my ($f) = $number =~ /\.(.*)$/;
2920             $f //= '';
2921             my $t = length $f ? $f + 0 : '';
2922             my $v = length $f;
2923             my $w = length $t;
2924             $t ||= 0;
2925            
2926             return scalar (grep {$n == $_} (1)) ;
2927             },
2928             two => sub {
2929            
2930             my $number = shift;
2931             my $n = abs($number);
2932             my $i = int($n);
2933             my ($f) = $number =~ /\.(.*)$/;
2934             $f //= '';
2935             my $t = length $f ? $f + 0 : '';
2936             my $v = length $f;
2937             my $w = length $t;
2938             $t ||= 0;
2939            
2940             return scalar (grep {$n == $_} (2)) ;
2941             },
2942             },
2943             smi => {
2944             one => sub {
2945            
2946             my $number = shift;
2947             my $n = abs($number);
2948             my $i = int($n);
2949             my ($f) = $number =~ /\.(.*)$/;
2950             $f //= '';
2951             my $t = length $f ? $f + 0 : '';
2952             my $v = length $f;
2953             my $w = length $t;
2954             $t ||= 0;
2955            
2956             return scalar (grep {$n == $_} (1)) ;
2957             },
2958             two => sub {
2959            
2960             my $number = shift;
2961             my $n = abs($number);
2962             my $i = int($n);
2963             my ($f) = $number =~ /\.(.*)$/;
2964             $f //= '';
2965             my $t = length $f ? $f + 0 : '';
2966             my $v = length $f;
2967             my $w = length $t;
2968             $t ||= 0;
2969            
2970             return scalar (grep {$n == $_} (2)) ;
2971             },
2972             },
2973             smj => {
2974             one => sub {
2975            
2976             my $number = shift;
2977             my $n = abs($number);
2978             my $i = int($n);
2979             my ($f) = $number =~ /\.(.*)$/;
2980             $f //= '';
2981             my $t = length $f ? $f + 0 : '';
2982             my $v = length $f;
2983             my $w = length $t;
2984             $t ||= 0;
2985            
2986             return scalar (grep {$n == $_} (1)) ;
2987             },
2988             two => sub {
2989            
2990             my $number = shift;
2991             my $n = abs($number);
2992             my $i = int($n);
2993             my ($f) = $number =~ /\.(.*)$/;
2994             $f //= '';
2995             my $t = length $f ? $f + 0 : '';
2996             my $v = length $f;
2997             my $w = length $t;
2998             $t ||= 0;
2999            
3000             return scalar (grep {$n == $_} (2)) ;
3001             },
3002             },
3003             smn => {
3004             one => sub {
3005            
3006             my $number = shift;
3007             my $n = abs($number);
3008             my $i = int($n);
3009             my ($f) = $number =~ /\.(.*)$/;
3010             $f //= '';
3011             my $t = length $f ? $f + 0 : '';
3012             my $v = length $f;
3013             my $w = length $t;
3014             $t ||= 0;
3015            
3016             return scalar (grep {$n == $_} (1)) ;
3017             },
3018             two => sub {
3019            
3020             my $number = shift;
3021             my $n = abs($number);
3022             my $i = int($n);
3023             my ($f) = $number =~ /\.(.*)$/;
3024             $f //= '';
3025             my $t = length $f ? $f + 0 : '';
3026             my $v = length $f;
3027             my $w = length $t;
3028             $t ||= 0;
3029            
3030             return scalar (grep {$n == $_} (2)) ;
3031             },
3032             },
3033             sms => {
3034             one => sub {
3035            
3036             my $number = shift;
3037             my $n = abs($number);
3038             my $i = int($n);
3039             my ($f) = $number =~ /\.(.*)$/;
3040             $f //= '';
3041             my $t = length $f ? $f + 0 : '';
3042             my $v = length $f;
3043             my $w = length $t;
3044             $t ||= 0;
3045            
3046             return scalar (grep {$n == $_} (1)) ;
3047             },
3048             two => sub {
3049            
3050             my $number = shift;
3051             my $n = abs($number);
3052             my $i = int($n);
3053             my ($f) = $number =~ /\.(.*)$/;
3054             $f //= '';
3055             my $t = length $f ? $f + 0 : '';
3056             my $v = length $f;
3057             my $w = length $t;
3058             $t ||= 0;
3059            
3060             return scalar (grep {$n == $_} (2)) ;
3061             },
3062             },
3063             sn => {
3064             one => sub {
3065            
3066             my $number = shift;
3067             my $n = abs($number);
3068             my $i = int($n);
3069             my ($f) = $number =~ /\.(.*)$/;
3070             $f //= '';
3071             my $t = length $f ? $f + 0 : '';
3072             my $v = length $f;
3073             my $w = length $t;
3074             $t ||= 0;
3075            
3076             return scalar (grep {$n == $_} (1)) ;
3077             },
3078             },
3079             so => {
3080             one => sub {
3081            
3082             my $number = shift;
3083             my $n = abs($number);
3084             my $i = int($n);
3085             my ($f) = $number =~ /\.(.*)$/;
3086             $f //= '';
3087             my $t = length $f ? $f + 0 : '';
3088             my $v = length $f;
3089             my $w = length $t;
3090             $t ||= 0;
3091            
3092             return scalar (grep {$n == $_} (1)) ;
3093             },
3094             },
3095             sq => {
3096             one => sub {
3097            
3098             my $number = shift;
3099             my $n = abs($number);
3100             my $i = int($n);
3101             my ($f) = $number =~ /\.(.*)$/;
3102             $f //= '';
3103             my $t = length $f ? $f + 0 : '';
3104             my $v = length $f;
3105             my $w = length $t;
3106             $t ||= 0;
3107            
3108             return scalar (grep {$n == $_} (1)) ;
3109             },
3110             },
3111             sr => {
3112             few => sub {
3113            
3114             my $number = shift;
3115             my $n = abs($number);
3116             my $i = int($n);
3117             my ($f) = $number =~ /\.(.*)$/;
3118             $f //= '';
3119             my $t = length $f ? $f + 0 : '';
3120             my $v = length $f;
3121             my $w = length $t;
3122             $t ||= 0;
3123            
3124             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (2..4)) && ! scalar (grep {$i % 100 == $_} (12..14)) || scalar (grep {$f % 10 == $_} (2..4)) && ! scalar (grep {$f % 100 == $_} (12..14)) ;
3125             },
3126             one => sub {
3127            
3128             my $number = shift;
3129             my $n = abs($number);
3130             my $i = int($n);
3131             my ($f) = $number =~ /\.(.*)$/;
3132             $f //= '';
3133             my $t = length $f ? $f + 0 : '';
3134             my $v = length $f;
3135             my $w = length $t;
3136             $t ||= 0;
3137            
3138             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) || scalar (grep {$f % 10 == $_} (1)) && ! scalar (grep {$f % 100 == $_} (11)) ;
3139             },
3140             },
3141             ss => {
3142             one => sub {
3143            
3144             my $number = shift;
3145             my $n = abs($number);
3146             my $i = int($n);
3147             my ($f) = $number =~ /\.(.*)$/;
3148             $f //= '';
3149             my $t = length $f ? $f + 0 : '';
3150             my $v = length $f;
3151             my $w = length $t;
3152             $t ||= 0;
3153            
3154             return scalar (grep {$n == $_} (1)) ;
3155             },
3156             },
3157             ssy => {
3158             one => sub {
3159            
3160             my $number = shift;
3161             my $n = abs($number);
3162             my $i = int($n);
3163             my ($f) = $number =~ /\.(.*)$/;
3164             $f //= '';
3165             my $t = length $f ? $f + 0 : '';
3166             my $v = length $f;
3167             my $w = length $t;
3168             $t ||= 0;
3169            
3170             return scalar (grep {$n == $_} (1)) ;
3171             },
3172             },
3173             st => {
3174             one => sub {
3175            
3176             my $number = shift;
3177             my $n = abs($number);
3178             my $i = int($n);
3179             my ($f) = $number =~ /\.(.*)$/;
3180             $f //= '';
3181             my $t = length $f ? $f + 0 : '';
3182             my $v = length $f;
3183             my $w = length $t;
3184             $t ||= 0;
3185            
3186             return scalar (grep {$n == $_} (1)) ;
3187             },
3188             },
3189             sv => {
3190             one => sub {
3191            
3192             my $number = shift;
3193             my $n = abs($number);
3194             my $i = int($n);
3195             my ($f) = $number =~ /\.(.*)$/;
3196             $f //= '';
3197             my $t = length $f ? $f + 0 : '';
3198             my $v = length $f;
3199             my $w = length $t;
3200             $t ||= 0;
3201            
3202             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
3203             },
3204             },
3205             sw => {
3206             one => sub {
3207            
3208             my $number = shift;
3209             my $n = abs($number);
3210             my $i = int($n);
3211             my ($f) = $number =~ /\.(.*)$/;
3212             $f //= '';
3213             my $t = length $f ? $f + 0 : '';
3214             my $v = length $f;
3215             my $w = length $t;
3216             $t ||= 0;
3217            
3218             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
3219             },
3220             },
3221             syr => {
3222             one => sub {
3223            
3224             my $number = shift;
3225             my $n = abs($number);
3226             my $i = int($n);
3227             my ($f) = $number =~ /\.(.*)$/;
3228             $f //= '';
3229             my $t = length $f ? $f + 0 : '';
3230             my $v = length $f;
3231             my $w = length $t;
3232             $t ||= 0;
3233            
3234             return scalar (grep {$n == $_} (1)) ;
3235             },
3236             },
3237             ta => {
3238             one => sub {
3239            
3240             my $number = shift;
3241             my $n = abs($number);
3242             my $i = int($n);
3243             my ($f) = $number =~ /\.(.*)$/;
3244             $f //= '';
3245             my $t = length $f ? $f + 0 : '';
3246             my $v = length $f;
3247             my $w = length $t;
3248             $t ||= 0;
3249            
3250             return scalar (grep {$n == $_} (1)) ;
3251             },
3252             },
3253             te => {
3254             one => sub {
3255            
3256             my $number = shift;
3257             my $n = abs($number);
3258             my $i = int($n);
3259             my ($f) = $number =~ /\.(.*)$/;
3260             $f //= '';
3261             my $t = length $f ? $f + 0 : '';
3262             my $v = length $f;
3263             my $w = length $t;
3264             $t ||= 0;
3265            
3266             return scalar (grep {$n == $_} (1)) ;
3267             },
3268             },
3269             teo => {
3270             one => sub {
3271            
3272             my $number = shift;
3273             my $n = abs($number);
3274             my $i = int($n);
3275             my ($f) = $number =~ /\.(.*)$/;
3276             $f //= '';
3277             my $t = length $f ? $f + 0 : '';
3278             my $v = length $f;
3279             my $w = length $t;
3280             $t ||= 0;
3281            
3282             return scalar (grep {$n == $_} (1)) ;
3283             },
3284             },
3285             ti => {
3286             one => sub {
3287            
3288             my $number = shift;
3289             my $n = abs($number);
3290             my $i = int($n);
3291             my ($f) = $number =~ /\.(.*)$/;
3292             $f //= '';
3293             my $t = length $f ? $f + 0 : '';
3294             my $v = length $f;
3295             my $w = length $t;
3296             $t ||= 0;
3297            
3298             return scalar (grep {$n == $_} (0..1)) ;
3299             },
3300             },
3301             tig => {
3302             one => sub {
3303            
3304             my $number = shift;
3305             my $n = abs($number);
3306             my $i = int($n);
3307             my ($f) = $number =~ /\.(.*)$/;
3308             $f //= '';
3309             my $t = length $f ? $f + 0 : '';
3310             my $v = length $f;
3311             my $w = length $t;
3312             $t ||= 0;
3313            
3314             return scalar (grep {$n == $_} (1)) ;
3315             },
3316             },
3317             tk => {
3318             one => sub {
3319            
3320             my $number = shift;
3321             my $n = abs($number);
3322             my $i = int($n);
3323             my ($f) = $number =~ /\.(.*)$/;
3324             $f //= '';
3325             my $t = length $f ? $f + 0 : '';
3326             my $v = length $f;
3327             my $w = length $t;
3328             $t ||= 0;
3329            
3330             return scalar (grep {$n == $_} (1)) ;
3331             },
3332             },
3333             tl => {
3334             one => sub {
3335            
3336             my $number = shift;
3337             my $n = abs($number);
3338             my $i = int($n);
3339             my ($f) = $number =~ /\.(.*)$/;
3340             $f //= '';
3341             my $t = length $f ? $f + 0 : '';
3342             my $v = length $f;
3343             my $w = length $t;
3344             $t ||= 0;
3345            
3346             return scalar (grep {$v == $_} (0)) && scalar (grep {$i == $_} (1,2,3)) || scalar (grep {$v == $_} (0)) && ! scalar (grep {$i % 10 == $_} (4,6,9)) || ! scalar (grep {$v == $_} (0)) && ! scalar (grep {$f % 10 == $_} (4,6,9)) ;
3347             },
3348             },
3349             tn => {
3350             one => sub {
3351            
3352             my $number = shift;
3353             my $n = abs($number);
3354             my $i = int($n);
3355             my ($f) = $number =~ /\.(.*)$/;
3356             $f //= '';
3357             my $t = length $f ? $f + 0 : '';
3358             my $v = length $f;
3359             my $w = length $t;
3360             $t ||= 0;
3361            
3362             return scalar (grep {$n == $_} (1)) ;
3363             },
3364             },
3365             tr => {
3366             one => sub {
3367            
3368             my $number = shift;
3369             my $n = abs($number);
3370             my $i = int($n);
3371             my ($f) = $number =~ /\.(.*)$/;
3372             $f //= '';
3373             my $t = length $f ? $f + 0 : '';
3374             my $v = length $f;
3375             my $w = length $t;
3376             $t ||= 0;
3377            
3378             return scalar (grep {$n == $_} (1)) ;
3379             },
3380             },
3381             ts => {
3382             one => sub {
3383            
3384             my $number = shift;
3385             my $n = abs($number);
3386             my $i = int($n);
3387             my ($f) = $number =~ /\.(.*)$/;
3388             $f //= '';
3389             my $t = length $f ? $f + 0 : '';
3390             my $v = length $f;
3391             my $w = length $t;
3392             $t ||= 0;
3393            
3394             return scalar (grep {$n == $_} (1)) ;
3395             },
3396             },
3397             tzm => {
3398             one => sub {
3399            
3400             my $number = shift;
3401             my $n = abs($number);
3402             my $i = int($n);
3403             my ($f) = $number =~ /\.(.*)$/;
3404             $f //= '';
3405             my $t = length $f ? $f + 0 : '';
3406             my $v = length $f;
3407             my $w = length $t;
3408             $t ||= 0;
3409            
3410             return scalar (grep {$n == $_} (0..1)) || scalar (grep {$n == $_} (11..99)) ;
3411             },
3412             },
3413             ug => {
3414             one => sub {
3415            
3416             my $number = shift;
3417             my $n = abs($number);
3418             my $i = int($n);
3419             my ($f) = $number =~ /\.(.*)$/;
3420             $f //= '';
3421             my $t = length $f ? $f + 0 : '';
3422             my $v = length $f;
3423             my $w = length $t;
3424             $t ||= 0;
3425            
3426             return scalar (grep {$n == $_} (1)) ;
3427             },
3428             },
3429             uk => {
3430             few => sub {
3431            
3432             my $number = shift;
3433             my $n = abs($number);
3434             my $i = int($n);
3435             my ($f) = $number =~ /\.(.*)$/;
3436             $f //= '';
3437             my $t = length $f ? $f + 0 : '';
3438             my $v = length $f;
3439             my $w = length $t;
3440             $t ||= 0;
3441            
3442             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (2..4)) && ! scalar (grep {$i % 100 == $_} (12..14)) ;
3443             },
3444             many => sub {
3445            
3446             my $number = shift;
3447             my $n = abs($number);
3448             my $i = int($n);
3449             my ($f) = $number =~ /\.(.*)$/;
3450             $f //= '';
3451             my $t = length $f ? $f + 0 : '';
3452             my $v = length $f;
3453             my $w = length $t;
3454             $t ||= 0;
3455            
3456             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (0)) || scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (5..9)) || scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (11..14)) ;
3457             },
3458             one => sub {
3459            
3460             my $number = shift;
3461             my $n = abs($number);
3462             my $i = int($n);
3463             my ($f) = $number =~ /\.(.*)$/;
3464             $f //= '';
3465             my $t = length $f ? $f + 0 : '';
3466             my $v = length $f;
3467             my $w = length $t;
3468             $t ||= 0;
3469            
3470             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) ;
3471             },
3472             },
3473             ur => {
3474             one => sub {
3475            
3476             my $number = shift;
3477             my $n = abs($number);
3478             my $i = int($n);
3479             my ($f) = $number =~ /\.(.*)$/;
3480             $f //= '';
3481             my $t = length $f ? $f + 0 : '';
3482             my $v = length $f;
3483             my $w = length $t;
3484             $t ||= 0;
3485            
3486             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
3487             },
3488             },
3489             uz => {
3490             one => sub {
3491            
3492             my $number = shift;
3493             my $n = abs($number);
3494             my $i = int($n);
3495             my ($f) = $number =~ /\.(.*)$/;
3496             $f //= '';
3497             my $t = length $f ? $f + 0 : '';
3498             my $v = length $f;
3499             my $w = length $t;
3500             $t ||= 0;
3501            
3502             return scalar (grep {$n == $_} (1)) ;
3503             },
3504             },
3505             ve => {
3506             one => sub {
3507            
3508             my $number = shift;
3509             my $n = abs($number);
3510             my $i = int($n);
3511             my ($f) = $number =~ /\.(.*)$/;
3512             $f //= '';
3513             my $t = length $f ? $f + 0 : '';
3514             my $v = length $f;
3515             my $w = length $t;
3516             $t ||= 0;
3517            
3518             return scalar (grep {$n == $_} (1)) ;
3519             },
3520             },
3521             vo => {
3522             one => sub {
3523            
3524             my $number = shift;
3525             my $n = abs($number);
3526             my $i = int($n);
3527             my ($f) = $number =~ /\.(.*)$/;
3528             $f //= '';
3529             my $t = length $f ? $f + 0 : '';
3530             my $v = length $f;
3531             my $w = length $t;
3532             $t ||= 0;
3533            
3534             return scalar (grep {$n == $_} (1)) ;
3535             },
3536             },
3537             vun => {
3538             one => sub {
3539            
3540             my $number = shift;
3541             my $n = abs($number);
3542             my $i = int($n);
3543             my ($f) = $number =~ /\.(.*)$/;
3544             $f //= '';
3545             my $t = length $f ? $f + 0 : '';
3546             my $v = length $f;
3547             my $w = length $t;
3548             $t ||= 0;
3549            
3550             return scalar (grep {$n == $_} (1)) ;
3551             },
3552             },
3553             wa => {
3554             one => sub {
3555            
3556             my $number = shift;
3557             my $n = abs($number);
3558             my $i = int($n);
3559             my ($f) = $number =~ /\.(.*)$/;
3560             $f //= '';
3561             my $t = length $f ? $f + 0 : '';
3562             my $v = length $f;
3563             my $w = length $t;
3564             $t ||= 0;
3565            
3566             return scalar (grep {$n == $_} (0..1)) ;
3567             },
3568             },
3569             wae => {
3570             one => sub {
3571            
3572             my $number = shift;
3573             my $n = abs($number);
3574             my $i = int($n);
3575             my ($f) = $number =~ /\.(.*)$/;
3576             $f //= '';
3577             my $t = length $f ? $f + 0 : '';
3578             my $v = length $f;
3579             my $w = length $t;
3580             $t ||= 0;
3581            
3582             return scalar (grep {$n == $_} (1)) ;
3583             },
3584             },
3585             xh => {
3586             one => sub {
3587            
3588             my $number = shift;
3589             my $n = abs($number);
3590             my $i = int($n);
3591             my ($f) = $number =~ /\.(.*)$/;
3592             $f //= '';
3593             my $t = length $f ? $f + 0 : '';
3594             my $v = length $f;
3595             my $w = length $t;
3596             $t ||= 0;
3597            
3598             return scalar (grep {$n == $_} (1)) ;
3599             },
3600             },
3601             xog => {
3602             one => sub {
3603            
3604             my $number = shift;
3605             my $n = abs($number);
3606             my $i = int($n);
3607             my ($f) = $number =~ /\.(.*)$/;
3608             $f //= '';
3609             my $t = length $f ? $f + 0 : '';
3610             my $v = length $f;
3611             my $w = length $t;
3612             $t ||= 0;
3613            
3614             return scalar (grep {$n == $_} (1)) ;
3615             },
3616             },
3617             yi => {
3618             one => sub {
3619            
3620             my $number = shift;
3621             my $n = abs($number);
3622             my $i = int($n);
3623             my ($f) = $number =~ /\.(.*)$/;
3624             $f //= '';
3625             my $t = length $f ? $f + 0 : '';
3626             my $v = length $f;
3627             my $w = length $t;
3628             $t ||= 0;
3629            
3630             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
3631             },
3632             },
3633             zu => {
3634             one => sub {
3635            
3636             my $number = shift;
3637             my $n = abs($number);
3638             my $i = int($n);
3639             my ($f) = $number =~ /\.(.*)$/;
3640             $f //= '';
3641             my $t = length $f ? $f + 0 : '';
3642             my $v = length $f;
3643             my $w = length $t;
3644             $t ||= 0;
3645            
3646             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
3647             },
3648             },
3649             },
3650             ordinal => {
3651             as => {
3652             few => sub {
3653            
3654             my $number = shift;
3655             my $n = abs($number);
3656             my $i = int($n);
3657             my ($f) = $number =~ /\.(.*)$/;
3658             $f //= '';
3659             my $t = length $f ? $f + 0 : '';
3660             my $v = length $f;
3661             my $w = length $t;
3662             $t ||= 0;
3663            
3664             return scalar (grep {$n == $_} (4)) ;
3665             },
3666             many => sub {
3667            
3668             my $number = shift;
3669             my $n = abs($number);
3670             my $i = int($n);
3671             my ($f) = $number =~ /\.(.*)$/;
3672             $f //= '';
3673             my $t = length $f ? $f + 0 : '';
3674             my $v = length $f;
3675             my $w = length $t;
3676             $t ||= 0;
3677            
3678             return scalar (grep {$n == $_} (6)) ;
3679             },
3680             one => sub {
3681            
3682             my $number = shift;
3683             my $n = abs($number);
3684             my $i = int($n);
3685             my ($f) = $number =~ /\.(.*)$/;
3686             $f //= '';
3687             my $t = length $f ? $f + 0 : '';
3688             my $v = length $f;
3689             my $w = length $t;
3690             $t ||= 0;
3691            
3692             return scalar (grep {$n == $_} (1,5,7,8,9,10)) ;
3693             },
3694             two => sub {
3695            
3696             my $number = shift;
3697             my $n = abs($number);
3698             my $i = int($n);
3699             my ($f) = $number =~ /\.(.*)$/;
3700             $f //= '';
3701             my $t = length $f ? $f + 0 : '';
3702             my $v = length $f;
3703             my $w = length $t;
3704             $t ||= 0;
3705            
3706             return scalar (grep {$n == $_} (2,3)) ;
3707             },
3708             },
3709             az => {
3710             few => sub {
3711            
3712             my $number = shift;
3713             my $n = abs($number);
3714             my $i = int($n);
3715             my ($f) = $number =~ /\.(.*)$/;
3716             $f //= '';
3717             my $t = length $f ? $f + 0 : '';
3718             my $v = length $f;
3719             my $w = length $t;
3720             $t ||= 0;
3721            
3722             return scalar (grep {$i % 10 == $_} (3,4)) || scalar (grep {$i % 1000 == $_} (100,200,300,400,500,600,700,800,900)) ;
3723             },
3724             many => sub {
3725            
3726             my $number = shift;
3727             my $n = abs($number);
3728             my $i = int($n);
3729             my ($f) = $number =~ /\.(.*)$/;
3730             $f //= '';
3731             my $t = length $f ? $f + 0 : '';
3732             my $v = length $f;
3733             my $w = length $t;
3734             $t ||= 0;
3735            
3736             return scalar (grep {$i == $_} (0)) || scalar (grep {$i % 10 == $_} (6)) || scalar (grep {$i % 100 == $_} (40,60,90)) ;
3737             },
3738             one => sub {
3739            
3740             my $number = shift;
3741             my $n = abs($number);
3742             my $i = int($n);
3743             my ($f) = $number =~ /\.(.*)$/;
3744             $f //= '';
3745             my $t = length $f ? $f + 0 : '';
3746             my $v = length $f;
3747             my $w = length $t;
3748             $t ||= 0;
3749            
3750             return scalar (grep {$i % 10 == $_} (1,2,5,7,8)) || scalar (grep {$i % 100 == $_} (20,50,70,80)) ;
3751             },
3752             },
3753             be => {
3754             few => sub {
3755            
3756             my $number = shift;
3757             my $n = abs($number);
3758             my $i = int($n);
3759             my ($f) = $number =~ /\.(.*)$/;
3760             $f //= '';
3761             my $t = length $f ? $f + 0 : '';
3762             my $v = length $f;
3763             my $w = length $t;
3764             $t ||= 0;
3765            
3766             return scalar (grep {$n % 10 == $_} (2,3)) && ! scalar (grep {$n % 100 == $_} (12,13)) ;
3767             },
3768             },
3769             bn => {
3770             few => sub {
3771            
3772             my $number = shift;
3773             my $n = abs($number);
3774             my $i = int($n);
3775             my ($f) = $number =~ /\.(.*)$/;
3776             $f //= '';
3777             my $t = length $f ? $f + 0 : '';
3778             my $v = length $f;
3779             my $w = length $t;
3780             $t ||= 0;
3781            
3782             return scalar (grep {$n == $_} (4)) ;
3783             },
3784             many => sub {
3785            
3786             my $number = shift;
3787             my $n = abs($number);
3788             my $i = int($n);
3789             my ($f) = $number =~ /\.(.*)$/;
3790             $f //= '';
3791             my $t = length $f ? $f + 0 : '';
3792             my $v = length $f;
3793             my $w = length $t;
3794             $t ||= 0;
3795            
3796             return scalar (grep {$n == $_} (6)) ;
3797             },
3798             one => sub {
3799            
3800             my $number = shift;
3801             my $n = abs($number);
3802             my $i = int($n);
3803             my ($f) = $number =~ /\.(.*)$/;
3804             $f //= '';
3805             my $t = length $f ? $f + 0 : '';
3806             my $v = length $f;
3807             my $w = length $t;
3808             $t ||= 0;
3809            
3810             return scalar (grep {$n == $_} (1,5,7,8,9,10)) ;
3811             },
3812             two => sub {
3813            
3814             my $number = shift;
3815             my $n = abs($number);
3816             my $i = int($n);
3817             my ($f) = $number =~ /\.(.*)$/;
3818             $f //= '';
3819             my $t = length $f ? $f + 0 : '';
3820             my $v = length $f;
3821             my $w = length $t;
3822             $t ||= 0;
3823            
3824             return scalar (grep {$n == $_} (2,3)) ;
3825             },
3826             },
3827             ca => {
3828             few => sub {
3829            
3830             my $number = shift;
3831             my $n = abs($number);
3832             my $i = int($n);
3833             my ($f) = $number =~ /\.(.*)$/;
3834             $f //= '';
3835             my $t = length $f ? $f + 0 : '';
3836             my $v = length $f;
3837             my $w = length $t;
3838             $t ||= 0;
3839            
3840             return scalar (grep {$n == $_} (4)) ;
3841             },
3842             one => sub {
3843            
3844             my $number = shift;
3845             my $n = abs($number);
3846             my $i = int($n);
3847             my ($f) = $number =~ /\.(.*)$/;
3848             $f //= '';
3849             my $t = length $f ? $f + 0 : '';
3850             my $v = length $f;
3851             my $w = length $t;
3852             $t ||= 0;
3853            
3854             return scalar (grep {$n == $_} (1,3)) ;
3855             },
3856             two => sub {
3857            
3858             my $number = shift;
3859             my $n = abs($number);
3860             my $i = int($n);
3861             my ($f) = $number =~ /\.(.*)$/;
3862             $f //= '';
3863             my $t = length $f ? $f + 0 : '';
3864             my $v = length $f;
3865             my $w = length $t;
3866             $t ||= 0;
3867            
3868             return scalar (grep {$n == $_} (2)) ;
3869             },
3870             },
3871             cy => {
3872             few => sub {
3873            
3874             my $number = shift;
3875             my $n = abs($number);
3876             my $i = int($n);
3877             my ($f) = $number =~ /\.(.*)$/;
3878             $f //= '';
3879             my $t = length $f ? $f + 0 : '';
3880             my $v = length $f;
3881             my $w = length $t;
3882             $t ||= 0;
3883            
3884             return scalar (grep {$n == $_} (3,4)) ;
3885             },
3886             many => sub {
3887            
3888             my $number = shift;
3889             my $n = abs($number);
3890             my $i = int($n);
3891             my ($f) = $number =~ /\.(.*)$/;
3892             $f //= '';
3893             my $t = length $f ? $f + 0 : '';
3894             my $v = length $f;
3895             my $w = length $t;
3896             $t ||= 0;
3897            
3898             return scalar (grep {$n == $_} (5,6)) ;
3899             },
3900             one => sub {
3901            
3902             my $number = shift;
3903             my $n = abs($number);
3904             my $i = int($n);
3905             my ($f) = $number =~ /\.(.*)$/;
3906             $f //= '';
3907             my $t = length $f ? $f + 0 : '';
3908             my $v = length $f;
3909             my $w = length $t;
3910             $t ||= 0;
3911            
3912             return scalar (grep {$n == $_} (1)) ;
3913             },
3914             two => sub {
3915            
3916             my $number = shift;
3917             my $n = abs($number);
3918             my $i = int($n);
3919             my ($f) = $number =~ /\.(.*)$/;
3920             $f //= '';
3921             my $t = length $f ? $f + 0 : '';
3922             my $v = length $f;
3923             my $w = length $t;
3924             $t ||= 0;
3925            
3926             return scalar (grep {$n == $_} (2)) ;
3927             },
3928             zero => sub {
3929            
3930             my $number = shift;
3931             my $n = abs($number);
3932             my $i = int($n);
3933             my ($f) = $number =~ /\.(.*)$/;
3934             $f //= '';
3935             my $t = length $f ? $f + 0 : '';
3936             my $v = length $f;
3937             my $w = length $t;
3938             $t ||= 0;
3939            
3940             return scalar (grep {$n == $_} (0,7,8,9)) ;
3941             },
3942             },
3943             en => {
3944             few => sub {
3945            
3946             my $number = shift;
3947             my $n = abs($number);
3948             my $i = int($n);
3949             my ($f) = $number =~ /\.(.*)$/;
3950             $f //= '';
3951             my $t = length $f ? $f + 0 : '';
3952             my $v = length $f;
3953             my $w = length $t;
3954             $t ||= 0;
3955            
3956             return scalar (grep {$n % 10 == $_} (3)) && ! scalar (grep {$n % 100 == $_} (13)) ;
3957             },
3958             one => sub {
3959            
3960             my $number = shift;
3961             my $n = abs($number);
3962             my $i = int($n);
3963             my ($f) = $number =~ /\.(.*)$/;
3964             $f //= '';
3965             my $t = length $f ? $f + 0 : '';
3966             my $v = length $f;
3967             my $w = length $t;
3968             $t ||= 0;
3969            
3970             return scalar (grep {$n % 10 == $_} (1)) && ! scalar (grep {$n % 100 == $_} (11)) ;
3971             },
3972             two => sub {
3973            
3974             my $number = shift;
3975             my $n = abs($number);
3976             my $i = int($n);
3977             my ($f) = $number =~ /\.(.*)$/;
3978             $f //= '';
3979             my $t = length $f ? $f + 0 : '';
3980             my $v = length $f;
3981             my $w = length $t;
3982             $t ||= 0;
3983            
3984             return scalar (grep {$n % 10 == $_} (2)) && ! scalar (grep {$n % 100 == $_} (12)) ;
3985             },
3986             },
3987             fil => {
3988             one => sub {
3989            
3990             my $number = shift;
3991             my $n = abs($number);
3992             my $i = int($n);
3993             my ($f) = $number =~ /\.(.*)$/;
3994             $f //= '';
3995             my $t = length $f ? $f + 0 : '';
3996             my $v = length $f;
3997             my $w = length $t;
3998             $t ||= 0;
3999            
4000             return scalar (grep {$n == $_} (1)) ;
4001             },
4002             },
4003             fr => {
4004             one => sub {
4005            
4006             my $number = shift;
4007             my $n = abs($number);
4008             my $i = int($n);
4009             my ($f) = $number =~ /\.(.*)$/;
4010             $f //= '';
4011             my $t = length $f ? $f + 0 : '';
4012             my $v = length $f;
4013             my $w = length $t;
4014             $t ||= 0;
4015            
4016             return scalar (grep {$n == $_} (1)) ;
4017             },
4018             },
4019             ga => {
4020             one => sub {
4021            
4022             my $number = shift;
4023             my $n = abs($number);
4024             my $i = int($n);
4025             my ($f) = $number =~ /\.(.*)$/;
4026             $f //= '';
4027             my $t = length $f ? $f + 0 : '';
4028             my $v = length $f;
4029             my $w = length $t;
4030             $t ||= 0;
4031            
4032             return scalar (grep {$n == $_} (1)) ;
4033             },
4034             },
4035             gu => {
4036             few => sub {
4037            
4038             my $number = shift;
4039             my $n = abs($number);
4040             my $i = int($n);
4041             my ($f) = $number =~ /\.(.*)$/;
4042             $f //= '';
4043             my $t = length $f ? $f + 0 : '';
4044             my $v = length $f;
4045             my $w = length $t;
4046             $t ||= 0;
4047            
4048             return scalar (grep {$n == $_} (4)) ;
4049             },
4050             many => sub {
4051            
4052             my $number = shift;
4053             my $n = abs($number);
4054             my $i = int($n);
4055             my ($f) = $number =~ /\.(.*)$/;
4056             $f //= '';
4057             my $t = length $f ? $f + 0 : '';
4058             my $v = length $f;
4059             my $w = length $t;
4060             $t ||= 0;
4061            
4062             return scalar (grep {$n == $_} (6)) ;
4063             },
4064             one => sub {
4065            
4066             my $number = shift;
4067             my $n = abs($number);
4068             my $i = int($n);
4069             my ($f) = $number =~ /\.(.*)$/;
4070             $f //= '';
4071             my $t = length $f ? $f + 0 : '';
4072             my $v = length $f;
4073             my $w = length $t;
4074             $t ||= 0;
4075            
4076             return scalar (grep {$n == $_} (1)) ;
4077             },
4078             two => sub {
4079            
4080             my $number = shift;
4081             my $n = abs($number);
4082             my $i = int($n);
4083             my ($f) = $number =~ /\.(.*)$/;
4084             $f //= '';
4085             my $t = length $f ? $f + 0 : '';
4086             my $v = length $f;
4087             my $w = length $t;
4088             $t ||= 0;
4089            
4090             return scalar (grep {$n == $_} (2,3)) ;
4091             },
4092             },
4093             hi => {
4094             few => sub {
4095            
4096             my $number = shift;
4097             my $n = abs($number);
4098             my $i = int($n);
4099             my ($f) = $number =~ /\.(.*)$/;
4100             $f //= '';
4101             my $t = length $f ? $f + 0 : '';
4102             my $v = length $f;
4103             my $w = length $t;
4104             $t ||= 0;
4105            
4106             return scalar (grep {$n == $_} (4)) ;
4107             },
4108             many => sub {
4109            
4110             my $number = shift;
4111             my $n = abs($number);
4112             my $i = int($n);
4113             my ($f) = $number =~ /\.(.*)$/;
4114             $f //= '';
4115             my $t = length $f ? $f + 0 : '';
4116             my $v = length $f;
4117             my $w = length $t;
4118             $t ||= 0;
4119            
4120             return scalar (grep {$n == $_} (6)) ;
4121             },
4122             one => sub {
4123            
4124             my $number = shift;
4125             my $n = abs($number);
4126             my $i = int($n);
4127             my ($f) = $number =~ /\.(.*)$/;
4128             $f //= '';
4129             my $t = length $f ? $f + 0 : '';
4130             my $v = length $f;
4131             my $w = length $t;
4132             $t ||= 0;
4133            
4134             return scalar (grep {$n == $_} (1)) ;
4135             },
4136             two => sub {
4137            
4138             my $number = shift;
4139             my $n = abs($number);
4140             my $i = int($n);
4141             my ($f) = $number =~ /\.(.*)$/;
4142             $f //= '';
4143             my $t = length $f ? $f + 0 : '';
4144             my $v = length $f;
4145             my $w = length $t;
4146             $t ||= 0;
4147            
4148             return scalar (grep {$n == $_} (2,3)) ;
4149             },
4150             },
4151             hu => {
4152             one => sub {
4153            
4154             my $number = shift;
4155             my $n = abs($number);
4156             my $i = int($n);
4157             my ($f) = $number =~ /\.(.*)$/;
4158             $f //= '';
4159             my $t = length $f ? $f + 0 : '';
4160             my $v = length $f;
4161             my $w = length $t;
4162             $t ||= 0;
4163            
4164             return scalar (grep {$n == $_} (1,5)) ;
4165             },
4166             },
4167             hy => {
4168             one => sub {
4169            
4170             my $number = shift;
4171             my $n = abs($number);
4172             my $i = int($n);
4173             my ($f) = $number =~ /\.(.*)$/;
4174             $f //= '';
4175             my $t = length $f ? $f + 0 : '';
4176             my $v = length $f;
4177             my $w = length $t;
4178             $t ||= 0;
4179            
4180             return scalar (grep {$n == $_} (1)) ;
4181             },
4182             },
4183             it => {
4184             many => sub {
4185            
4186             my $number = shift;
4187             my $n = abs($number);
4188             my $i = int($n);
4189             my ($f) = $number =~ /\.(.*)$/;
4190             $f //= '';
4191             my $t = length $f ? $f + 0 : '';
4192             my $v = length $f;
4193             my $w = length $t;
4194             $t ||= 0;
4195            
4196             return scalar (grep {$n == $_} (11,8,80,800)) ;
4197             },
4198             },
4199             ka => {
4200             many => sub {
4201            
4202             my $number = shift;
4203             my $n = abs($number);
4204             my $i = int($n);
4205             my ($f) = $number =~ /\.(.*)$/;
4206             $f //= '';
4207             my $t = length $f ? $f + 0 : '';
4208             my $v = length $f;
4209             my $w = length $t;
4210             $t ||= 0;
4211            
4212             return scalar (grep {$i == $_} (0)) || scalar (grep {$i % 100 == $_} (2..20,40,60,80)) ;
4213             },
4214             one => sub {
4215            
4216             my $number = shift;
4217             my $n = abs($number);
4218             my $i = int($n);
4219             my ($f) = $number =~ /\.(.*)$/;
4220             $f //= '';
4221             my $t = length $f ? $f + 0 : '';
4222             my $v = length $f;
4223             my $w = length $t;
4224             $t ||= 0;
4225            
4226             return scalar (grep {$i == $_} (1)) ;
4227             },
4228             },
4229             kk => {
4230             many => sub {
4231            
4232             my $number = shift;
4233             my $n = abs($number);
4234             my $i = int($n);
4235             my ($f) = $number =~ /\.(.*)$/;
4236             $f //= '';
4237             my $t = length $f ? $f + 0 : '';
4238             my $v = length $f;
4239             my $w = length $t;
4240             $t ||= 0;
4241            
4242             return scalar (grep {$n % 10 == $_} (6)) || scalar (grep {$n % 10 == $_} (9)) || scalar (grep {$n % 10 == $_} (0)) && ! scalar (grep {$n == $_} (0)) ;
4243             },
4244             },
4245             lo => {
4246             one => sub {
4247            
4248             my $number = shift;
4249             my $n = abs($number);
4250             my $i = int($n);
4251             my ($f) = $number =~ /\.(.*)$/;
4252             $f //= '';
4253             my $t = length $f ? $f + 0 : '';
4254             my $v = length $f;
4255             my $w = length $t;
4256             $t ||= 0;
4257            
4258             return scalar (grep {$n == $_} (1)) ;
4259             },
4260             },
4261             mk => {
4262             many => sub {
4263            
4264             my $number = shift;
4265             my $n = abs($number);
4266             my $i = int($n);
4267             my ($f) = $number =~ /\.(.*)$/;
4268             $f //= '';
4269             my $t = length $f ? $f + 0 : '';
4270             my $v = length $f;
4271             my $w = length $t;
4272             $t ||= 0;
4273            
4274             return scalar (grep {$i % 10 == $_} (7,8)) && ! scalar (grep {$i % 100 == $_} (17,18)) ;
4275             },
4276             one => sub {
4277            
4278             my $number = shift;
4279             my $n = abs($number);
4280             my $i = int($n);
4281             my ($f) = $number =~ /\.(.*)$/;
4282             $f //= '';
4283             my $t = length $f ? $f + 0 : '';
4284             my $v = length $f;
4285             my $w = length $t;
4286             $t ||= 0;
4287            
4288             return scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) ;
4289             },
4290             two => sub {
4291            
4292             my $number = shift;
4293             my $n = abs($number);
4294             my $i = int($n);
4295             my ($f) = $number =~ /\.(.*)$/;
4296             $f //= '';
4297             my $t = length $f ? $f + 0 : '';
4298             my $v = length $f;
4299             my $w = length $t;
4300             $t ||= 0;
4301            
4302             return scalar (grep {$i % 10 == $_} (2)) && ! scalar (grep {$i % 100 == $_} (12)) ;
4303             },
4304             },
4305             mo => {
4306             one => sub {
4307            
4308             my $number = shift;
4309             my $n = abs($number);
4310             my $i = int($n);
4311             my ($f) = $number =~ /\.(.*)$/;
4312             $f //= '';
4313             my $t = length $f ? $f + 0 : '';
4314             my $v = length $f;
4315             my $w = length $t;
4316             $t ||= 0;
4317            
4318             return scalar (grep {$n == $_} (1)) ;
4319             },
4320             },
4321             mr => {
4322             few => sub {
4323            
4324             my $number = shift;
4325             my $n = abs($number);
4326             my $i = int($n);
4327             my ($f) = $number =~ /\.(.*)$/;
4328             $f //= '';
4329             my $t = length $f ? $f + 0 : '';
4330             my $v = length $f;
4331             my $w = length $t;
4332             $t ||= 0;
4333            
4334             return scalar (grep {$n == $_} (4)) ;
4335             },
4336             one => sub {
4337            
4338             my $number = shift;
4339             my $n = abs($number);
4340             my $i = int($n);
4341             my ($f) = $number =~ /\.(.*)$/;
4342             $f //= '';
4343             my $t = length $f ? $f + 0 : '';
4344             my $v = length $f;
4345             my $w = length $t;
4346             $t ||= 0;
4347            
4348             return scalar (grep {$n == $_} (1)) ;
4349             },
4350             two => sub {
4351            
4352             my $number = shift;
4353             my $n = abs($number);
4354             my $i = int($n);
4355             my ($f) = $number =~ /\.(.*)$/;
4356             $f //= '';
4357             my $t = length $f ? $f + 0 : '';
4358             my $v = length $f;
4359             my $w = length $t;
4360             $t ||= 0;
4361            
4362             return scalar (grep {$n == $_} (2,3)) ;
4363             },
4364             },
4365             ms => {
4366             one => sub {
4367            
4368             my $number = shift;
4369             my $n = abs($number);
4370             my $i = int($n);
4371             my ($f) = $number =~ /\.(.*)$/;
4372             $f //= '';
4373             my $t = length $f ? $f + 0 : '';
4374             my $v = length $f;
4375             my $w = length $t;
4376             $t ||= 0;
4377            
4378             return scalar (grep {$n == $_} (1)) ;
4379             },
4380             },
4381             ne => {
4382             one => sub {
4383            
4384             my $number = shift;
4385             my $n = abs($number);
4386             my $i = int($n);
4387             my ($f) = $number =~ /\.(.*)$/;
4388             $f //= '';
4389             my $t = length $f ? $f + 0 : '';
4390             my $v = length $f;
4391             my $w = length $t;
4392             $t ||= 0;
4393            
4394             return scalar (grep {$n == $_} (1..4)) ;
4395             },
4396             },
4397             ro => {
4398             one => sub {
4399            
4400             my $number = shift;
4401             my $n = abs($number);
4402             my $i = int($n);
4403             my ($f) = $number =~ /\.(.*)$/;
4404             $f //= '';
4405             my $t = length $f ? $f + 0 : '';
4406             my $v = length $f;
4407             my $w = length $t;
4408             $t ||= 0;
4409            
4410             return scalar (grep {$n == $_} (1)) ;
4411             },
4412             },
4413             sq => {
4414             many => sub {
4415            
4416             my $number = shift;
4417             my $n = abs($number);
4418             my $i = int($n);
4419             my ($f) = $number =~ /\.(.*)$/;
4420             $f //= '';
4421             my $t = length $f ? $f + 0 : '';
4422             my $v = length $f;
4423             my $w = length $t;
4424             $t ||= 0;
4425            
4426             return scalar (grep {$n % 10 == $_} (4)) && ! scalar (grep {$n % 100 == $_} (14)) ;
4427             },
4428             one => sub {
4429            
4430             my $number = shift;
4431             my $n = abs($number);
4432             my $i = int($n);
4433             my ($f) = $number =~ /\.(.*)$/;
4434             $f //= '';
4435             my $t = length $f ? $f + 0 : '';
4436             my $v = length $f;
4437             my $w = length $t;
4438             $t ||= 0;
4439            
4440             return scalar (grep {$n == $_} (1)) ;
4441             },
4442             },
4443             sv => {
4444             one => sub {
4445            
4446             my $number = shift;
4447             my $n = abs($number);
4448             my $i = int($n);
4449             my ($f) = $number =~ /\.(.*)$/;
4450             $f //= '';
4451             my $t = length $f ? $f + 0 : '';
4452             my $v = length $f;
4453             my $w = length $t;
4454             $t ||= 0;
4455            
4456             return scalar (grep {$n % 10 == $_} (1,2)) && ! scalar (grep {$n % 100 == $_} (11,12)) ;
4457             },
4458             },
4459             tl => {
4460             one => sub {
4461            
4462             my $number = shift;
4463             my $n = abs($number);
4464             my $i = int($n);
4465             my ($f) = $number =~ /\.(.*)$/;
4466             $f //= '';
4467             my $t = length $f ? $f + 0 : '';
4468             my $v = length $f;
4469             my $w = length $t;
4470             $t ||= 0;
4471            
4472             return scalar (grep {$n == $_} (1)) ;
4473             },
4474             },
4475             uk => {
4476             few => sub {
4477            
4478             my $number = shift;
4479             my $n = abs($number);
4480             my $i = int($n);
4481             my ($f) = $number =~ /\.(.*)$/;
4482             $f //= '';
4483             my $t = length $f ? $f + 0 : '';
4484             my $v = length $f;
4485             my $w = length $t;
4486             $t ||= 0;
4487            
4488             return scalar (grep {$n % 10 == $_} (3)) && ! scalar (grep {$n % 100 == $_} (13)) ;
4489             },
4490             },
4491             vi => {
4492             one => sub {
4493            
4494             my $number = shift;
4495             my $n = abs($number);
4496             my $i = int($n);
4497             my ($f) = $number =~ /\.(.*)$/;
4498             $f //= '';
4499             my $t = length $f ? $f + 0 : '';
4500             my $v = length $f;
4501             my $w = length $t;
4502             $t ||= 0;
4503            
4504             return scalar (grep {$n == $_} (1)) ;
4505             },
4506             },
4507             },
4508             );
4509            
4510             sub plural {
4511 1191     1191 0 66201 my ($self, $number, $type) = @_;
4512 1191   100     5137 $type //= 'cardinal';
4513 1191   33     31406 my $language_id = $self->language_id || $self->likely_subtag->language_id;
4514            
4515 1191         2303 foreach my $count (qw( zero one two few many )) {
4516 4769 100       11321 next unless exists $_plurals{$type}{$language_id}{$count};
4517 1193 100       3135 return $count if $_plurals{$type}{$language_id}{$count}->($number);
4518             }
4519 795         2365 return 'other';
4520             }
4521            
4522             my %_plural_ranges = (
4523             af => {
4524             one => {
4525             other => 'other',
4526             },
4527             other => {
4528             one => 'other',
4529             other => 'other',
4530             },
4531             },
4532             am => {
4533             one => {
4534             one => 'one',
4535             other => 'other',
4536             },
4537             other => {
4538             other => 'other',
4539             },
4540             },
4541             ar => {
4542             few => {
4543             few => 'few',
4544             many => 'many',
4545             other => 'other',
4546             },
4547             many => {
4548             few => 'few',
4549             many => 'many',
4550             other => 'other',
4551             },
4552             one => {
4553             few => 'few',
4554             many => 'many',
4555             other => 'other',
4556             two => 'other',
4557             },
4558             other => {
4559             few => 'few',
4560             many => 'many',
4561             one => 'other',
4562             other => 'other',
4563             two => 'other',
4564             },
4565             two => {
4566             few => 'few',
4567             many => 'many',
4568             other => 'other',
4569             },
4570             zero => {
4571             few => 'few',
4572             many => 'many',
4573             one => 'zero',
4574             other => 'other',
4575             two => 'zero',
4576             },
4577             },
4578             az => {
4579             one => {
4580             other => 'other',
4581             },
4582             other => {
4583             one => 'one',
4584             other => 'other',
4585             },
4586             },
4587             bg => {
4588             one => {
4589             other => 'other',
4590             },
4591             other => {
4592             one => 'other',
4593             other => 'other',
4594             },
4595             },
4596             bn => {
4597             one => {
4598             one => 'one',
4599             other => 'other',
4600             },
4601             other => {
4602             other => 'other',
4603             },
4604             },
4605             bs => {
4606             few => {
4607             few => 'few',
4608             one => 'one',
4609             other => 'other',
4610             },
4611             one => {
4612             few => 'few',
4613             one => 'one',
4614             other => 'other',
4615             },
4616             other => {
4617             few => 'few',
4618             one => 'one',
4619             other => 'other',
4620             },
4621             },
4622             ca => {
4623             one => {
4624             other => 'other',
4625             },
4626             other => {
4627             one => 'other',
4628             other => 'other',
4629             },
4630             },
4631             cs => {
4632             few => {
4633             few => 'few',
4634             many => 'many',
4635             other => 'other',
4636             },
4637             many => {
4638             few => 'few',
4639             many => 'many',
4640             one => 'one',
4641             other => 'other',
4642             },
4643             one => {
4644             few => 'few',
4645             many => 'many',
4646             other => 'other',
4647             },
4648             other => {
4649             few => 'few',
4650             many => 'many',
4651             one => 'one',
4652             other => 'other',
4653             },
4654             },
4655             cy => {
4656             few => {
4657             many => 'many',
4658             other => 'other',
4659             },
4660             many => {
4661             other => 'other',
4662             },
4663             one => {
4664             few => 'few',
4665             many => 'many',
4666             other => 'other',
4667             two => 'two',
4668             },
4669             other => {
4670             few => 'few',
4671             many => 'many',
4672             one => 'one',
4673             other => 'other',
4674             two => 'two',
4675             },
4676             two => {
4677             few => 'few',
4678             many => 'many',
4679             other => 'other',
4680             },
4681             zero => {
4682             few => 'few',
4683             many => 'many',
4684             one => 'one',
4685             other => 'other',
4686             two => 'two',
4687             },
4688             },
4689             da => {
4690             one => {
4691             one => 'one',
4692             other => 'other',
4693             },
4694             other => {
4695             one => 'one',
4696             other => 'other',
4697             },
4698             },
4699             de => {
4700             one => {
4701             other => 'other',
4702             },
4703             other => {
4704             one => 'one',
4705             other => 'other',
4706             },
4707             },
4708             el => {
4709             one => {
4710             other => 'other',
4711             },
4712             other => {
4713             one => 'one',
4714             other => 'other',
4715             },
4716             },
4717             en => {
4718             one => {
4719             other => 'other',
4720             },
4721             other => {
4722             one => 'other',
4723             other => 'other',
4724             },
4725             },
4726             es => {
4727             one => {
4728             other => 'other',
4729             },
4730             other => {
4731             one => 'other',
4732             other => 'other',
4733             },
4734             },
4735             et => {
4736             one => {
4737             other => 'other',
4738             },
4739             other => {
4740             one => 'other',
4741             other => 'other',
4742             },
4743             },
4744             eu => {
4745             one => {
4746             other => 'other',
4747             },
4748             other => {
4749             one => 'other',
4750             other => 'other',
4751             },
4752             },
4753             fa => {
4754             one => {
4755             one => 'other',
4756             other => 'other',
4757             },
4758             other => {
4759             other => 'other',
4760             },
4761             },
4762             fi => {
4763             one => {
4764             other => 'other',
4765             },
4766             other => {
4767             one => 'other',
4768             other => 'other',
4769             },
4770             },
4771             fil => {
4772             one => {
4773             one => 'one',
4774             other => 'other',
4775             },
4776             other => {
4777             one => 'one',
4778             other => 'other',
4779             },
4780             },
4781             fr => {
4782             one => {
4783             one => 'one',
4784             other => 'other',
4785             },
4786             other => {
4787             other => 'other',
4788             },
4789             },
4790             gl => {
4791             one => {
4792             other => 'other',
4793             },
4794             other => {
4795             one => 'one',
4796             other => 'other',
4797             },
4798             },
4799             gu => {
4800             one => {
4801             one => 'one',
4802             other => 'other',
4803             },
4804             other => {
4805             other => 'other',
4806             },
4807             },
4808             he => {
4809             many => {
4810             many => 'many',
4811             other => 'many',
4812             },
4813             one => {
4814             many => 'many',
4815             other => 'other',
4816             two => 'other',
4817             },
4818             other => {
4819             many => 'many',
4820             one => 'other',
4821             other => 'other',
4822             two => 'other',
4823             },
4824             two => {
4825             many => 'other',
4826             other => 'other',
4827             },
4828             },
4829             hi => {
4830             one => {
4831             one => 'one',
4832             other => 'other',
4833             },
4834             other => {
4835             other => 'other',
4836             },
4837             },
4838             hr => {
4839             few => {
4840             few => 'few',
4841             one => 'one',
4842             other => 'other',
4843             },
4844             one => {
4845             few => 'few',
4846             one => 'one',
4847             other => 'other',
4848             },
4849             other => {
4850             few => 'few',
4851             one => 'one',
4852             other => 'other',
4853             },
4854             },
4855             hu => {
4856             one => {
4857             other => 'other',
4858             },
4859             other => {
4860             one => 'one',
4861             other => 'other',
4862             },
4863             },
4864             hy => {
4865             one => {
4866             one => 'one',
4867             other => 'other',
4868             },
4869             other => {
4870             other => 'other',
4871             },
4872             },
4873             id => {
4874             other => {
4875             other => 'other',
4876             },
4877             },
4878             is => {
4879             one => {
4880             one => 'one',
4881             other => 'other',
4882             },
4883             other => {
4884             one => 'one',
4885             other => 'other',
4886             },
4887             },
4888             it => {
4889             one => {
4890             other => 'other',
4891             },
4892             other => {
4893             one => 'one',
4894             other => 'other',
4895             },
4896             },
4897             ja => {
4898             other => {
4899             other => 'other',
4900             },
4901             },
4902             ka => {
4903             one => {
4904             other => 'one',
4905             },
4906             other => {
4907             one => 'other',
4908             other => 'other',
4909             },
4910             },
4911             kk => {
4912             one => {
4913             other => 'other',
4914             },
4915             other => {
4916             one => 'one',
4917             other => 'other',
4918             },
4919             },
4920             km => {
4921             other => {
4922             other => 'other',
4923             },
4924             },
4925             kn => {
4926             one => {
4927             one => 'one',
4928             other => 'other',
4929             },
4930             other => {
4931             other => 'other',
4932             },
4933             },
4934             ko => {
4935             other => {
4936             other => 'other',
4937             },
4938             },
4939             ky => {
4940             one => {
4941             other => 'other',
4942             },
4943             other => {
4944             one => 'one',
4945             other => 'other',
4946             },
4947             },
4948             lo => {
4949             other => {
4950             other => 'other',
4951             },
4952             },
4953             lt => {
4954             few => {
4955             few => 'few',
4956             many => 'many',
4957             one => 'one',
4958             other => 'other',
4959             },
4960             many => {
4961             few => 'few',
4962             many => 'many',
4963             one => 'one',
4964             other => 'other',
4965             },
4966             one => {
4967             few => 'few',
4968             many => 'many',
4969             one => 'one',
4970             other => 'other',
4971             },
4972             other => {
4973             few => 'few',
4974             many => 'many',
4975             one => 'one',
4976             other => 'other',
4977             },
4978             },
4979             lv => {
4980             one => {
4981             one => 'one',
4982             other => 'other',
4983             zero => 'other',
4984             },
4985             other => {
4986             one => 'one',
4987             other => 'other',
4988             zero => 'other',
4989             },
4990             zero => {
4991             one => 'one',
4992             other => 'other',
4993             zero => 'other',
4994             },
4995             },
4996             mk => {
4997             one => {
4998             one => 'other',
4999             other => 'other',
5000             },
5001             other => {
5002             one => 'other',
5003             other => 'other',
5004             },
5005             },
5006             ml => {
5007             one => {
5008             other => 'other',
5009             },
5010             other => {
5011             one => 'one',
5012             other => 'other',
5013             },
5014             },
5015             mn => {
5016             one => {
5017             other => 'other',
5018             },
5019             other => {
5020             one => 'one',
5021             other => 'other',
5022             },
5023             },
5024             mr => {
5025             one => {
5026             one => 'one',
5027             other => 'other',
5028             },
5029             other => {
5030             other => 'other',
5031             },
5032             },
5033             ms => {
5034             other => {
5035             other => 'other',
5036             },
5037             },
5038             my => {
5039             other => {
5040             other => 'other',
5041             },
5042             },
5043             nb => {
5044             one => {
5045             other => 'other',
5046             },
5047             other => {
5048             one => 'other',
5049             other => 'other',
5050             },
5051             },
5052             ne => {
5053             one => {
5054             other => 'other',
5055             },
5056             other => {
5057             one => 'one',
5058             other => 'other',
5059             },
5060             },
5061             nl => {
5062             one => {
5063             other => 'other',
5064             },
5065             other => {
5066             one => 'one',
5067             other => 'other',
5068             },
5069             },
5070             pa => {
5071             one => {
5072             one => 'one',
5073             other => 'other',
5074             },
5075             other => {
5076             other => 'other',
5077             },
5078             },
5079             pl => {
5080             few => {
5081             few => 'few',
5082             many => 'many',
5083             other => 'other',
5084             },
5085             many => {
5086             few => 'few',
5087             many => 'many',
5088             one => 'one',
5089             other => 'other',
5090             },
5091             one => {
5092             few => 'few',
5093             many => 'many',
5094             other => 'other',
5095             },
5096             other => {
5097             few => 'few',
5098             many => 'many',
5099             one => 'one',
5100             other => 'other',
5101             },
5102             },
5103             pt => {
5104             one => {
5105             other => 'other',
5106             },
5107             other => {
5108             one => 'one',
5109             other => 'other',
5110             },
5111             },
5112             ro => {
5113             few => {
5114             few => 'few',
5115             one => 'few',
5116             other => 'other',
5117             },
5118             one => {
5119             few => 'few',
5120             other => 'other',
5121             },
5122             other => {
5123             few => 'few',
5124             other => 'other',
5125             },
5126             },
5127             ru => {
5128             few => {
5129             few => 'few',
5130             many => 'many',
5131             one => 'one',
5132             other => 'other',
5133             },
5134             many => {
5135             few => 'few',
5136             many => 'many',
5137             one => 'one',
5138             other => 'other',
5139             },
5140             one => {
5141             few => 'few',
5142             many => 'many',
5143             one => 'one',
5144             other => 'other',
5145             },
5146             other => {
5147             few => 'few',
5148             many => 'many',
5149             one => 'one',
5150             other => 'other',
5151             },
5152             },
5153             si => {
5154             one => {
5155             one => 'one',
5156             other => 'other',
5157             },
5158             other => {
5159             one => 'other',
5160             other => 'other',
5161             },
5162             },
5163             sk => {
5164             few => {
5165             few => 'few',
5166             many => 'many',
5167             other => 'other',
5168             },
5169             many => {
5170             few => 'few',
5171             many => 'many',
5172             one => 'one',
5173             other => 'other',
5174             },
5175             one => {
5176             few => 'few',
5177             many => 'many',
5178             other => 'other',
5179             },
5180             other => {
5181             few => 'few',
5182             many => 'many',
5183             one => 'one',
5184             other => 'other',
5185             },
5186             },
5187             sl => {
5188             few => {
5189             few => 'few',
5190             one => 'few',
5191             other => 'other',
5192             two => 'two',
5193             },
5194             one => {
5195             few => 'few',
5196             one => 'few',
5197             other => 'other',
5198             two => 'two',
5199             },
5200             other => {
5201             few => 'few',
5202             one => 'few',
5203             other => 'other',
5204             two => 'two',
5205             },
5206             two => {
5207             few => 'few',
5208             one => 'few',
5209             other => 'other',
5210             two => 'two',
5211             },
5212             },
5213             sq => {
5214             one => {
5215             other => 'other',
5216             },
5217             other => {
5218             one => 'one',
5219             other => 'other',
5220             },
5221             },
5222             sr => {
5223             few => {
5224             few => 'few',
5225             one => 'one',
5226             other => 'other',
5227             },
5228             one => {
5229             few => 'few',
5230             one => 'one',
5231             other => 'other',
5232             },
5233             other => {
5234             few => 'few',
5235             one => 'one',
5236             other => 'other',
5237             },
5238             },
5239             sv => {
5240             one => {
5241             other => 'other',
5242             },
5243             other => {
5244             one => 'other',
5245             other => 'other',
5246             },
5247             },
5248             sw => {
5249             one => {
5250             other => 'other',
5251             },
5252             other => {
5253             one => 'one',
5254             other => 'other',
5255             },
5256             },
5257             ta => {
5258             one => {
5259             other => 'other',
5260             },
5261             other => {
5262             one => 'one',
5263             other => 'other',
5264             },
5265             },
5266             te => {
5267             one => {
5268             other => 'other',
5269             },
5270             other => {
5271             one => 'one',
5272             other => 'other',
5273             },
5274             },
5275             th => {
5276             other => {
5277             other => 'other',
5278             },
5279             },
5280             tr => {
5281             one => {
5282             other => 'other',
5283             },
5284             other => {
5285             one => 'one',
5286             other => 'other',
5287             },
5288             },
5289             ug => {
5290             one => {
5291             other => 'other',
5292             },
5293             other => {
5294             one => 'one',
5295             other => 'other',
5296             },
5297             },
5298             uk => {
5299             few => {
5300             few => 'few',
5301             many => 'many',
5302             one => 'one',
5303             other => 'other',
5304             },
5305             many => {
5306             few => 'few',
5307             many => 'many',
5308             one => 'one',
5309             other => 'other',
5310             },
5311             one => {
5312             few => 'few',
5313             many => 'many',
5314             one => 'one',
5315             other => 'other',
5316             },
5317             other => {
5318             few => 'few',
5319             many => 'many',
5320             one => 'one',
5321             other => 'other',
5322             },
5323             },
5324             ur => {
5325             one => {
5326             other => 'other',
5327             },
5328             other => {
5329             one => 'other',
5330             other => 'other',
5331             },
5332             },
5333             uz => {
5334             one => {
5335             other => 'other',
5336             },
5337             other => {
5338             one => 'one',
5339             other => 'other',
5340             },
5341             },
5342             vi => {
5343             other => {
5344             other => 'other',
5345             },
5346             },
5347             zh => {
5348             other => {
5349             other => 'other',
5350             },
5351             },
5352             zu => {
5353             one => {
5354             one => 'one',
5355             other => 'other',
5356             },
5357             other => {
5358             other => 'other',
5359             },
5360             },
5361             );
5362            
5363             sub plural_range {
5364 158     158 0 40786 my ($self, $start, $end) = @_;
5365 158   33     3227 my $language_id = $self->language_id || $self->likely_subtag->language_id;
5366            
5367 158 100       692 $start = $self->plural($start) if $start =~ /^-?(?:[0-9]+\.)?[0-9]+$/;
5368 158 100       550 $end = $self->plural($end) if $end =~ /^-?(?:[0-9]+\.)?[0-9]+$/;
5369            
5370 158   100     928 return $_plural_ranges{$language_id}{$start}{$end} // 'other';
5371             }
5372            
5373            
5374 21     21   545405 no Moo::Role;
  21         1847  
  21         184  
5375            
5376             1;
5377            
5378             # vim: tabstop=4