Files
scarif/openclaw/workspace/nextcloud-calendar/scripts/__pycache__/ncal.cpython-311.pyc

210 lines
31 KiB
Plaintext
Raw Normal View History

2026-03-13 18:47:30 +00:00
<EFBFBD>
<02>iG<00><00><><00>dZddlZddlZddlZddlZddlZddlZddlZddl m Z m
Z
m Z m Z ddl mcmZejdd<05><00><00>d<06><00>Zejdd<05><00>Zejdd<05><00>Zejd d<05><00>Zd
Zd Zdd<0E>Zd<0F>Zd<10>Zd d<11>Zd<12>Zd<13>Zd<14>Zd d<15>Z d<16>Z!d<17>Z"d<18>Z#d<19>Z$d<1A>Z%d<1B>Z&d<1C>Z'd<1D>Z(e)dkr e(<28><00>dSdS)!a<>
Unified Nextcloud CalDAV CLI.
Commands:
list - List calendars
events - View events (supports --today, --date, --start/--end, --search)
add - Create event (--summary, --start, --end, --recurrence, --description)
update - Modify event (--uid OR --summary+--date, with --set-* options)
delete - Remove event (--uid OR --summary+--date)
test - Verify connection
Requires environment variables:
NEXTCLOUD_URL, NEXTCLOUD_USER, NEXTCLOUD_PASSWORD, CALDAV_PRINCIPAL
<EFBFBD>N)<04>datetime<6D>date<74> timedelta<74>timezone<6E> NEXTCLOUD_URL<52><00>/<2F>NEXTCLOUD_USER<45>NEXTCLOUD_PASSWORD<52>CALDAV_PRINCIPALz{DAV:}z{urn:ietf:params:xml:ns:caldav}<7D>PROPFIND<4E>1c<00><><00>tj<00><00><00>}|<05>dtt
t <00><00>tj<00>tj<00>|<05><00><00><00>}tj<00> ||r|<02>
<00><00>nd|<01><01><00>}|<07> dd<03><00>|r|<07> d|<03><00>|r|<07> d|<04><00>|<07> dd<07><00>|<06> |<07><00><00> <00><00><00>d<08><00>S) N)<02>data<74>methodz Content-Typeztext/xml; charset=utf-8<>DepthzIf-Matchz
User-AgentzOpenClaw-Calendar/1.0zutf-8)<0F>urllib<69>request<73>HTTPPasswordMgrWithDefaultRealm<6C> add_passwordrr
r <00> build_opener<65>HTTPBasicAuthHandler<65>Request<73>encode<64>
add_header<EFBFBD>open<65>read<61>decode)<08>urlr<00>body<64>depth<74>etag<61>pw<70>opener<65>reqs <20>A/home/node/.openclaw/workspace/nextcloud-calendar/scripts/ncal.py<70> make_requestr's <00><00> <0F><1E> 7<> 7<> 9<> 9<>B<EFBFBD><06>O<EFBFBD>O<EFBFBD>D<EFBFBD>-<2D><1E>9K<39>L<>L<>L<> <13>^<5E> (<28> (<28><16><1E>)L<>)L<>R<EFBFBD>)P<>)P<> Q<> Q<>F<EFBFBD>
<10>.<2E>
<20>
<20><13>D<EFBFBD>+J<>4<EFBFBD>;<3B>;<3B>=<3D>=<3D>=<3D>d<EFBFBD>SY<53>
<20>
Z<EFBFBD>
Z<EFBFBD>C<EFBFBD><07>N<EFBFBD>N<EFBFBD>><3E>#<<3C>=<3D>=<3D>=<3D> <0C>,<2C>c<EFBFBD>n<EFBFBD>n<EFBFBD>W<EFBFBD>e<EFBFBD>,<2C>,<2C>,<2C> <0B>-<2D>S<EFBFBD>^<5E>^<5E>J<EFBFBD><04> -<2D> -<2D> -<2D><07>N<EFBFBD>N<EFBFBD><<3C>!8<>9<>9<>9<> <11>;<3B>;<3B>s<EFBFBD> <1B> <1B> <20> <20> "<22> "<22> )<29> )<29>'<27> 2<> 2<>2<>c<00>\<00>t<00>t<00><00>}d}t||d<02><03><00>}tj|<02><00>}|<03>dt <00>dt<00>d<06><05><00>}|<04>;|j<00> <00><00>}|<05>
d<07><00>r|n
t<00>|<05><00>St<00>dt<00>d <09>S)
Nz<EFBFBD><?xml version="1.0"?>
<d:propfind xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:caldav">
<d:prop><c:calendar-home-set/></d:prop>
</d:propfind><3E>0<>r r!z.//zcalendar-home-set/<2F>href<65>httpz/remote.php/dav/calendars/r ) rr r'<00>ET<45>
fromstring<EFBFBD>find<6E> NS_CALDAV<41>NS_DAV<41>text<78>strip<69>
startswithr
)<06> principal_urlr <00>resp<73>root<6F>elemr,s r&<00>get_calendar_homer:)s<><00><00>$<24>8<>&6<>8<>8<>M<EFBFBD> <11>D<EFBFBD> <18> <0A>D<EFBFBD><03> <<3C> <<3C> <<3C>D<EFBFBD> <0A>=<3D><14> <1E> <1E>D<EFBFBD> <0F>9<EFBFBD>9<EFBFBD>D<>9<EFBFBD>D<>D<><06>D<>D<>D<> E<> E<>D<EFBFBD> <0B><17><13>y<EFBFBD><EFBFBD><EFBFBD> <20> <20><04><1B><EFBFBD><EFBFBD>v<EFBFBD>.<2E>.<2E>L<>t<EFBFBD>t<EFBFBD>}<7D>4L<34>d<EFBFBD>4L<34>4L<34>L<><1B> H<> H<>~<7E> H<> H<> H<>Hr(c<00><><00>t<00><00>}d}t||d<02><03><00>}tj|<02><00>}g}|<03>t
<00>d<04><02><00>D<00>] }|<05>t
<00>d<05><02><00>}|<06>|j<00>d<06><00>s<01>=|<05>t
<00>dt
<00>d<08><04><00>}|<07><01>e|<07>t
<00>d <09><02><00>}|<08>|jn2|j<00> d<06><00><00>
d<06><00>d
} |<04> | |j|j<00> d<06><00>rt<00>|j<00><00>n|jd <0B><03><00><00><01> |S) Nz<4E><?xml version="1.0"?>
<d:propfind xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:caldav">
<d:prop><d:displayname/><c:supported-calendar-component-set/></d:prop>
</d:propfind>rr+<00>responser,r z propstat/<2F>prop<6F> displayname<6D><65><EFBFBD><EFBFBD><EFBFBD>)<03>namer,r)r:r'r.r/<00>findallr2r0r3<00>endswithr4<00>split<69>appendr5r)
<EFBFBD>homer r7r8<00>cals<6C>r<>href_elr=<00>name_elr@s
r&<00> get_calendarsrJ7sp<00><00> <1C> <1E> <1E>D<EFBFBD> <11>D<EFBFBD> <18><04>4<EFBFBD>s<EFBFBD> 3<> 3<> 3<>D<EFBFBD> <0A>=<3D><14> <1E> <1E>D<EFBFBD> <0A>D<EFBFBD> <11>\<5C>\<5C>V<EFBFBD>-<2D>-<2D>-<2D> .<2E> .<2E>  <0B>  <0B><01><13>&<26>&<26>F<EFBFBD><1F><1F><1F>)<29>)<29><07> <12>?<3F>'<27>,<2C>"7<>"7<><03>"<<3C>"<<3C>?<3F> <14><10>v<EFBFBD>v<EFBFBD><16>6<>6<>&<26>6<>6<>6<>7<>7<><04> <0F><<3C> <14><16>)<29>)<29>v<EFBFBD>2<>2<>2<>3<>3<><07>&<26>2<>w<EFBFBD>|<7C>|<7C><07> <0C>8J<38>8J<38>3<EFBFBD>8O<38>8O<38>8U<38>8U<38>VY<56>8Z<38>8Z<38>[]<5D>8^<5E><04> <0C> <0B> <0B><18><1B>L<EFBFBD>7><3E>|<7C>7N<37>7N<37>s<EFBFBD>7S<37>7S<37>e<>m<EFBFBD>3<>W<EFBFBD>\<5C>3<>3<>3<>Y`<60>Ye<59>
<EFBFBD>
<EFBFBD> <0B> <0B> <0B> <0B>
<10>Kr(c<00><><00>t<00><00>}|std<01><00><00>|r.|D]}|d|kr
|dcS<00>td|<00>d<05><03><00><00>|D]}|ddkr
|dcS<00>|ddS)NzNo calendars foundr@rz
Calendar 'z ' not found<6E>Personalr)rJ<00> Exception)r@rF<00>cals r&<00>get_calendar_url_by_namerOPs<><00><00> <18>?<3F>?<3F>D<EFBFBD> <0F>.<2E><17>,<2C>-<2D>-<2D>-<2D> <0B>8<><17> "<22> "<22>C<EFBFBD><12>6<EFBFBD>{<7B>d<EFBFBD>"<22>"<22><1A>5<EFBFBD>z<EFBFBD>!<21>!<21>!<21>#<23><17>6<>T<EFBFBD>6<>6<>6<>7<>7<>7<><13><1E><1E><03> <0E>v<EFBFBD>;<3B>*<2A> $<24> $<24><16>u<EFBFBD>:<3A> <1D> <1D> <1D> %<25> <0F><01>7<EFBFBD>5<EFBFBD>><3E>r(c<00>|<00>|<00><00><00>}|<00>d<01><00>rD tj|d<02><00><00>t
j<00><03><00>S#t$rYnwxYw tj|d<04><00>S#t$r- tj|d<05><00>cYS#t$r|cYcYSwxYwwxYw)N<>Z<>%Y%m%dT%H%M%SZ)<01>tzinfo<66> %Y%m%dT%H%M%S<>%Y%m%d)r4rBr<00>strptime<6D>replacer<00>utc<74>
ValueError)<01>dt_strs r&<00>parse_datetime_icalr[_s<><00><00> <13>\<5C>\<5C>^<5E>^<5E>F<EFBFBD> <0A><EFBFBD><EFBFBD>s<EFBFBD><1B><1B><11> <11><1B>$<24>V<EFBFBD>-=<3D>><3E>><3E>F<>F<>h<EFBFBD>l<EFBFBD>F<>[<5B>[<5B> [<5B><><19> <11> <11> <11> <10>D<EFBFBD> <11><><EFBFBD><EFBFBD><1A><17> <20><16><1F>9<>9<>9<><39> <15><1A><1A><1A> <1A><1B>$<24>V<EFBFBD>X<EFBFBD>6<>6<> 6<> 6<> 6<><36><19> <1A> <1A> <1A><19>M<EFBFBD>M<EFBFBD>M<EFBFBD>M<EFBFBD>M<EFBFBD> <1A><><EFBFBD><EFBFBD><1A><><EFBFBD>sA<00>2A<00>
A+<03>*A+<03>/B<00>
B;<03>B&<02>#B;<03>& B7<05>2B;<03>6B7<05>7B;c<00><><00>t|t<00><00>r|<00>d<01><00>St|t<00><00>r|<00>d<02><00>St |<00><00>S)Nz%Y-%m-%d %H:%Mz%Y-%m-%d)<05>
isinstancer<00>strftimer<00>str)<01>dts r&<00> format_dtransV<00><00><11>"<22>h<EFBFBD><1F><1F>-<2D><11>{<7B>{<7B>+<2B>,<2C>,<2C>,<2C><11>"<22>d<EFBFBD><1B><1B>'<27><11>{<7B>{<7B>:<3A>&<26>&<26>&<26> <0E>r<EFBFBD>7<EFBFBD>7<EFBFBD>Nr(c<00><><00>|<00>d<01><00>}ddddddd<04>}d}d}|D<00>]5}|<05><00><00>}|<06>d<05><00>r|r ||dd<00>z }<04><|r<>|dkr||d<n<>|d kr||d
<n<>|d kr2td |vr|<04>d <0C><00>dn|<04><00>|d <nO|dkr2td |vr|<04>d <0C><00>dn|<04><00>|d<n|dkr||d<n |dkr||d<d|vrT|<06>dd<06><00>}|d<00>d <0C><00>d}t |<07><00>dkr|dnd}<04><01>7|r<>|dkr||d<n<>|d kr||d
<n<>|d kr2td |vr|<04>d <0C><00>dn|<04><00>|d <nO|dkr2td |vr|<04>d <0C><00>dn|<04><00>|d<n|dkr||d<n |dkr||d<|S)N<>
zNo titler)<06>summary<72>start<72>end<6E> description<6F>uid<69>rrule)<02> <20> <09><00>SUMMARYrd<00> DESCRIPTIONrg<00>DTSTART<52>;re<00>DTENDrf<00>UIDrh<00>RRULEri<00>:r)rCr4r5r[<00>len)<08> ical_text<78>lines<65>ev<65>key<65>val<61>line<6E>stripped<65>partss r&<00>parse_ical_eventr~us<><00><00> <15>O<EFBFBD>O<EFBFBD>D<EFBFBD> !<21> !<21>E<EFBFBD><1F>$<24>t<EFBFBD>B<EFBFBD>W[<5B>fj<66> k<> k<>B<EFBFBD>
<0E>C<EFBFBD>
<0C>C<EFBFBD><15>5<>5<><04><17>:<3A>:<3A><<3C><<3C><08> <13> <1E> <1E>{<7B> +<2B> +<2B> <15><12> $<24><13>x<EFBFBD><01><02><02>|<7C>#<23><03> <14> <0E> 3<><12>i<EFBFBD><1F><1F><13><12>I<EFBFBD><1D><1D><14> <0A>%<25>%<25>3<EFBFBD>r<EFBFBD>-<2D>'8<>'8<><14> <09>!<21>!<21>1D<31>Z]<5D>ad<61>Zd<5A>Zd<5A>S<EFBFBD>Y<EFBFBD>Y<EFBFBD>s<EFBFBD>^<5E>^<5E>TU<54>EV<45>EV<45>jm<6A>1n<31>1n<31>2<EFBFBD>g<EFBFBD>;<3B>;<3B><14><07><1E><1E>-@<40>VY<56>]`<60>V`<60>V`<60><13><19><19>3<EFBFBD><1E><1E>PQ<50>AR<41>AR<41>fi<66>-j<>-j<><12>E<EFBFBD><19><19><14><05><1C><1C>3<EFBFBD>r<EFBFBD>%<25>y<EFBFBD>y<EFBFBD><14><07><1E><1E>s<EFBFBD><12>G<EFBFBD><1B> <0E>(<28>?<3F>?<3F><1C>N<EFBFBD>N<EFBFBD>3<EFBFBD><01>*<2A>*<2A>E<EFBFBD><17><01>(<28>.<2E>.<2E><13>%<25>%<25>a<EFBFBD>(<28>C<EFBFBD>!<21>%<25>j<EFBFBD>j<EFBFBD>1<EFBFBD>n<EFBFBD>n<EFBFBD>%<25><01>(<28>(<28>"<22>C<EFBFBD><43>
<EFBFBD>/<2F> <0E>)<29> <1B> <1B>S<EFBFBD>R<EFBFBD> <09>]<5D>]<5D> <10>M<EFBFBD> !<21> !<21>s<EFBFBD>2<EFBFBD>m<EFBFBD>#4<>#4<> <10>I<EFBFBD> <1D> <1D>-@<40>VY<56>]`<60>V`<60>V`<60><13><19><19>3<EFBFBD><1E><1E>PQ<50>AR<41>AR<41>fi<66>-j<>-j<>r<EFBFBD>'<27>{<7B>{<7B> <10>G<EFBFBD>^<5E>^<5E>)<<3C>RU<52>Y\<5C>R\<5C>R\<5C>S<EFBFBD>Y<EFBFBD>Y<EFBFBD>s<EFBFBD>^<5E>^<5E>A<EFBFBD>=N<>=N<>be<62>)f<>)f<>R<EFBFBD><05>Y<EFBFBD>Y<EFBFBD> <10>E<EFBFBD>\<5C>\<5C>s<EFBFBD>2<EFBFBD>e<EFBFBD>9<EFBFBD>9<EFBFBD> <10>G<EFBFBD>^<5E>^<5E>3<EFBFBD>R<EFBFBD><07>[<5B> <0A>Ir(c<00><><00>|<01>d<01><00>}|<02>d<01><00>}d|<04>d|<05>d<04>} t|d|d<06><07><00>}n#t$rgcYSwxYwtj|<07><00>}g} |<08>t <00>d<08><02><00>D<00>]b}
|
<EFBFBD>t <00>d <09><02><00>} |
<EFBFBD>t <00>d
<EFBFBD><02><00>} | <0B>| <0C><01>B| <0C>t <00>d <0B><02><00>} | <0A><01>b| <0A>t <00>d <0C><02><00>}| <0A>t<00>d <0A><02><00>}|<0F><>|j r<>t|j <00><00>}|r<>|rx|<03> <00><00>|<10> dd<0F><00><00> <00><00>vs<|<03> <00><00>|<10> dd<0F><00><00> <00><00>vr-|<0E>|j nd|d<| j |d <| <09> |<10><00><00><01>d| S)NrRz<><c:calendar-query xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:caldav">
<d:prop><d:getetag/><c:calendar-data/></d:prop>
<c:filter>
<c:comp-filter name="VCALENDAR">
<c:comp-filter name="VEVENT">
<c:time-range start="z" end="zQ"/>
</c:comp-filter>
</c:comp-filter>
</c:filter>
</c:calendar-query><3E>REPORTr)rr r!r<r,<00>propstatr=<00>getetagz calendar-datardrrgr")r^r'rMr.r/rAr2r0r1r3r~<00>lower<65>getrD)<11> calendar_url<72>start_dt<64>end_dt<64>search<63> start_str<74>end_strr r7r8<00>eventsrGr,r<>r=r"<00>caldatarxs r&<00> query_eventsr<73><00>sD<00><00><18>!<21>!<21>"2<>3<>3<>I<EFBFBD><14>o<EFBFBD>o<EFBFBD>.<2E>/<2F>/<2F>G<EFBFBD> <17>
(<28> <17> <17>
18<31> <17> <17> <17>D<EFBFBD><12><1B>L<EFBFBD><18><04>C<EFBFBD>P<>P<>P<><04><04><> <14><12><12><12><11> <09> <09> <09><12><><EFBFBD><EFBFBD> <0A>=<3D><14> <1E> <1E>D<EFBFBD> <0F>F<EFBFBD> <11>\<5C>\<5C>V<EFBFBD>-<2D>-<2D>-<2D> .<2E> .<2E>"<22>"<22><01><10>v<EFBFBD>v<EFBFBD><16>o<EFBFBD>o<EFBFBD>o<EFBFBD>&<26>&<26><04><14>6<EFBFBD>6<EFBFBD>V<EFBFBD>-<2D>-<2D>-<2D>.<2E>.<2E><08> <0F><<3C>8<EFBFBD>+<2B> <14><17>}<7D>}<7D><06>_<EFBFBD>_<EFBFBD>_<EFBFBD>-<2D>-<2D><04> <0F><<3C> <14><13>y<EFBFBD>y<EFBFBD>F<EFBFBD>+<2B>+<2B>+<2B>,<2C>,<2C><04><16>)<29>)<29>y<EFBFBD>7<>7<>7<>8<>8<><07> <12> <1E>7<EFBFBD><<3C> <1E>!<21>'<27>,<2C>/<2F>/<2F>B<EFBFBD><11> "<22>6<EFBFBD> "<22>V<EFBFBD>\<5C>\<5C>^<5E>^<5E>r<EFBFBD>v<EFBFBD>v<EFBFBD>i<EFBFBD><02>7K<37>7K<37>7Q<37>7Q<37>7S<37>7S<37>%S<>%S<>W]<5D>Wc<57>Wc<57>We<57>We<57>ik<69>io<69>io<69>p}<7D>A<02>jB<02>jB<02>jH<02>jH<02>jJ<02>jJ<02>XJ<02>XJ<02>*.<2E>*:<3A>T<EFBFBD>Y<EFBFBD>Y<EFBFBD><04><02>6<EFBFBD>
<EFBFBD>!<21>Y<EFBFBD><02>6<EFBFBD>
<EFBFBD><16> <0A> <0A>b<EFBFBD>!<21>!<21>!<21><> <11>Ms<00>A <00> A<03>Ac<00>`<00>gd<01>}|<00>d<02><00>r|<01>d|d<00><00><02><00>|<00>d<04><00>r|<01>d|d<00><00><02><00>|<00>d<06><00>}t|t<00><00>r,|<01>d|<02>d<08><00><00><00><02><00>n@t|t
<00><00>r+|<01>d|<02>d <09><00><00><00><02><00>|<00>d
<EFBFBD><00>}t|t<00><00>r,|<01>d |<03>d<08><00><00><00><02><00>n@t|t
<00><00>r+|<01>d |<03>d <09><00><00><00><02><00>|<01>d |<00>d d<0E><00><00><00><02><00>|<00>d<0F><00>r,|<01>d|<00>dd<0E><00><00><00><02><00>|<01>ddg<02><00>d<13>|<01><00>S)N)<04>BEGIN:VCALENDAR<41> VERSION:2.0<EFBFBD> PRODID:-//OpenClaw//Calendar//EN<45> BEGIN:VEVENTrh<00>UID:ri<00>RRULE:re<00>DTSTART:rTrUrf<00>DTEND:<3A>SUMMARY:rdrrg<00> DESCRIPTION:<3A>
END:VEVENT<4E> END:VCALENDARrc)r<>rDr]rr^r<00>extend<6E>join)rx<00>icsrerfs r&<00> ical_dumpr<70><00>s <00><00> <06> <06> <06>C<EFBFBD> 
<EFBFBD>v<EFBFBD>v<EFBFBD>e<EFBFBD>}<7D>}<7D>'<27> <0B>
<EFBFBD>
<EFBFBD>%<25>"<22>U<EFBFBD>)<29>%<25>%<25>&<26>&<26>&<26> <09>v<EFBFBD>v<EFBFBD>g<EFBFBD><EFBFBD><EFBFBD>+<2B> <0B>
<EFBFBD>
<EFBFBD>)<29>B<EFBFBD>w<EFBFBD>K<EFBFBD>)<29>)<29>*<2A>*<2A>*<2A> <0E>F<EFBFBD>F<EFBFBD>7<EFBFBD>O<EFBFBD>O<EFBFBD>E<EFBFBD><11>%<25><18>"<22>"<22>:<3A> <0B>
<EFBFBD>
<EFBFBD>?<3F>e<EFBFBD>n<EFBFBD>n<EFBFBD>_<EFBFBD>=<3D>=<3D>?<3F>?<3F>@<40>@<40>@<40>@<40> <13>E<EFBFBD>4<EFBFBD> <20> <20>:<3A> <0B>
<EFBFBD>
<EFBFBD>8<>e<EFBFBD>n<EFBFBD>n<EFBFBD>X<EFBFBD>6<>6<>8<>8<>9<>9<>9<>
<0C>&<26>&<26><15>-<2D>-<2D>C<EFBFBD><11>#<23>x<EFBFBD> <20> <20>6<> <0B>
<EFBFBD>
<EFBFBD>;<3B>C<EFBFBD>L<EFBFBD>L<EFBFBD><1F>9<>9<>;<3B>;<3B><<3C><<3C><<3C><<3C> <13>C<EFBFBD><14> <1E> <1E>6<> <0B>
<EFBFBD>
<EFBFBD>4<>C<EFBFBD>L<EFBFBD>L<EFBFBD><18>2<>2<>4<>4<>5<>5<>5<><07>J<EFBFBD>J<EFBFBD>0<>"<22>&<26>&<26><19>2<EFBFBD>.<2E>.<2E>0<>0<>1<>1<>1<> <09>v<EFBFBD>v<EFBFBD>m<EFBFBD><1C><1C>><3E> <0B>
<EFBFBD>
<EFBFBD><<3C>"<22>&<26>&<26><1D>r<EFBFBD>":<3A>":<3A><<3C><<3C>=<3D>=<3D>=<3D><07>J<EFBFBD>J<EFBFBD> <0C>o<EFBFBD>.<2E>/<2F>/<2F>/<2F> <0F>9<EFBFBD>9<EFBFBD>S<EFBFBD>><3E>><3E>r(c<00><><00>t<00><00>}|std<01><00>dStd<02><00>|D]}td|d<00><00><02><00><00>dS)NzNo calendars found.z
Calendars:<3A>- r@)rJ<00>print)<03>argsrF<00>cs r&<00>cmd_listr<74><00>sl<00><00> <18>?<3F>?<3F>D<EFBFBD> <0F><0F> <0A>#<23>$<24>$<24>$<24><0E><06> <09>,<2C><17><17><17> <11> <20> <20><01> <0A><1E>1<EFBFBD>V<EFBFBD>9<EFBFBD><1E><1E><1F><1F><1F><1F> <20> r(c
<00>f<00>t|j<00><00>}tj<00><00>}|jrdt |j|j|j<00><00>}tj |td<01><02><00>ztj <00> <00><00><00><00>}<04>n|jr\t j |j<00><00>}tj |td<01><02><00>ztj <00> <00><00><00><00>}n<>|jr:|jr3tj |j<00><00>}tj |j<00><00>}nbt |j|j|j<00><00>}tj |td<01><02><00>ztj <00> <00><00><00><00>}t!||||j<00><03><00>}|st%d<04><00>dS|<05>d<05><00><06><00>|D]S}|<06>d<07><00>}|rt+|<07><00>nd}t%d |<08>d
|<06>d d <0C><00><00><00><04><00><00>TdS) Nrl<00><01>days<79>r<>zNo events found.c<00>D<00>|<00>d<01><00>p tjS)Nre)r<>r<00>min)<01>es r&<00><lambda>zcmd_events.<locals>.<lambda><3E>s<00><00>a<EFBFBD>e<EFBFBD>e<EFBFBD>G<EFBFBD>n<EFBFBD>n<EFBFBD><<3C><08> <0C>r()ryrezAll-day<61>[z] rdr)rO<00>calendarr<00>now<6F>todayr<00>year<61>month<74>day<61>combinerr<><00>time<6D> fromisoformatrerfr<>r<>r<><00>sortr<74>ra) r<><00>cal_urlr<6C>r<>r<>r<>rxre<00>time_strs r&<00>
cmd_eventsr<EFBFBD><00>s<><00><00>&<26>t<EFBFBD>}<7D>5<>5<>G<EFBFBD>
<12>,<2C>.<2E>.<2E>C<EFBFBD> <0B>z<EFBFBD> U<01><17><03><08>#<23>)<29>S<EFBFBD>W<EFBFBD>5<>5<><08><19>!<21>(<28>Y<EFBFBD>A<EFBFBD>-><3E>-><3E>-><3E>"><3E><08> <0C>@Q<>@Q<>@S<>@S<>T<>T<><06><06> <0A><19>U<01><17>%<25>d<EFBFBD>i<EFBFBD>0<>0<><08><19>!<21>(<28>Y<EFBFBD>A<EFBFBD>-><3E>-><3E>-><3E>"><3E><08> <0C>@Q<>@Q<>@S<>@S<>T<>T<><06><06> <0A><1A>U<01><04><08>U<01><1B>)<29>$<24>*<2A>5<>5<><08><19>'<27><04><08>1<>1<><06><06><17><03><08>#<23>)<29>S<EFBFBD>W<EFBFBD>5<>5<><08><19>!<21>(<28>Y<EFBFBD>A<EFBFBD>-><3E>-><3E>-><3E>"><3E><08> <0C>@Q<>@Q<>@S<>@S<>T<>T<><06> <19>'<27>8<EFBFBD>V<EFBFBD>D<EFBFBD>K<EFBFBD> H<> H<> H<>F<EFBFBD> <11><0F> <0A> <20>!<21>!<21>!<21><0E><06>
<EFBFBD>K<EFBFBD>K<EFBFBD><<3C><<3C>K<EFBFBD>=<3D>=<3D>=<3D><14>6<>6<><02><12><06><06>w<EFBFBD><0F><0F><05>',<2C>;<3B>9<EFBFBD>U<EFBFBD>#<23>#<23>#<23>)<29><08> <0A>4<>(<28>4<>4<>b<EFBFBD>f<EFBFBD>f<EFBFBD>Y<EFBFBD>r<EFBFBD>2<>2<>4<>4<>5<>5<>5<>5<>6<>6r(c
<00><><00>t|j<00><00>}tj|j<00><00>}|jrtj|j<00><00>n|t d<01><02><00>z}ttj <00><00><00><00>}tj
tj <00><00><00> d<03><00>}|<02> d<04><00>}|<03> d<04><00>}ddddd |<04><00>d
|<05><00>d |j<00><00>d |<06><00>d |<07><00>g }|jr|<08>d|j<00><00><02><00>|jr|<08>d|j<00><00><02><00>|<08>ddg<02><00>|<01>d<12><00><00>d|<04>d<13>} t)| dd<15>|<08><00><00><16><00>t-d|j<00><00><02><00>dS#t.$r=}
t-d|
<EFBFBD><00>t0j<00><19><00>t1jd<01><00>Yd}
~
dSd}
~
wwxYw)Nrl)<01>hoursrRrTr<>r<>r<>r<>r<>zDTSTAMP:r<>r<>r<>r<>r<>r<>r<>r z.ics<63>PUTrc)rr z Added event: zFailed to add event: <20><01>file)rOr<>rr<>rerfrr_<00>uuid<69>uuid4r<34>rrXr^rd<00>
recurrencerDrgr<><00>rstripr'r<>r<>rM<00>sys<79>stderr<72>exit) r<>r<>r<>r<>rh<00>dtstampr<70>r<>r<><00> event_urlr<6C>s r&<00>cmd_addr<64><00>s<00><00>&<26>t<EFBFBD>}<7D>5<>5<>G<EFBFBD><17>%<25>d<EFBFBD>j<EFBFBD>1<>1<>H<EFBFBD>15<31><18> \<5C>X<EFBFBD> #<23>D<EFBFBD>H<EFBFBD> -<2D> -<2D> -<2D>x<EFBFBD>)<29>Z[<5B>J\<5C>J\<5C>J\<5C>?\<5C>F<EFBFBD>
<0A>d<EFBFBD>j<EFBFBD>l<EFBFBD>l<EFBFBD>
<1B>
<1B>C<EFBFBD><16>l<EFBFBD>8<EFBFBD><<3C>(<28>(<28>1<>1<>2B<32>C<>C<>G<EFBFBD><18>!<21>!<21>/<2F>2<>2<>I<EFBFBD><14>o<EFBFBD>o<EFBFBD>o<EFBFBD>.<2E>.<2E>G<EFBFBD><19><15>*<2A><16><14>s<EFBFBD> <0C> <0C><1C>7<EFBFBD><1C><1C>!<21>4<EFBFBD><<3C>!<21>!<21><1E>9<EFBFBD><1E><1E><1A><17><1A><1A>
<06>C<EFBFBD> <0C><EFBFBD>/<2F> <0B>
<EFBFBD>
<EFBFBD>-<2D>D<EFBFBD>O<EFBFBD>-<2D>-<2D>.<2E>.<2E>.<2E> <0B><17>6<> <0B>
<EFBFBD>
<EFBFBD>4<>$<24>"2<>4<>4<>5<>5<>5<><07>J<EFBFBD>J<EFBFBD> <0C>o<EFBFBD>.<2E>/<2F>/<2F>/<2F><1A>><3E>><3E>#<23>&<26>&<26>2<>2<><13>2<>2<>2<>I<EFBFBD><14><14>Y<EFBFBD>u<EFBFBD>4<EFBFBD>9<EFBFBD>9<EFBFBD>S<EFBFBD>><3E>><3E>B<>B<>B<>B<> <0A>,<2C>d<EFBFBD>l<EFBFBD>,<2C>,<2C>-<2D>-<2D>-<2D>-<2D>-<2D><> <14><14><14><14> <0A>)<29>a<EFBFBD>)<29>)<29><03>
<EFBFBD>;<3B>;<3B>;<3B>;<3B> <0B><08><11> <0B> <0B> <0B> <0B> <0B> <0B> <0B> <0B> <0B><><EFBFBD><EFBFBD><EFBFBD><14><><EFBFBD>s<00>6<F4<00>4
G;<03>>2G6<03>6G;c<00><00>t|j<00><00>}|jr<>tj<00><00>}|t d<01><02><00>z
}|t d<01><02><00>z}t |||<04><00>}d}|D]$}|<07>d<03><00>|jkr|}n<01>%|s8td|j<00>d<05>tj
<00><06><00>tj d<07><00>|d}|d } t|<08> d
<EFBFBD><00>r t<00>|<08><00>n|d <0B> <0C><00>}
t|
<EFBFBD><00>} <0B>n<>|jr|js/td tj
<00><06><00>tj d<07><00>t#j|j<00><00>} tj| tj<00><00><00><00><00>} tj| t d<07><02><00>ztj<00><00><00><00><00>}t || ||j<00><0E><00>}|s@td|j<00>d|j<00>d<11>tj
<00><06><00>tj d<07><00>t-|<05><00>dkr/tdtj
<00><06><00>tj d<07><00>|d} | d}| d } |<08> d
<EFBFBD><00>r t<00>|<08><00>n|}t|d <0B> <0C><00>}
t|
<EFBFBD><00>} |j<00>
|j| d<|jrtj|j<00><00>| d<|jrtj|j<00><00>| d<|j<00>|jr|jnd| d<t7| <0B><00>}|<08> d
<EFBFBD><00>r t<00>|<08><00>n|} t|d|| <09><19><00>td| <0B>d<14><00><00><00><02><00>dS#t8$r=}td|<12><00>tj
<00><06><00>tj d<07><00>Yd}~dSd}~wwxYw)N<>mr<>rh<00>Event with UID <20> not found.r<>rlr,r"r <00>GET)rz>Need either --uid or (--summary and --date) to identify event.r<>zEvent not found on z with summary containing 'z'.z-Multiple matches; narrow search or use --uid.rrdrerfrir<>)rr r"zUpdated event: zFailed to update: )rOr<>rhrr<>rr<>r<>r<>r<>r<>r<>r'r5rr~rdrr<>r<>r<>r<>ru<00> set_summary<72> set_start<72>set_end<6E>set_recurrencer<65>rM)r<>r<>r<>rerf<00>
candidates<EFBFBD>targetrxr,r"rv<00>ev_data<74> target_dater<65>r<><00>ical_url<72>new_ical<61>
update_urlr<EFBFBD>s r&<00>
cmd_updater<EFBFBD>s<><00><00>&<26>t<EFBFBD>}<7D>5<>5<>G<EFBFBD> <0B>x<EFBFBD>$.<2E><16>l<EFBFBD>n<EFBFBD>n<EFBFBD><03><13>i<EFBFBD>S<EFBFBD>)<29>)<29>)<29>)<29><05><11>I<EFBFBD>3<EFBFBD>'<27>'<27>'<27>'<27><03>!<21>'<27>5<EFBFBD>#<23>6<>6<>
<EFBFBD><15><06><1C> <16> <16>B<EFBFBD><11>v<EFBFBD>v<EFBFBD>e<EFBFBD>}<7D>}<7D><04><08>(<28>(<28><1B><06><15><05>)<29><16> <18> <11>9<>D<EFBFBD>H<EFBFBD>9<>9<>9<><03>
<EFBFBD> K<> K<> K<> K<> <0F>H<EFBFBD>Q<EFBFBD>K<EFBFBD>K<EFBFBD>K<EFBFBD><15>f<EFBFBD>~<7E><04><15>f<EFBFBD>~<7E><04> <20>T<EFBFBD>_<EFBFBD>_<EFBFBD>S<EFBFBD>=Q<>=Q<>![<5B>M<EFBFBD>!9<>4<EFBFBD>!9<>!9<>!9<>W[<5B>di<64>j<>j<>j<> <09>"<22>9<EFBFBD>-<2D>-<2D><07><07><13>|<7C> <18>4<EFBFBD>9<EFBFBD> <18> <11>R<>Y\<5C>Yc<59> d<> d<> d<> d<> <0F>H<EFBFBD>Q<EFBFBD>K<EFBFBD>K<EFBFBD>K<EFBFBD><1A>(<28><14><19>3<>3<> <0B><1B>#<23>K<EFBFBD><18><1C>1B<31>1B<31>1D<31>1D<31>E<>E<><08><19>!<21>+<2B> <09>q<EFBFBD>0A<30>0A<30>0A<30>"A<>8<EFBFBD><<3C>CT<43>CT<43>CV<43>CV<43>W<>W<><06>!<21>'<27>8<EFBFBD>V<EFBFBD>D<EFBFBD>L<EFBFBD>Q<>Q<>Q<>
<EFBFBD><19> <18> <11>]<5D><04> <09>]<5D>]<5D>T<EFBFBD>\<5C>]<5D>]<5D>]<5D>dg<64>dn<64> o<> o<> o<> o<> <0F>H<EFBFBD>Q<EFBFBD>K<EFBFBD>K<EFBFBD>K<EFBFBD> <0E>z<EFBFBD>?<3F>?<3F>Q<EFBFBD> <1E> <1E> <11>B<><13><1A> T<> T<> T<> T<> <0F>H<EFBFBD>Q<EFBFBD>K<EFBFBD>K<EFBFBD>K<EFBFBD><1C>Q<EFBFBD>-<2D><07><16>v<EFBFBD><EFBFBD><04><16>v<EFBFBD><EFBFBD><04>/3<><EFBFBD><EFBFBD>s<EFBFBD>/C<>/C<>M<>m<EFBFBD>+<2B>T<EFBFBD>+<2B>+<2B>+<2B><14><08> <20><18>%<25>8<>8<>8<> <09>"<22>9<EFBFBD>-<2D>-<2D><07> <0B><17>#<23>!<21>-<2D><07> <09><1A> <0B>~<7E>B<01>#<23>1<>$<24>.<2E>A<>A<><07><07><18> <0B>|<7C>><3E>!<21>/<2F><04> <0C>=<3D>=<3D><07><05><0E> <0B><1A>&<26>26<32>2E<32>O<>4<EFBFBD>.<2E>.<2E>4<EFBFBD><07><07><18><18><17>!<21>!<21>H<EFBFBD>-1<>_<EFBFBD>_<EFBFBD>S<EFBFBD>-A<>-A<>K<>M<EFBFBD>)<29>4<EFBFBD>)<29>)<29>)<29>t<EFBFBD>J<EFBFBD><14><14>Z<EFBFBD><05>H<EFBFBD>4<EFBFBD>H<>H<>H<>H<> <0A>8<><07> <0B> <0B>I<EFBFBD> 6<> 6<>8<>8<>9<>9<>9<>9<>9<><39> <14><14><14><14> <0A>&<26>1<EFBFBD>&<26>&<26>S<EFBFBD>Z<EFBFBD>8<>8<>8<>8<> <0B><08><11> <0B> <0B> <0B> <0B> <0B> <0B> <0B> <0B> <0B><><EFBFBD><EFBFBD><EFBFBD><14><><EFBFBD>s<00>=8N7<00>7
O><03>2O9<03>9O>c<00><><00>t|j<00><00>}|jr<>tj<00><00>}|t d<01><02><00>z
}|t d<01><02><00>z}t |||<04><00>}d}|D]$}|<07>d<03><00>|jkr|}n<01>%|s8td|j<00>d<05>tj
<00><06><00>tj d<07><00>|d}|d } <09>no|j <00>r8|j <00>r0tj|j <00><00>}
tj|
tj<00><00><00><00><00>} tj|
t d<07><02><00>ztj<00><00><00><00><00>} t || | |j <00>
<EFBFBD><00>}|s/td tj
<00><06><00>tj d<07><00>t%|<05><00>dkr/td tj
<00><06><00>tj d<07><00>|d }|d}|d } n/tdtj
<00><06><00>tj d<07><00>|<08>d<0F><00>r t(<00>|<08><00>n|} t+| d| <09><11><00>td|<06>d<13><00><00><00><02><00>dS#t,$r=}td|<0E><00>tj
<00><06><00>tj d<07><00>Yd}~dSd}~wwxYw)Nr<4E>r<>rhr<>r<>r<>rlr,r"r<>zEvent not found.zMultiple matches; use --uid.rz(Need --uid or both --date and --summary.r <00>DELETE)rr"zDeleted event: rdzFailed to delete: )rOr<>rhrr<>rr<>r<>r<>r<>r<>r<>rrdr<>r<>r<>r<>rur5rr'rM)r<>r<>r<>rerfr<>r<>rxr,r"r<>r<>r<><00>
delete_urlr<EFBFBD>s r&<00>
cmd_deleter<EFBFBD>Ns<><00><00>&<26>t<EFBFBD>}<7D>5<>5<>G<EFBFBD> <0B>x<EFBFBD><14><16>l<EFBFBD>n<EFBFBD>n<EFBFBD><03><13>i<EFBFBD>S<EFBFBD>)<29>)<29>)<29>)<29><05><11>I<EFBFBD>3<EFBFBD>'<27>'<27>'<27>'<27><03>!<21>'<27>5<EFBFBD>#<23>6<>6<>
<EFBFBD><15><06><1C> <16> <16>B<EFBFBD><11>v<EFBFBD>v<EFBFBD>e<EFBFBD>}<7D>}<7D><04><08>(<28>(<28><1B><06><15><05>)<29><16> <18> <11>9<>D<EFBFBD>H<EFBFBD>9<>9<>9<><03>
<EFBFBD> K<> K<> K<> K<> <0F>H<EFBFBD>Q<EFBFBD>K<EFBFBD>K<EFBFBD>K<EFBFBD><15>f<EFBFBD>~<7E><04><15>f<EFBFBD>~<7E><04><04> <0A><19><14>t<EFBFBD>|<7C><14><1A>(<28><14><19>3<>3<> <0B><1B>#<23>K<EFBFBD><18><1C>1B<31>1B<31>1D<31>1D<31>E<>E<><08><19>!<21>+<2B> <09>q<EFBFBD>0A<30>0A<30>0A<30>"A<>8<EFBFBD><<3C>CT<43>CT<43>CV<43>CV<43>W<>W<><06>!<21>'<27>8<EFBFBD>V<EFBFBD>D<EFBFBD>L<EFBFBD>Q<>Q<>Q<>
<EFBFBD><19> <18> <11>$<24>3<EFBFBD>:<3A> 6<> 6<> 6<> 6<> <0F>H<EFBFBD>Q<EFBFBD>K<EFBFBD>K<EFBFBD>K<EFBFBD> <0E>z<EFBFBD>?<3F>?<3F>Q<EFBFBD> <1E> <1E> <11>0<>s<EFBFBD>z<EFBFBD> B<> B<> B<> B<> <0F>H<EFBFBD>Q<EFBFBD>K<EFBFBD>K<EFBFBD>K<EFBFBD><1B>A<EFBFBD><1D><06><15>f<EFBFBD>~<7E><04><15>f<EFBFBD>~<7E><04><04> <0A>8<>s<EFBFBD>z<EFBFBD>J<>J<>J<>J<> <0B><08><11> <0B> <0B> <0B>-1<>_<EFBFBD>_<EFBFBD>S<EFBFBD>-A<>-A<>K<>M<EFBFBD>)<29>4<EFBFBD>)<29>)<29>)<29>t<EFBFBD>J<EFBFBD><14><14>Z<EFBFBD><08>t<EFBFBD><<3C><<3C><<3C><<3C> <0A>7<><06>
<EFBFBD>
<EFBFBD>9<EFBFBD> 5<> 5<>7<>7<>8<>8<>8<>8<>8<><38> <14><14><14><14> <0A>&<26>1<EFBFBD>&<26>&<26>S<EFBFBD>Z<EFBFBD>8<>8<>8<>8<> <0B><08><11> <0B> <0B> <0B> <0B> <0B> <0B> <0B> <0B> <0B><><EFBFBD><EFBFBD><EFBFBD><14><><EFBFBD>s<00>-7J&<00>&
K-<03>02K(<03>(K-c<00>j<00>g}ts|<01>d<01><00>ts|<01>d<02><00>ts|<01>d<03><00>ts|<01>d<04><00>|r9t dd<06>|<01><00>z<00><00>tjd<07><00> t<00><00>t d<08><00>t<00><00>D]}t d |d
<00><00><02><00><00>dS#t$r1}t d |<03><00><02><00>tjd<07><00>Yd}~dSd}~wwxYw) Nrr
r r zMissing environment variables: z, rlz+Connection successful. Calendars available:r<>r@zConnection failed: ) rrDr
r r r<>r<>r<>r<>r:rJrM)r<><00>missingrNr<>s r&<00>cmd_testr<74>xsE<00><00><10>G<EFBFBD> <18>9<>'<27>.<2E>.<2E><1F>9<>9<>9<> <19>;<3B>7<EFBFBD>><3E>><3E>*:<3A>;<3B>;<3B>;<3B> <1D>C<>w<EFBFBD>~<7E>~<7E>.B<>C<>C<>C<> <1B>?<3F>W<EFBFBD>^<5E>^<5E>,><3E>?<3F>?<3F>?<3F><0E><14> <0A>/<2F>$<24>)<29>)<29>G<EFBFBD>2D<32>2D<32>D<>E<>E<>E<> <0B><08><11> <0B> <0B> <0B><14><19><1B><1B><1B> <0A>;<3B><<3C><<3C><<3C> <20>?<3F>?<3F> &<26> &<26>C<EFBFBD> <11>$<24>s<EFBFBD>6<EFBFBD>{<7B>$<24>$<24> %<25> %<25> %<25> %<25> &<26> &<26><> <14><14><14><14> <0A>'<27>A<EFBFBD>'<27>'<27>(<28>(<28>(<28> <0B><08><11> <0B> <0B> <0B> <0B> <0B> <0B> <0B> <0B> <0B><><EFBFBD><EFBFBD><EFBFBD><14><><EFBFBD>s<00>/AC7<00>7
D2<03>&D-<03>-D2c<00>j<00>tjd<01><02><00>}|<00>dd<04><05><00>}|<01>dd<07><08><00><00>t
<00> <09><00>|<01>d
d <0B><08><00>}|<02>d d <0A><08><00>|<02><00><00>}|<03>dd<0F><10><00>|<03>dd<12><08><00>|<03>dd<14><08><00>|<02>dd<16><08><00>|<02>dd<18><08><00>|<02>t<00> <09><00>|<01>dd<1A><08><00>}|<04>d d<1B><08><00>|<04>ddd<1D><1E><00>|<04>ddd<1F><1E><00>|<04>dd <20><08><00>|<04>d!d"<22><08><00>|<04>d#d$<24><08><00>|<04>t<00> <09><00>|<01>d%d&<26><08><00>}|<05>d d<1B><08><00>|<05>d<04>'<27><00>}|<06>d(d)<29><08><00>|<06>dd*<2A><08><00>|<05>dd+<2B><08><00>|<05>d,d-<2D><08><00>|<05>d.d/<2F><08><00>|<05>d0d1<64><08><00>|<05>d2d3<64><08><00>|<05>t<00> <09><00>|<01>d4d5<64><08><00>}|<07>d d<1B><08><00>|<07>d<04>'<27><00>}|<08>d(d6<64><08><00>|<08>dd7<64><08><00>|<07>dd+<2B><08><00>|<07>t<00> <09><00>|<01>d8d9<64><08><00><00>t<00> <09><00>|<00> <00><00>} | <09>| <09><00>dS#t$r=}
t!d:|
<EFBFBD><00>t"j<00>;<3B><00>t#jd<<3C><00>Yd}
~
dSd}
~
wwxYw)=NzUnified Nextcloud CalDAV CLI)rg<00>cmdT)<02>dest<73>required<65>listzList calendars)<01>help)<01>funcr<63>z View eventsz
--calendarzCalendar name (default: first)z--today<61>
store_true)<01>actionz--datezSpecific date YYYY-MM-DDz--startzStart datetime ISOz--endzEnd datetime ISO (with --start)z--searchz"Text search in summary/description<6F>addz Add eventz Calendar namez --summaryz Event title)r<>r<>z(Start datetime ISO (YYYY-MM-DD HH:MM:SS)z&End datetime ISO (default: start + 1h)z --recurrencez)RRULE string (e.g., FREQ=WEEKLY;BYDAY=MO)z --descriptionzEvent description<6F>updatezUpdate existing event)r<>z--uidzEvent UID to updatezEvent title (partial) matchz'Date of event (required with --summary)z --set-summaryz New summaryz --set-startzNew start datetime ISOz --set-endzNew end datetime ISOz--set-recurrencezNew RRULE (or empty to remove)<29>deletez Delete eventzEvent UID to deletezEvent title match<63>testzTest connection and configzError: r<>rl)<14>argparse<73>ArgumentParser<65>add_subparsers<72>
add_parser<EFBFBD> set_defaultsr<73><00> add_argument<6E>add_mutually_exclusive_groupr<70>r<>r<>r<>r<><00>
parse_argsr<EFBFBD>rMr<>r<>r<>r<>) <0B>parser<65>subrx<00>grpr<70><00>upd<70>idgrpr<70><00>delgrpr<70>r<>s r&<00>mainr<6E><00>sL<00><00> <15> $<24>1O<31> P<> P<> P<>F<EFBFBD>
<10>
<1F>
<1F>U<EFBFBD>T<EFBFBD>
<1F>
:<3A>
:<3A>C<EFBFBD><07>N<EFBFBD>N<EFBFBD>6<EFBFBD> 0<>N<EFBFBD>1<>1<>><3E>><3E>H<EFBFBD>><3E>M<>M<>M<> <0C><1E><1E><08>}<7D><1E> 5<> 5<>B<EFBFBD><06>O<EFBFBD>O<EFBFBD>L<EFBFBD>'G<>O<EFBFBD>H<>H<>H<>
<0C>
)<29>
)<29>
+<2B>
+<2B>C<EFBFBD><07><14><14>Y<EFBFBD>|<7C><14>4<>4<>4<><07><14><14>X<EFBFBD>$><3E><14>?<3F>?<3F>?<3F><07><14><14>Y<EFBFBD>%9<><14>:<3A>:<3A>:<3A><06>O<EFBFBD>O<EFBFBD>G<EFBFBD>"C<>O<EFBFBD>D<>D<>D<><06>O<EFBFBD>O<EFBFBD>J<EFBFBD>%I<>O<EFBFBD>J<>J<>J<><06>O<EFBFBD>O<EFBFBD><1A>O<EFBFBD>$<24>$<24>$<24>
<0A>.<2E>.<2E><15>[<5B>.<2E>
1<EFBFBD>
1<EFBFBD>C<EFBFBD><07><14><14>\<5C><0F><14>8<>8<>8<><07><14><14>[<5B>4<EFBFBD>m<EFBFBD><14>D<>D<>D<><07><14><14>Y<EFBFBD><14>4^<5E><14>_<>_<>_<><07><14><14>W<EFBFBD>#K<><14>L<>L<>L<><07><14><14>^<5E>*U<><14>V<>V<>V<><07><14><14>_<EFBFBD>+><3E><14>?<3F>?<3F>?<3F><07><14><14>'<27><14>"<22>"<22>"<22>
<0A>.<2E>.<2E><18>(?<3F>.<2E>
@<40>
@<40>C<EFBFBD><07><14><14>\<5C><0F><14>8<>8<>8<> <0F> ,<2C> ,<2C>d<EFBFBD> ,<2C> ;<3B> ;<3B>E<EFBFBD> <09><16><16>w<EFBFBD>%:<3A><16>;<3B>;<3B>;<3B> <09><16><16>{<7B>)F<><16>G<>G<>G<><07><14><14>X<EFBFBD>$M<><14>N<>N<>N<><07><14><14>_<EFBFBD>=<3D><14>9<>9<>9<><07><14><14>]<5D>)A<><14>B<>B<>B<><07><14><14>[<5B>'=<3D><14>><3E>><3E>><3E><07><14><14>'<27>.N<><14>O<>O<>O<><07><14><14>*<2A><14>%<25>%<25>%<25> <10>^<5E>^<5E>H<EFBFBD>><3E>^<5E> :<3A> :<3A>F<EFBFBD>
<EFBFBD><17><17> <0C>?<3F><17>;<3B>;<3B>;<3B> <13> 0<> 0<>$<24> 0<> ?<3F> ?<3F>F<EFBFBD>
<EFBFBD><17><17><07>&;<3B><17><<3C><<3C><<3C>
<EFBFBD><17><17> <0B>*=<3D><17>><3E>><3E>><3E>
<EFBFBD><17><17><08>'P<><17>Q<>Q<>Q<>
<EFBFBD><17><17>Z<EFBFBD><17>(<28>(<28>(<28><07>N<EFBFBD>N<EFBFBD>6<EFBFBD> <<3C>N<EFBFBD>=<3D>=<3D>J<>J<>PX<50>J<>Y<>Y<>Y<> <11> <1C> <1C> <1E> <1E>D<EFBFBD><14> <0C> <09> <09>$<24><0F><0F><0F><0F><0F><> <14><14><14><14> <0A>m<EFBFBD><01>m<EFBFBD>m<EFBFBD>#<23>*<2A>-<2D>-<2D>-<2D>-<2D> <0B><08><11> <0B> <0B> <0B> <0B> <0B> <0B> <0B> <0B> <0B><><EFBFBD><EFBFBD><EFBFBD><14><><EFBFBD>s<00>O+<00>+
P2<03>52P-<03>-P2<03>__main__)r NrN)N)*<2A>__doc__<5F>osr<73>r<><00>urllib.requestr<00> urllib.errorr<72><00>jsonrrrr<00>xml.etree.ElementTree<65>etree<65> ElementTreer.<00>getenvr<76>rr
r r r2r1r'r:rJrOr[rar~r<>r<>r<>r<>r<>r<>r<>r<>r<><00>__name__<5F>r(r&<00><module>r
s;<00><01> <04> <04>C<01>B<>B<>B<>B<>B<>B<>B<>B<>B<>B<>B<>B<>B<>B<>B<>B<>B<>B<>B<>B<>B<>B<>B<>B<>B<>B<>B<>8<>8<>8<>8<>8<>8<>8<>8<>8<>8<>8<>8<>"<22>"<22>"<22>"<22>"<22>"<22>"<22>"<22>"<22><1A><02> <09>/<2F>2<EFBFBD>.<2E>.<2E>5<>5<>c<EFBFBD>:<3A>:<3A> <0A><1A><12><19>+<2B>R<EFBFBD>0<>0<><0E><1E>R<EFBFBD>Y<EFBFBD>3<>R<EFBFBD>8<>8<><12><1C>2<EFBFBD>9<EFBFBD>/<2F><12>4<>4<><10> <11><06> -<2D> <09> 3<> 3<> 3<> 3<> I<01> I<01> I<01><10><10><10>2 <1A> <1A> <1A> <1A> <1A> <1A> <1A><13><13><13><0E><0E><0E>>#<12>#<12>#<12>#<12>J<1A><1A><1A>6 <20> <20> <20>6<>6<>6<>2<14><14><14>@6<14>6<14>6<14>p(<14>(<14>(<14>T<14><14><14>$4<14>4<14>4<14>l <0C>z<EFBFBD><19><19><08>D<EFBFBD>F<EFBFBD>F<EFBFBD>F<EFBFBD>F<EFBFBD>F<EFBFBD><1A>r(