File Coverage

blib/lib/Locale/CLDR/Plurals.pm
Criterion Covered Total %
statement 33 33 100.0
branch 8 8 100.0
condition 6 10 60.0
subroutine 9 9 100.0
pod 0 2 0.0
total 56 62 90.3


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