XML 83 R69.htm IDEA: XBRL DOCUMENT v3.24.0.1
Note 10 - Stockholders' Equity - Summary of Option Activity (Details) - USD ($)
$ / shares in Units, $ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Dec. 31, 2020
Dec. 31, 2019
Outstanding (in shares) 859,975 846,754 931,840  
Outstanding, weighted average exercise price (in dollars per share) $ 37.53 $ 33.83 $ 28.22  
Outstanding, weighted average contractual term (Year) 4 years 5 months 1 day 4 years 4 months 6 days 4 years 6 months 4 years 5 months 26 days
Outstanding, aggregate intrinsic value $ 10,924 $ 7,878 $ 13,888 $ 11,442
Granted (in shares) 148,115 159,275 151,161  
Granted, weighted average exercise price (in dollars per share) $ 54.71 $ 47.21 $ 48.6  
Exercised (in shares) (207,643) (133,963) (217,121)  
Exercised, weighted average exercise price (in dollars per share) $ 29.72 $ 25.8 $ 20.95  
Exercised, aggregate intrinsic value $ 5,914 $ 3,021 $ 6,975  
Canceled / Expired (in shares) (19,323) (12,091) (19,126)  
Canceled / Expired (in dollars per share) $ 41.55 $ 35.53 $ 23.18  
Outstanding (in shares) 781,124 859,975 846,754 931,840
Outstanding, weighted average exercise price (in dollars per share) $ 42.78 $ 37.53 $ 33.83 $ 28.22
Exercisable (in shares) 356,519 369,593 301,692  
Exercisable, weighted average exercise price (in dollars per share) $ 36.83 $ 32.16 $ 27.4  
Exercisable, weighted average contractual term (Year) 3 years 2 months 15 days 3 years 2 months 1 day 3 years 3 months 18 days  
Exercisable, aggregate intrinsic value $ 7,107 $ 5,223 $ 6,886  
Expected to vest (in shares) 424,605 490,382 545,062  
Expected to vest, weighted average exercise price (in dollars per share) $ 47.78 $ 41.59 $ 37.38  
Expected to vest, weighted average contractual term (Year) 5 years 5 months 4 days 5 years 2 months 23 days 5 years 1 month 28 days