1331:
1224:
1320:
72:
1630:
This is necessary because, as a recursively implemented FIR filter, a CIC filter relies on exact cancellation of poles from the integrator sections by zeros from the comb sections. While the reasons are less than intuitive, an inherent characteristic of the CIC architecture is that if fixed bit
1613:
Additionally, CIC filters can typically be reconfigured for different rates by changing nothing more than the decimation/interpolation section assuming the bit width of the integrators and comb sections meets certain mathematical criteria based on the maximum possible rate
1558:(IIR) filter can compensate for the falling slope of a CIC filter's shape. Multiple interpolation and decimation rates can reuse the same set of compensation FIR coefficients, since the shape of the CIC's main lobe changes very little when the decimation ratio is changed.
1013:
461:
62:
is first fed through N integrator stages, followed by a down-sampler, and then N comb stages. An interpolating CIC (e.g. Figure 1) has the reverse order of this architecture, but with the down-sampler replaced with a zero-stuffer (up-sampler).
1602:
In cases where only a small amount of interpolation or decimation are needed, FIR filters generally have the advantage. However, when rates change by a factor of 10 or more, achieving a useful FIR filter anti-aliasing stop band requires many FIR
1186:
identical simple moving average filters, then rearranging the sections to place all integrators first (decimator) or combs first (interpolator). Such rearrangement is possible because both the combs, the integrators, and the entire structure are
1506:
so DC has the peak of unity gain. The main lobes drop off as it reaches the next zero, and is followed by a series of successive lobes that have smaller and smaller peaks, separated by the subsequent zeros. This approximates at large
1534:
An N-order CIC's shape corresponds to multiplying that sinc shape on itself N times, resulting in successively greater attenuation. Thus, N-order CIC filters are called sinc filters. The first sidelobe is attenuated ~13N dB.
1194:
In the interpolating CIC, its upsampler (which normally precedes an interpolation filter) is passed through the comb sections using a Noble identity, reducing the number of delay elements needed by a factor of
813:
818:
293:
288:
663:
234:
129:
1298:
596:
1504:
1407:
1379:
1155:
1086:
270:
198:
156:
1698:
1675:
1453:
1430:
701:
1525:
1213:
1184:
804:
765:
730:
619:
554:
531:
509:
487:
93:
1781:"Hogenauer introduced an important class of digital filters called 'Cascaded Integrator-Comb', or 'CIC' for short (also sometimes called 'Hogenauer filters').
1571:
in general are used in a wide array of applications, and can be used in multi-rate processing in conjunction with an interpolator or decimator.
1893:
173:
Unlike most FIR filters, it has a down-sampler or up-sampler in the middle of the structure, which converts between the high sampling rate of
167:
1463:
cancels out with each integrator's pole. N-order CIC filters have N times as many poles and zeros in the same locations as the 1-order.
1589:
CIC filters use only addition and subtraction. FIR filters use addition, subtraction, but most FIR filters also require multiplication.
1918:
1215:. Similarly, in the decimating CIC, its downsampler (which normally follows a decimation filter) is moved before the comb sections.
1546:
for the integrator and comb sections. For this reason, many real-world filtering requirements cannot be met by a CIC filter alone.
1607:
1008:{\displaystyle {\begin{aligned}y&=\sum _{k=0}^{RM-1}x\\y&=y+\underbrace {x-x} _{{\text{comb filter }}c}.\end{aligned}}}
1870:
1847:
703:
omitted. To see this, consider how a simple moving average filter can be implemented recursively by adding the newest sample
51:
1800:
1542:
rejection can be achieved by increasing the order, but that increases attenuation in the passband and requires increased
1543:
456:{\displaystyle {\begin{aligned}H(z)&=\left^{N}\\&=\left({\frac {1-z^{-RM}}{1-z^{-1}}}\right)^{N}\end{aligned}}}
1240:
624:
39:
1903:
1555:
28:
20:
1898:
75:
Figure 1: Hogenauer non-pipelined CIC interpolator. In the middle, a zero-stuffer up-sampler by factor of
1606:
For large rate changes, a CIC has a significant advantage over a FIR filter with respect to architectural and
1339:
1st, 2nd, 3rd-order CIC filters (RM=8) normalized frequency response. Top plot in linear gain, bottom plot in
677:
35:
1875:
1705:
1620:
203:
163:
98:
1330:
1599:
CIC filters are in general much more economical than general FIR filters, but tradeoffs are involved.
1701:
1258:
1632:
1223:
562:
1473:
1188:
275:
1758:
1888:
1776:
1384:
1356:
1319:
1095:
1023:
248:
176:
134:
1467:
32:
1538:
The CIC filter's possible range of responses is limited by this shape. Larger amounts of
1305:
Shape of the filter's main lobe changes very little when the decimation ratio is changed.
1680:
1657:
1435:
1412:
683:
1624:
1510:
1228:
1198:
1169:
771:
735:
706:
604:
539:
516:
494:
472:
78:
1912:
55:
1746:
1839:
1792:
1574:
CIC filters have low pass frequency characteristics, while FIR filters can have
1528:
1456:
556:
47:
1762:
1700:
is a power of two, that division can be easily implemented with an inexpensive
71:
1596:, while low pass FIR filters can have an arbitrarily sharp frequency roll-off.
1568:
43:
676:
An integrator–comb filter is an efficient implementation of a simple 1-order
1583:
1579:
1747:"An economical class of digital filters for decimation and interpolation"
1593:
1575:
1539:
279:
1460:
1350:
1340:
59:
1677:
could be added before or after the filter to make it an average. If
1567:
CIC filters are used primarily in multi-rate processing. Meanwhile,
166:
in 1979 (published in 1981), and are a class of FIR filters used in
511:
is the number of samples per stage (usually 1 but sometimes 2), and
1635:
occur in the integrators, they are corrected in the comb sections.
1619:
CIC filter uses only fixed point math, while FIR filters can use
131:
used by the comb stages (left half) to the high sampling rate of
1840:"A Beginner's Guide To Cascaded Integrator-Comb (CIC) Filters"
1751:
IEEE Transactions on
Acoustics, Speech, and Signal Processing
1904:
Cascaded
Integrator Comb (CIC) Filters – A Staircase of DSP
1162:
Cascaded integrator–comb yields higher-order moving average
200:
used by the integrator stages and the low sampling rate of
1349:
In the z-domain, each integrator contributes one pole at
1466:
Thus, the 1-order CIC's frequency response is a crude
1166:
Higher-order CIC structures are obtained by cascading
629:
208:
103:
1704:
or by simply treating the input or output numbers as
1683:
1660:
1513:
1476:
1455:
zeroes that are equally-spaced around the z-domain's
1438:
1415:
1387:
1359:
1261:
1201:
1172:
1098:
1026:
816:
774:
738:
709:
686:
627:
607:
565:
542:
519:
497:
475:
291:
251:
206:
179:
137:
101:
81:
621:
integrator stages (each is simply multiplication by
1899:
An
Intuitive Look at Moving Average and CIC Filters
533:is the order: the number of comb-integrator pairs.
1692:
1669:
1519:
1498:
1470:. Typically the gain is normalized by dividing by
1447:
1424:
1401:
1373:
1292:
1207:
1178:
1149:
1080:
1007:
798:
759:
724:
695:
657:
613:
590:
548:
525:
503:
481:
455:
264:
228:
192:
150:
123:
87:
1018:The second equality corresponds to a comb filter
50:pairs (where N is the filter's order) to form a
1878:- ADC technique that may use CIC for decimation
1246:Utilize only delay, addition, and subtraction.
1894:Understanding cascaded integrator–comb filters
1793:"The History of CIC Filters: The Untold Story"
658:{\displaystyle {\tfrac {1}{1-z^{\text{-1}}}}}
8:
1740:
1738:
1736:
1734:
1732:
1730:
1728:
1726:
1724:
158:used by the integrator stages (right half).
1235:CIC filters have some appealing features:
1820:
1682:
1659:
1512:
1490:
1475:
1437:
1414:
1391:
1386:
1363:
1358:
1269:
1260:
1200:
1171:
1097:
1025:
979:
978:
933:
855:
844:
817:
815:
773:
737:
708:
685:
645:
628:
626:
606:
576:
564:
559:stages (each is simply multiplication by
541:
518:
496:
489:is the decimation or interpolation ratio,
474:
443:
427:
403:
390:
369:
355:
336:
325:
292:
290:
256:
250:
214:
207:
205:
184:
178:
142:
136:
109:
102:
100:
80:
1222:
672:Integrator–comb is simple moving average
70:
1720:
1647:
1302:due to equivalence with moving average.
601:The denominator comes from multiplying
95:converts from the low sampling rate of
1592:CIC filters have a specific frequency
1239:Linear phase response (i.e. constant
536:The numerator comes from multiplying
7:
1833:
1831:
1829:
168:multi-rate digital signal processing
16:Digital signal sample rate converter
1745:Hogenauer, Eugene B. (April 1981).
1189:linear time-invariant (LTI) systems
229:{\displaystyle {\tfrac {f_{s}}{R}}}
124:{\displaystyle {\tfrac {f_{s}}{R}}}
1554:A short to moderate length FIR or
767:and subtracting the oldest sample
14:
1562:Comparison with other FIR filters
58:. In a decimating CIC, the input
1791:Lyons, Richard G. (2012-02-20).
1329:
1318:
1850:from the original on 2023-06-28
1803:from the original on 2023-03-29
1487:
1477:
1381:) and one zero at the origin (
1293:{\displaystyle N\log _{2}(RM)}
1287:
1278:
1144:
1138:
1129:
1117:
1108:
1102:
1075:
1060:
1051:
1045:
1036:
1030:
993:
987:
969:
954:
945:
939:
926:
914:
901:
895:
885:
873:
830:
824:
793:
778:
754:
742:
719:
713:
305:
299:
25:cascaded integrator–comb (CIC)
1:
1838:Richard, Lyons (2020-03-26).
244:At the high sampling rate of
162:CIC filters were invented by
1249:No expensive multiplication.
1935:
1763:10.1109/TASSP.1981.1163535
1586:frequency characteristics.
1919:Digital signal processing
1654:Division by the constant
1556:infinite impulse response
1409:). Each comb contributes
678:moving-average FIR filter
591:{\displaystyle 1-z^{-RM}}
557:negative feedforward comb
236:used by the comb stages.
29:computationally efficient
21:digital signal processing
1775:Donadio, Matthew (2000)
1608:computational efficiency
1499:{\displaystyle (RM)^{N}}
1459:, but its first zero at
1432:poles at the origin and
42:that chains N number of
1889:CIC Filter Introduction
1778:CIC Filter Introduction
732:to the previous result
36:finite impulse response
1876:Delta-sigma modulation
1694:
1671:
1521:
1500:
1449:
1426:
1403:
1375:
1294:
1232:
1209:
1180:
1151:
1082:
1009:
869:
800:
761:
726:
697:
659:
615:
592:
550:
527:
505:
483:
457:
350:
266:
230:
194:
159:
152:
125:
89:
1695:
1672:
1522:
1501:
1450:
1427:
1404:
1402:{\displaystyle z{=}0}
1376:
1374:{\displaystyle z{=}1}
1295:
1226:
1210:
1181:
1152:
1150:{\displaystyle y=y+c}
1090:that gets integrated
1083:
1081:{\displaystyle c=x-x}
1010:
840:
801:
762:
727:
698:
660:
616:
593:
551:
528:
506:
484:
458:
321:
267:
265:{\displaystyle f_{s}}
231:
195:
193:{\displaystyle f_{s}}
153:
151:{\displaystyle f_{s}}
126:
90:
74:
1681:
1658:
1511:
1474:
1436:
1413:
1385:
1357:
1259:
1199:
1170:
1096:
1024:
814:
772:
736:
707:
684:
625:
605:
563:
540:
517:
495:
473:
289:
249:
204:
177:
135:
99:
79:
680:, with division by
164:Eugene B. Hogenauer
1702:binary right shift
1693:{\displaystyle RM}
1690:
1670:{\displaystyle RM}
1667:
1550:Shape compensation
1517:
1496:
1448:{\displaystyle RM}
1445:
1425:{\displaystyle RM}
1422:
1399:
1371:
1310:Frequency response
1290:
1233:
1205:
1176:
1147:
1078:
1005:
1003:
997:
976:
796:
757:
722:
696:{\displaystyle RM}
693:
655:
653:
611:
588:
546:
523:
501:
479:
453:
451:
262:
226:
224:
190:
160:
148:
121:
119:
85:
1529:sinc-in-frequency
1520:{\displaystyle R}
1208:{\displaystyle R}
1179:{\displaystyle N}
982:
981:comb filter
934:
932:
799:{\displaystyle x}
760:{\displaystyle y}
725:{\displaystyle x}
665:in the z-domain).
652:
648:
614:{\displaystyle N}
598:in the z-domain).
549:{\displaystyle N}
526:{\displaystyle N}
504:{\displaystyle M}
482:{\displaystyle R}
437:
276:transfer function
240:Transfer function
223:
118:
88:{\displaystyle R}
1926:
1859:
1858:
1856:
1855:
1835:
1824:
1818:
1812:
1811:
1809:
1808:
1788:
1782:
1773:
1767:
1766:
1742:
1709:
1699:
1697:
1696:
1691:
1676:
1674:
1673:
1668:
1652:
1526:
1524:
1523:
1518:
1505:
1503:
1502:
1497:
1495:
1494:
1454:
1452:
1451:
1446:
1431:
1429:
1428:
1423:
1408:
1406:
1405:
1400:
1395:
1380:
1378:
1377:
1372:
1367:
1333:
1322:
1301:
1299:
1297:
1296:
1291:
1274:
1273:
1214:
1212:
1211:
1206:
1185:
1183:
1182:
1177:
1158:
1156:
1154:
1153:
1148:
1089:
1087:
1085:
1084:
1079:
1014:
1012:
1011:
1006:
1004:
996:
983:
980:
977:
972:
868:
854:
807:
805:
803:
802:
797:
766:
764:
763:
758:
731:
729:
728:
723:
702:
700:
699:
694:
664:
662:
661:
656:
654:
651:
650:
649:
646:
630:
620:
618:
617:
612:
597:
595:
594:
589:
587:
586:
555:
553:
552:
547:
532:
530:
529:
524:
510:
508:
507:
502:
488:
486:
485:
480:
462:
460:
459:
454:
452:
448:
447:
442:
438:
436:
435:
434:
415:
414:
413:
391:
378:
374:
373:
368:
364:
363:
362:
349:
335:
273:
271:
269:
268:
263:
261:
260:
235:
233:
232:
227:
225:
219:
218:
209:
199:
197:
196:
191:
189:
188:
157:
155:
154:
149:
147:
146:
130:
128:
127:
122:
120:
114:
113:
104:
94:
92:
91:
86:
1934:
1933:
1929:
1928:
1927:
1925:
1924:
1923:
1909:
1908:
1885:
1867:
1862:
1853:
1851:
1837:
1836:
1827:
1819:
1815:
1806:
1804:
1790:
1789:
1785:
1774:
1770:
1744:
1743:
1722:
1718:
1713:
1712:
1679:
1678:
1656:
1655:
1653:
1649:
1644:
1564:
1552:
1509:
1508:
1486:
1472:
1471:
1468:low-pass filter
1434:
1433:
1411:
1410:
1383:
1382:
1355:
1354:
1347:
1346:
1345:
1344:
1336:
1335:
1334:
1325:
1324:
1323:
1312:
1265:
1257:
1256:
1255:
1221:
1197:
1196:
1168:
1167:
1164:
1094:
1093:
1091:
1022:
1021:
1019:
1002:
1001:
935:
904:
889:
888:
833:
812:
811:
770:
769:
768:
734:
733:
705:
704:
682:
681:
674:
641:
634:
623:
622:
603:
602:
572:
561:
560:
538:
537:
515:
514:
493:
492:
471:
470:
450:
449:
423:
416:
399:
392:
386:
385:
376:
375:
351:
320:
316:
315:
308:
287:
286:
252:
247:
246:
245:
242:
210:
202:
201:
180:
175:
174:
138:
133:
132:
105:
97:
96:
77:
76:
69:
17:
12:
11:
5:
1932:
1930:
1922:
1921:
1911:
1910:
1907:
1906:
1901:
1896:
1891:
1884:
1883:External links
1881:
1880:
1879:
1873:
1866:
1863:
1861:
1860:
1844:DSPRelated.com
1825:
1821:Hogenauer 1981
1813:
1797:DSPRelated.com
1783:
1768:
1757:(2): 155–162.
1719:
1717:
1714:
1711:
1710:
1689:
1686:
1666:
1663:
1646:
1645:
1643:
1640:
1639:
1638:
1637:
1636:
1625:floating point
1617:
1616:
1615:
1611:
1604:
1597:
1590:
1587:
1572:
1563:
1560:
1551:
1548:
1516:
1493:
1489:
1485:
1482:
1479:
1444:
1441:
1421:
1418:
1398:
1394:
1390:
1370:
1366:
1362:
1338:
1337:
1328:
1327:
1326:
1317:
1316:
1315:
1314:
1313:
1311:
1308:
1307:
1306:
1303:
1289:
1286:
1283:
1280:
1277:
1272:
1268:
1264:
1254:Bit growth of
1252:
1251:
1250:
1244:
1220:
1217:
1204:
1175:
1163:
1160:
1146:
1143:
1140:
1137:
1134:
1131:
1128:
1125:
1122:
1119:
1116:
1113:
1110:
1107:
1104:
1101:
1077:
1074:
1071:
1068:
1065:
1062:
1059:
1056:
1053:
1050:
1047:
1044:
1041:
1038:
1035:
1032:
1029:
1016:
1015:
1000:
995:
992:
989:
986:
975:
971:
968:
965:
962:
959:
956:
953:
950:
947:
944:
941:
938:
931:
928:
925:
922:
919:
916:
913:
910:
907:
905:
903:
900:
897:
894:
891:
890:
887:
884:
881:
878:
875:
872:
867:
864:
861:
858:
853:
850:
847:
843:
839:
836:
834:
832:
829:
826:
823:
820:
819:
795:
792:
789:
786:
783:
780:
777:
756:
753:
750:
747:
744:
741:
721:
718:
715:
712:
692:
689:
673:
670:
669:
668:
667:
666:
644:
640:
637:
633:
610:
599:
585:
582:
579:
575:
571:
568:
545:
522:
512:
500:
490:
478:
464:
463:
446:
441:
433:
430:
426:
422:
419:
412:
409:
406:
402:
398:
395:
389:
384:
381:
379:
377:
372:
367:
361:
358:
354:
348:
345:
342:
339:
334:
331:
328:
324:
319:
314:
311:
309:
307:
304:
301:
298:
295:
294:
259:
255:
241:
238:
222:
217:
213:
187:
183:
145:
141:
117:
112:
108:
84:
68:
65:
15:
13:
10:
9:
6:
4:
3:
2:
1931:
1920:
1917:
1916:
1914:
1905:
1902:
1900:
1897:
1895:
1892:
1890:
1887:
1886:
1882:
1877:
1874:
1872:
1869:
1868:
1864:
1849:
1845:
1841:
1834:
1832:
1830:
1826:
1823:, Eq. 11
1822:
1817:
1814:
1802:
1798:
1794:
1787:
1784:
1780:
1779:
1772:
1769:
1764:
1760:
1756:
1752:
1748:
1741:
1739:
1737:
1735:
1733:
1731:
1729:
1727:
1725:
1721:
1715:
1707:
1703:
1687:
1684:
1664:
1661:
1651:
1648:
1641:
1634:
1629:
1628:
1626:
1622:
1618:
1612:
1609:
1605:
1601:
1600:
1598:
1595:
1591:
1588:
1585:
1581:
1577:
1573:
1570:
1566:
1565:
1561:
1559:
1557:
1549:
1547:
1545:
1541:
1536:
1532:
1530:
1514:
1491:
1483:
1480:
1469:
1464:
1462:
1458:
1442:
1439:
1419:
1416:
1396:
1392:
1388:
1368:
1364:
1360:
1352:
1342:
1332:
1321:
1309:
1304:
1284:
1281:
1275:
1270:
1266:
1262:
1253:
1248:
1247:
1245:
1242:
1238:
1237:
1236:
1230:
1229:pole-zero map
1225:
1218:
1216:
1202:
1192:
1190:
1173:
1161:
1159:
1141:
1135:
1132:
1126:
1123:
1120:
1114:
1111:
1105:
1099:
1072:
1069:
1066:
1063:
1057:
1054:
1048:
1042:
1039:
1033:
1027:
998:
990:
984:
973:
966:
963:
960:
957:
951:
948:
942:
936:
929:
923:
920:
917:
911:
908:
906:
898:
892:
882:
879:
876:
870:
865:
862:
859:
856:
851:
848:
845:
841:
837:
835:
827:
821:
810:
809:
808:
790:
787:
784:
781:
775:
751:
748:
745:
739:
716:
710:
690:
687:
679:
671:
642:
638:
635:
631:
608:
600:
583:
580:
577:
573:
569:
566:
558:
543:
535:
534:
520:
513:
498:
491:
476:
469:
468:
467:
444:
439:
431:
428:
424:
420:
417:
410:
407:
404:
400:
396:
393:
387:
382:
380:
370:
365:
359:
356:
352:
346:
343:
340:
337:
332:
329:
326:
322:
317:
312:
310:
302:
296:
285:
284:
283:
281:
277:
257:
253:
239:
237:
220:
215:
211:
185:
181:
171:
169:
165:
143:
139:
115:
110:
106:
82:
73:
66:
64:
61:
57:
53:
49:
45:
41:
37:
34:
30:
26:
22:
1852:. Retrieved
1843:
1816:
1805:. Retrieved
1796:
1786:
1777:
1771:
1754:
1750:
1650:
1553:
1537:
1533:
1465:
1348:
1234:
1193:
1165:
1017:
675:
465:
243:
172:
161:
56:interpolator
24:
18:
1706:fixed-point
1569:FIR filters
1457:unit circle
1241:group delay
48:comb filter
1871:Decimation
1854:2023-08-25
1807:2023-08-24
1716:References
44:integrator
1633:overflows
1584:band-pass
1580:high-pass
1544:bit width
1276:
1124:−
1067:−
1055:−
974:⏟
961:−
949:−
921:−
880:−
863:−
842:∑
785:−
749:−
639:−
578:−
570:−
429:−
421:−
405:−
397:−
357:−
344:−
323:∑
67:Operation
52:decimator
31:class of
1913:Category
1865:See also
1848:Archived
1801:Archived
1594:roll-off
1576:low-pass
1540:stopband
1227:1-order
1219:Features
280:z-domain
274:a CIC's
33:low-pass
1708:binary.
1631:length
1614:change.
466:where:
278:in the
1627:math.
1231:(RM=8)
60:signal
40:filter
38:(FIR)
1642:Notes
1621:fixed
1603:taps.
1582:, or
27:is a
282:is:
46:and
23:, a
1759:doi
1623:or
1267:log
54:or
19:In
1915::
1846:.
1842:.
1828:^
1799:.
1795:.
1755:29
1753:.
1749:.
1723:^
1578:,
1531:.
1527:a
1461:DC
1351:DC
1341:dB
1243:).
1191:.
1157:).
647:-1
170:.
1857:.
1810:.
1765:.
1761::
1688:M
1685:R
1665:M
1662:R
1610:.
1515:R
1492:N
1488:)
1484:M
1481:R
1478:(
1443:M
1440:R
1420:M
1417:R
1397:0
1393:=
1389:z
1369:1
1365:=
1361:z
1353:(
1343:.
1300:,
1288:)
1285:M
1282:R
1279:(
1271:2
1263:N
1203:R
1174:N
1145:]
1142:n
1139:[
1136:c
1133:+
1130:]
1127:1
1121:n
1118:[
1115:y
1112:=
1109:]
1106:n
1103:[
1100:y
1092:(
1088:)
1076:]
1073:M
1070:R
1064:n
1061:[
1058:x
1052:]
1049:n
1046:[
1043:x
1040:=
1037:]
1034:n
1031:[
1028:c
1020:(
999:.
994:]
991:n
988:[
985:c
970:]
967:M
964:R
958:n
955:[
952:x
946:]
943:n
940:[
937:x
930:+
927:]
924:1
918:n
915:[
912:y
909:=
902:]
899:n
896:[
893:y
886:]
883:k
877:n
874:[
871:x
866:1
860:M
857:R
852:0
849:=
846:k
838:=
831:]
828:n
825:[
822:y
806::
794:]
791:M
788:R
782:n
779:[
776:x
755:]
752:1
746:n
743:[
740:y
720:]
717:n
714:[
711:x
691:M
688:R
643:z
636:1
632:1
609:N
584:M
581:R
574:z
567:1
544:N
521:N
499:M
477:R
445:N
440:)
432:1
425:z
418:1
411:M
408:R
401:z
394:1
388:(
383:=
371:N
366:]
360:k
353:z
347:1
341:M
338:R
333:0
330:=
327:k
318:[
313:=
306:)
303:z
300:(
297:H
272:,
258:s
254:f
221:R
216:s
212:f
186:s
182:f
144:s
140:f
116:R
111:s
107:f
83:R
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.