File Coverage

blib/lib/Locale/CLDR/Plurals.pm
Criterion Covered Total %
statement 32 32 100.0
branch 8 8 100.0
condition 6 10 60.0
subroutine 9 9 100.0
pod 0 2 0.0
total 55 61 90.1


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