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