XML 58 R43.htm IDEA: XBRL DOCUMENT v3.20.4
Note 15 - Stock-based Compensation (Tables)
12 Months Ended
Dec. 31, 2020
Notes Tables  
Share-based Payment Arrangement, Option, Activity [Table Text Block]
            Weighted average    
        Weighted   remaining    
    Number of   average   contractual life   Aggregate
    options   exercise price   (years)   intrinsic value
                 
Shares issuable under options - Beginning of period    
1,639,100
    $
60.26
     
 
     
 
 
Granted    
542,000
     
114.90
     
 
     
 
 
Exercised    
(294,238
)    
40.34
     
 
     
 
 
Forfeited    
(3,750
)    
54.88
     
 
     
 
 
Shares issuable under options - December 31, 2020    
1,883,112
    $
79.11
     
2.6
    $
108,772
 
Options exercisable - End of period    
714,014
    $
60.63
     
1.6
    $
54,383
 
Stock Options Exercised [Table Text Block]
    2020
     
Number of options exercised    
294,238
 
         
Aggregate fair value   $
33,734
 
Intrinsic value    
22,224
 
Amount of cash received    
11,510
 
Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]
    2020
     
Risk free rate    
1.3
%
Expected life in years    
4.75
 
Expected volatility    
30.5
%
Dividend yield    
0.5
%
         
Weighted average fair value per option granted   $
29.56