User Tools

Site Tools


irssi

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
irssi [2010/11/10 16:14]
k2patel
irssi [2020/08/10 02:35] (current)
Line 29: Line 29:
 /op -YES * /op -YES *
 </​code>​ </​code>​
 +
 +==== Alias ====
 +
 +This is something really powerfull please be carefull.\\
 +you can use shell command to execute and print on channel.
 +
 +== Fortune ==
 +<code bash>
 +/alias fortune exec - -o /​usr/​bin/​fortune
 +</​code>​
 +
 +== Figlet ==
 +<code bash>
 +/alias figlet exec - -o /​usr/​bin/​figlet -f times $0-
 +</​code>​
 +
 +
 +=== From other pages ===
 +
 +
 +remove activity from all windows:
 +<code bash>
 +alias UNACT script exec foreach $$w (Irssi::​windows()) { Irssi::​command(“window goto $$w->​{refnum}”)\;​} ; window goto $winref
 +</​code>​
 +
 +calc with (10) decimals:
 +<code bash>
 +alias CALC exec – if which bc &>/​dev/​null\;​ then echo ‘scale=10\;​$*’ | bc | awk ‘{print “$*=”$$1}’\;​ else echo bc was not found\; fi
 +</​code>​
 +
 +Dump perl object (e.g. /dump Irssi::​active_win):​
 +<code bash>
 +alias DUMP script exec use Data::​Dumper\;​ print Data::​Dumper->​new([\\$0-])->​Dump
 +</​code>​
 +
 +Put output of a command in the current window (e.g. /here help blah) (does not work with whois, and other output coming from the server):
 +<code bash>
 +alias HERE script exec \$a=Irssi::​active_win\;​sub b{Irssi::​signal_remove(‘print text’,'​b’)\;​Irssi::​signal_stop()\;​\$a->​print(\$_[1],​\$_[0]->​{‘level’})\;​Irssi::​signal_add_first(‘print text’,'​b’)\;​}\;​Irssi::​signal_add_first(‘print text’,'​b’)\;​\$a->​command(“$*”)\;​
 +</​code>​
 +
 +do /lastlog, but for all windows… /alllast -HILIGHT would show all hilights in every buffer in the current window (like hilightwindow.pl,​ but not ‘life’)
 +<code bash>
 +alias ALLLASTLOG script exec foreach (Irssi::​windows()) {Irssi::​command(“lastlog – -window \$_->​{‘refnum’} $*”)\;}
 +</​code>​
 +
 +execute a command on a given server (e.g. “/tag ircnet join #irssi” would join irssi on ircnet (if you’re connected to ircnet)):
 +<code bash>
 +alias TAG script exec Irssi::​server_find_tag(‘$0′)->​command(‘$1-’);​
 +</​code>​
 +
 +list (say) your currently loaded scripts (just the names, on one line):
 +<code bash>
 +alias LISTSCRIPTS script exec foreach \$s (sort grep(s/::​\$//,​ keys %Irssi::​Script::​)) {\$a .= “\$s “\;}\; Irssi::​active_win->​command(“say \$a”)\;
 +</​code>​
 +
 +list (print) a list of servers you’re currently connected to, what nick you have there, and on which channels you are:
 +<code bash>
 +alias LISTCHANS script exec foreach (Irssi::​servers()){\$a=”\$_->​{‘chatnet’}(\$_->​{‘address’}) \$_->​{‘nick’}:​”\;​ foreach (\$_->​channels()) {\$a.=’ ‘.(\$_->​{‘ownnick’}->​{‘op’}?​’@':​\$_->​{‘ownnick’}->​{‘voice’}?​’+':​”).”\$_->​{‘name’}”\;​}\;​print \$a\;}
 +</​code>​
 +
 +mass-op all non-voiced (to op everyone just use /op *):
 +<code bash>
 +alias MOP script exec foreach \$n (Irssi::​active_win->​{‘active’}->​nicks()) {if (\$n->​{‘op’} == 0 && \$n->​{‘voice’} == 0) {\$a .= “\$n->​{‘nick’} “\;}}\; Irssi::​active_win->​command(“OP \$a”)\;
 +</​code>​
 +
 +Show for how long you have been connected to the current server:
 +<code bash>
 +alias CONNECTIONUPTIME script exec \$a=`date +%s` – Irssi::​active_win->​{‘active_server’}->​{‘connect_time’}\;​ Irssi::​print( int(\$a/​3600/​24).”d “.int(\$a/​3600%24).”h “. int(\$a/​60%60).”m “. int(\$a%60).”s”)\;​
 +</​code>​
 +
 +Goto to x’th last window (0 = last, 1 = second last)
 +<code bash>
 +alias window_goto_last_minus script exec Irssi::​command(“window goto “.(sort{\$b<​=>​\$a}map{\$_->​{refnum}}Irssi::​windows())[$0])
 +</​code>​
 +
 +Remove all bans set by you
 +<code bash>
 +alias mubmy script exec \$c=Irssi::​active_win->​{‘active’}\;​if(\$c){foreach \$ban (\$c->​bans()){if(\$ban->​{‘setby’} =~ /​^$N/​){\$unban.=\$ban->​{‘ban’}.’ ‘\;​}}}\;​\$c->​command(“unban \$unban”);​
 +</​code>​
 +
 +[[http://​wouter.coekaerts.be/​irssi/​aliases | source]]
  
 ==== IrSSi Settings ==== ==== IrSSi Settings ====
Line 58: Line 139:
  
  
 +==== Nice Scripts ====
 +
 +
 +=== window_switcher ===
 +
 +[[ http://​wouter.coekaerts.be/​irssi/​scripts/​window_switcher.pl | Download ]] \\
 +[[http://​wouter.coekaerts.be/​irssi/​window_switcher | Source ]]
 +
 +<code text>
 +  * Add the statusbar item:
 +      /STATUSBAR window add window_switcher
 +  * Type /ws followed by a window number or part of a window or channel name.
 +  * When the right item is at the first place in the statusbar, press enter.
 +  * For faster usage, do “/BIND ^G multi erase_line;​insert_text /ws “, type ctrl-G, and start typing…
 +</​code>​
 +
 +==== ShortCut'​s ====
 +
 +<code bash>
 +Ctrl-X to switch between network connections
 +Alt-[0-9] switch to windows
 +</​code>​
 +
 +
 +==== Binding F Key ====
 +
 +<code bash>
 +/bind meta2-P ​    key F1
 +/bind meta2-Q ​    key F2
 +/bind meta2-R ​    key F3
 +/bind meta2-S ​    key F4
 +/bind meta2-15~ ​  key F5
 +/bind meta2-17~ ​  key F6
 +/bind meta2-18~ ​  key F7
 +/bind meta2-19~ ​  key F8
 +/bind meta2-20~ ​  key F9
 +/bind meta2-21~ ​  key F10
 +/bind meta2-24~ ​  key F12
 +/bind meta2-23~ ​  key F11
 +/bind meta2-24~ ​  key F12
 +
 +/bind meta2-2P ​   key sF1
 +/bind meta2-2Q ​   key sF2
 +/bind meta2-2R ​   key sF3
 +/bind meta2-2S ​   key sF4
 +/bind meta2-15;2~ key sF5
 +/bind meta2-17;2~ key sF6
 +/bind meta2-18;2~ key sF7
 +/bind meta2-19;2~ key sF8
 +/bind meta2-20;2~ key sF9
 +/bind meta2-21;2~ key sF10
 +/bind meta2-24;2~ key sF12
 +/bind meta2-23;2~ key sF11
 +/bind meta2-24;2~ key sF12
 +</​code>​
 +
 +When you’ve done that, you can do, for example /bind F1 change_window 1 to bind something to F1, or /bind sF1 for shift-F1.
  
 +[[http://​wouter.coekaerts.be/​irssi/​keybindings | Source]]
  
 ==== My Environment ==== ==== My Environment ====
Line 303: Line 442:
 </​code>​ </​code>​
  
-<code bash | ~/.irssi/default.theme>+<code bash | ~/.irssi/thirdeye.theme>
  
-When testing changes, the easiest way to reload the theme is with /RELOAD. +####                                 #### 
-This reloads the configuration file too, so if you did any changes remember +####  ThirdEye 1.4                   #### 
-to /SAVE it firstRemember also that /SAVE overwrites the theme file with +####  by salo <salo at Xtrmntr.org> ​ #### 
-old data so keep backups :)+####                                 ####
  
-# TEMPLATES: 
- 
-# The real text formats that irssi uses are the ones you can find with 
-# /FORMAT command. Back in the old days all the colors and texts were mixed 
-# up in those formats, and it was really hard to change the colors since you 
-# might have had to change them in tens of different places. So, then came 
-# this templating system. 
- 
-# Now the /FORMATs don't have any colors in them, and they also have very 
-# little other styling. Most of the stuff you need to change is in this 
-# theme file. If you can't change something here, you can always go back 
-# to change the /FORMATs directly, they'​re also saved in these .theme files. 
- 
-# So .. the templates. They'​re those {blahblah} parts you see all over the 
-# /FORMATs and here. Their usage is simply {name parameter1 parameter2}. 
-# When irssi sees this kind of text, it goes to find "​name"​ from abstracts 
-# block below and sets "​parameter1"​ into $0 and "​parameter2"​ into $1 (you 
-# can have more parameters of course). Templates can have subtemplates. 
-# Here's a small example: 
-#   /​FORMAT format hello {colorify {underline world}} 
-#   ​abstracts = { colorify = "​%G$0-%n";​ underline = "​%U$0-%U";​ } 
-# When irssi expands the templates in "​format",​ the final string would be: 
-#   hello %G%Uworld%U%n 
-# ie. underlined bright green "​world"​ text. 
-# and why "​$0-",​ why not "​$0"?​ $0 would only mean the first parameter, 
-# $0- means all the parameters. With {underline hello world} you'd really 
-# want to underline both of the words, not just the hello (and world would 
-# actually be removed entirely). 
- 
-# COLORS: 
- 
-# You can find definitions for the color format codes in docs/​formats.txt. 
- 
-# There'​s one difference here though. %n format. Normally it means the 
-# default color of the terminal (white mostly), but here it means the 
-# "reset color back to the one it was in higher template"​. For example 
-# if there was /FORMAT test %g{foo}bar, and foo = "​%Y$0%n",​ irssi would 
-# print yellow "​foo"​ (as set with %Y) but "​bar"​ would be green, which was 
-# set at the beginning before the {foo} template. If there wasn't the %g 
-# at start, the normal behaviour of %n would occur. If you _really_ want 
-# to use the terminal'​s default color, use %N. 
- 
-#############################################################################​ 
- 
-# default foreground color (%N) - -1 is the "​default terminal color" 
-default_color = "​-1";​ 
- 
-# print timestamp/​servertag at the end of line, not at beginning 
-info_eol = "​false";​ 
- 
-# these characters are automatically replaced with specified color 
-# (dark grey by default) 
-replaces = { "​[]="​ = "​%K$*%n";​ }; 
  
 +replaces = { "​[]="​ = "​%K$0-%n";​ };
 abstracts = { abstracts = {
-  ​## +  line_start = "--"; 
-  ## generic +  timestamp = "[$0-]"; 
-  ## +  hilight = "%_$0-%_"; 
- +  error = "%G$0-%n"; 
-  # text to insert at the beginning of each non-message line +  channel = "%c$0-%n"; 
-  ​line_start = "%B-%W!%B-%n "; +  nick = "%_$0-%_"; 
- +  nickhost = "[$0-]"; 
-  # timestamp styling, nothing by default +  server = "%_$0-%_"; 
-  timestamp = "$*"; +  comment = "[%_$0-%_]"; 
- +  reason = "​{comment $0-}"; 
-  # any kind of text that needs hilighting, default is to bold +  mode = "​{comment $0-}"; 
-  hilight = "%_$*%_"; +  channick_hilight = "%_$0-%_"; 
- +  chanhost_hilight = "​{nickhost %c$0-%n}";​ 
-  # any kind of error message, default is bright red +  channick = "%_$0-%_"; 
-  error = "%R$*%n"; +  chanhost = "{nick}"; 
- +  channelhilight = "%c$0-%n"; 
-  # channel name is printed +  ban = "%c$0-%n"; 
-  channel = "%_$*%_"; +  msgnick = "<​$1->​ %|"; 
- +  ​ownnick = "%N$0-%n"; 
-  # nick is printed +  ​pubnick ​= "%N$0-%n"; 
-  nick = "%_$*%_"; +  ​menick ​= "%G$0-%n";​ 
- +  pubmsgnick = "%c{msgnick $0 $1-%c}%N"; 
-  # nick host is printed +  pubmsgmenick = "%c{msgnick $0 $1-%c}%N"; 
-  nickhost = "[$*]"; +  pubmsghinick = "%c{msgnick $1 %G$2-%n%c}%N"; 
- +  ​ownmsgnick ​= "%G{msgnick $%N$1-%G}%N"; 
-  # server name is printed +  ​msgchannel ​= "%K:%c$0-%n"; 
-  server = "%_$*%_"; +  ​privmsg ​= "[%C$0%K(%c$1-%K)%n"; 
- +  ​ownprivmsg ​= "[%c$0%C(%n$1-%C)%n"; 
-  # some kind of comment is printed +  ​ownprivnick ​= "​$0-";​ 
-  comment = "[$*]"; +  ​ownprivmsgnick ​= "%C<%n$0%C>%n "; 
- +  ​privmsgnick ​= "%c<%n$0%c>%n "; 
-  # reason for something is printed (part, quit, kick, ..) +  #  ownprivmsgnick = "%G{msgnick  ​%N$0-%G}%n";​ 
-  reason = "​{comment $*}"; +  #  privmsgnick = "%c{msgnick ​ %G$0-%c}%N"; 
- +  action_core = "%G>>> ​%g$0-"; 
-  # mode change is printed ([+o nick]) +  action = "​{action_core $0-} "; 
-  mode = "​{comment $*}"; +  ownaction = "​{action $0-}";
- +
-  ## +
-  ## channel specific messages +
-  ## +
- +
-  # highlighted nick/host is printed (joins) +
-  channick_hilight = "%C$*%n"; +
-  chanhost_hilight = "​{nickhost %c$*%n}"; +
- +
-  # nick/host is printed (parts, quits, etc.) +
-  channick = "%c$*%n"; +
-  chanhost = "{nickhost $*}"; +
- +
-  # highlighted channel name is printed +
-  channelhilight = "%c$*%n"; +
- +
-  # ban/ban exception/​invite list mask is printed +
-  ban = "%c$*%n"; +
- +
-  ## +
-  ## messages +
-  ## +
- +
-  # the basic styling of how to print message, $0 = nick mode, $1 = nick +
-  msgnick = "%K<%n$0$1-%K>%n %|"; +
- +
-  ​# message from you is printed. ​"msgownnick"​ specifies the styling of the +
-  # nick ($0 part in msgnick) and "ownmsgnick"​ specifies the styling of the +
-  ​# whole line. +
- +
-  # Example1: You want the message text to be green: +
-  #  ownmsgnick ​= "{msgnick ​$0 $1-}%g"; +
-  ​# Example2.1: You want < and > chars to be yellow: +
-  #  ownmsgnick ​= "%Y{msgnick ​$0 $1-%Y}%n"; +
-  # ​ (you'​ll also have to remove <> from replaces list above) +
-  # Example2.2: But you still want to keep <> grey for other messages: +
-  #  ​pubmsgnick = "%K{msgnick $0 $1-%K}%n"; +
-  # ​ ​pubmsgmenick = "%K{msgnick $0 $1-%K}%n"; +
-  # ​ ​pubmsghinick = "%K{msgnick $1 $0$2-%n%K}%n"; +
-  ​#  ownprivmsgnick ​= "%K{msgnick ​ $*%K}%n"; +
-  ​#  privmsgnick ​= "%K{msgnick  ​%R$*%K}%n"; +
- +
-  ​# $0 = nick mode, $1 = nick +
-  ownmsgnick ​= "{msgnick ​$0 $1-}"; +
-  ownnick = "%W$*%n"; +
- +
-  ​# public message in channel, $0 = nick mode, $1 = nick +
-  pubmsgnick ​= "{msgnick ​$0 $1-}";​ +
-  pubnick = "%N$*%n"; +
- +
-  # public message in channel meant for me, $0 = nick mode, $1 = nick +
-  pubmsgmenick = "​{msgnick $0 $1-}"; +
-  menick = "%Y$*%n"; +
- +
-  ​# public highlighted message in channel +
-  # $0 = highlight color, $1 = nick mode, $2 = nick +
-  pubmsghinick ​= "{msgnick $1 $0$2-%n}"; +
- +
-  ​# channel name is printed with message +
-  msgchannel ​= "%K:%c$*%n"; +
- +
-  # private message, ​$0 = nick, $1 = host +
-  privmsg = "[%R$0%K(%r$1-%K)%n"; +
- +
-  ​# private message from you, $0 = "msg", $1 = target nick +
-  ownprivmsg = "[%r$0%K(%R$1-%K)%n"; +
- +
-  # own private message in query +
-  ​ownprivmsgnick = "​{msgnick ​ $*}"; +
-  ownprivnick = "%W$*%n"; +
- +
-  # private message in query +
-  ​privmsgnick = "​{msgnick ​ %R$*%n}"; +
- +
-  ## +
-  ## Actions (/ME stuff) +
-  ## +
- +
-  # used internally by this theme +
-  action_core = "%W * $*%n"; +
- +
-  # generic one that's used by most actions +
-  action = "​{action_core $*} "; +
- +
-  # own action, both private/​public +
-  ownaction = "​{action $*}"; +
- +
-  # own action with target, both private/​public+
   ownaction_target = "​{action_core $0}%K:​%c$1%n ";   ownaction_target = "​{action_core $0}%K:​%c$1%n ";
- +  ​pvtaction = "%W (*) $0-%n "; 
-  # private action sent by others +  pvtaction_query = "​{action $0-}"; 
-  ​pvtaction = "%W (*) $*%n "; +  pubaction = "​{action $0-}";
-  pvtaction_query = "​{action $*}"; +
- +
-  # public action sent by others +
-  pubaction = "​{action $*}"; +
- +
- +
-  ## +
-  ## other IRC events +
-  ## +
- +
-  # whois +
-  whois = "%# $[8]: $1-"; +
- +
-  # notices+
   ownnotice = "​[%r$0%K(%R$1-%K)]%n ";   ownnotice = "​[%r$0%K(%R$1-%K)]%n ";
-  notice = "​%K-%M$*%K-%n "; +  notice = "​%K-%M$0-%K-%n "; 
-  pubnotice_channel = "​%K:​%m$*"; +  pubnotice_channel = "​%K:​%m$0-"; 
-  pvtnotice_host = "​%K(%m$*%K)";​ +  pvtnotice_host = "​%K(%m$0-%K)";​ 
-  servernotice = "%g!$*%n "; +  servernotice = "%g!$0-%n ";
- +
-  # CTCPs+
   ownctcp = "​[%r$0%K(%R$1-%K)] ";   ownctcp = "​[%r$0%K(%R$1-%K)] ";
-  ctcp = "%g$*%n"; +  ctcp = "%g$0-%n"; 
- +  wallop = "%W$0-%n: "; 
-  # wallops +  wallop_nick = "%n$0-"; 
-  wallop = "%W$*%n: "; +  wallop_action = "%W * $0-%n "; 
-  wallop_nick = "%n$*"; +  netsplit = "%R$0-%n"; 
-  wallop_action = "%W * $*%n "; +  netjoin = "%G$0-%n"; 
- +  names_nick = "[%G$0%g$1-%n] "; 
-  # netsplits +  names_users = "$0-"; 
-  netsplit = "%R$*%n"; +  names_channel = "on %G$0-%n:"; 
-  netjoin = "%C$*%n"; +  dcc = "%y$0-%n"; 
- +  dccfile = "%_$0-%_"; 
-  # /names list +  dccownmsg = "[%b$0%B(%n$1-%B)] "; 
-  names_prefix = ""; +  dccownnick = "%W$0-%n"; 
-  names_nick = "[%_$0%_$1-] "; +  dccownaction = "​{action $0-}";
-  names_nick_op = "​{names_nick $*}";​ +
-  names_nick_halfop = "​{names_nick $*}";​ +
-  names_nick_voice = "​{names_nick $*}"; +
-  names_users = "[%g$*%n]"; +
-  names_channel = "%G$*%n"; +
- +
-  # DCC +
-  dcc = "%g$*%n"; +
-  dccfile = "%_$*%_"; +
- +
-  # DCC chat, own msg/action +
-  dccownmsg = "[%r$0%K($1-%K)%n] "; +
-  dccownnick ​= "​%R$*%n";​ +
-  dccownquerynick ​= "%W$*%n"; +
-  dccownaction = "​{action $*}";+
   dccownaction_target = "​{action_core $0}%K:​%c$1%n ";   dccownaction_target = "​{action_core $0}%K:​%c$1%n ";
- +  ​dccmsg = "[%Y(%y$1-%Y)%n] "; 
-  # DCC chat, others +  dccaction = "%W (*dcc*) $0-%n %|"; 
-  ​dccmsg = "[%G$1-%K(%g$0%K)%n] "; +  sb_background = "​%4";​ 
-  dccquerynick = "​%G$*%n"; +  sb = "%W[%n$0-%W]%n";​ 
-  dccaction = "%W (*dcc*) $*%n %|"; +  sbmode = "​(%c+%n$0-)";
- +
-  ## +
-  ## statusbar +
-  ## +
- +
-  # default background for all statusbars. You can also give +
-  # the default foreground color for statusbar items. +
-  sb_background = "%4%w"; +
- +
-  # default backround for "​default"​ statusbar group +
-  #​sb_default_bg = "​%4";​ +
-  # background for prompt / input line +
-  sb_prompt_bg = "​%n";​ +
-  # background for info statusbar +
-  sb_info_bg = "​%8";​ +
-  # background for topicbar (same default) +
-  #​sb_topic_bg = "​%4";​ +
- +
-  # text at the beginning of statusbars. sb-item already puts +
-  # space there,so we don't use anything by default. +
-  sbstart = "";​ +
-  # text at the end of statusbars. Use space so that it's never +
-  # used for anything. +
-  sbend = " "; +
- +
-  topicsbstart = "​{sbstart $*}";​ +
-  topicsbend = "​{sbend $*}";​ +
- +
-  prompt = "[$*] "; +
- +
-  sb = " %c[%n$*%c]%n";​ +
-  sbmode = "​(%c+%n$*)";+
   sbaway = " (%GzZzZ%n)";​   sbaway = " (%GzZzZ%n)";​
-  sbservertag = ":​$0 ​(change with ^X)"; +  sbservertag = ":​$0";​ 
-  ​sbnickmode ​= "​$0";​ +  ​sbmore ​= "%_-- more --%_";​ 
- +  sblag = "{sb Lag: $0-}"; 
-  ​# activity in statusbar +  ​sbmail = "{sb Mail: $0-}"; 
- +  ​sbact_act = "Act: $0-"; 
-  ​# ','​ separator +  ​sbact_det = "Det: $0-"; 
-  ​sb_act_sep ​= "%c$*"; +  ​sbact = "{sb {sbact_act $0}{sbact_det $1}}";​ 
-  # normal text +}; 
-  ​sb_act_text ​= "%c$*"; +formats = { 
-  # public message +  ​"​fe-common/​irc"​ = { 
-  ​sb_act_msg ​= "%W$*"; +    whois = "%W$0 %K[%c$1@$2%K]%: ircname ​ :%W $3%n"; 
-  ​# hilight +    ​whois_channels = " channels :%c $1%n"; 
-  ​sb_act_hilight ​= "%M$*"; +    ​whois_server ​= " ​server ​  :%c $1 %K[%W$2%K]%n"; 
-  # hilight with specified color, ​$0 = color, ​$text +    ​whois_oper = " operator :%W $1 is IRC Operator%n";​ 
-  ​sb_act_hilight_color ​= "$0$1-%n";+    ​whois_away ​= " ​away     :%W $1%n";​ 
 +    whois_idle = " idle     :%W $1 days, $2 hours, $3 mins, $4 secs%n"; 
 +  ​}; 
 +  ​"​fe-common/​silc"​ = { 
 +    whois = "%W$0 %K[%c$1@$2%K]%:​ nickname ​   :%W $3 ($4)%n"; 
 +    ​whois_realname = " realname ​   :%W $0%n"; 
 +    whois_channels ​" channels ​   :%c $0%n";​ 
 +    whois_modes ​" modes       :%c $0%n"; 
 +    ​whois_idle ​= " ​idle        :%W $0%n%";​ 
 +    whois_fingerprint = " fingerprint :%c $0%n%:End of WHOIS"
 +  };
 }; };
 </​code>​ </​code>​
irssi.1289405649.txt.gz · Last modified: 2020/08/10 02:30 (external edit)