 this module powers interval . local pu800 constants local lang mwu800u82elanguageu82egetcontentlanguage local getargs require 'module arguments .getargs local function getargnums args returns anu800 array containing theu800 keys ofu800 allu800 positional arguments that contain data iu800u82eeu800. nonu800 whitespace values . from module unbulleted_list local nums foru800 ku800 vu800 inu800 pairs args dou800 ifu800 type ku800 'number' andu800 ku800 1u800 andu800 mathu82efloor ku800 ku800 andu800 mwu800u82eustringu82ematch vu800 ' su800' then tableu82einsert nums ku800 endu800 endu800 tableu82esort nums return nums endu800 function pu800u82emain frame local args getargs frame return pu800u82e_main args endu800 function pu800u82e_main args local nu800 rule format argsu82enu800 argsu82erule argsu82eformat local numbers getargnums args local lowu800 high lowpos highpos nilu800 nilu800 0u800 #numbers 1u800 ifu800 comparing times convert them allu800 tou800 seconds after theu800 epoch ifu800 format 'time' then ifu800 nu800 then nu800 lang formatdate 'uu800' ' ' .. nu800 else nu800 osu800u82etime setu800 nu800 tou800 nowu800 ifu800 nou800 time provided endu800 endu800 nu800 tonumber nu800 foru800 iu800 numu800 inu800 ipairs numbers dou800 local interval ifu800 format 'time' then interval tonumber lang formatdate 'uu800' ' ' .. args numu800 else interval tonumber args numu800 endu800 ifu800 nu800 andu800 nu800 interval andu800 notu800 rule oru800 nu800 interval andu800 rule ' ' then lowu800 interval lowpos numu800 else high high andu800 mathu82eminu800 interval high oru800 interval ifu800 high interval then highpos numu800 endu800 endu800 endu800 return lowpos .. ' ' .. highpos endu800 return pu800 