File Coverage

blib/lib/Locale/CLDR/Plurals.pm
Criterion Covered Total %
statement 41 41 100.0
branch 8 8 100.0
condition 6 10 60.0
subroutine 12 12 100.0
pod 0 2 0.0
total 67 73 91.7


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