るりまサーチ (Ruby 2.4.0)

最速Rubyリファレンスマニュアル検索!
252件ヒット [201-252件を表示] (0.048秒)
トップページ > バージョン:2.4.0[x] > クエリ:@[x] > クエリ:start[x]

別のキーワード

  1. smtp start
  2. net/smtp start
  3. pop start
  4. pop3 start
  5. http start

モジュール

キーワード

検索結果

<< < 1 2 3 >>

Net::SMTP#helo(domain) -> Net::SMTP::Response (55.0)

HELO コマンドを送ります(標準的な SMTP を使います)。

HELO コマンドを送ります(標準的な SMTP を使います)。

通常は Net::SMTP.start, Net::SMTP#start で HELO が
送られるため利用する必要はないはずです。


@param domain HELOで送るドメイン名

ObjectSpace.#trace_object_allocations_stop -> nil (55.0)

オブジェクト割り当てのトレースを終了します。

オブジェクト割り当てのトレースを終了します。

トレースを終了する為には、ObjectSpace.#trace_object_allocations_startを呼んだ回数分だけこのメソッドを呼ぶ必要があります。

@see ObjectSpace.#trace_object_allocations_start

String#end_with?(*strs) -> bool (55.0)

self の末尾が strs のいずれかであるとき true を返します。

self の末尾が strs のいずれかであるとき true を返します。

@param strs パターンを表す文字列 (のリスト)

//emlist[例][ruby]{
"string".end_with?("ing") # => true
"string".end_with?("str") # => false
"string".end_with?("str", "ing") # => true
//}

@see String#start_with?

Thread::ConditionVariable#broadcast -> self (55.0)

状態変数を待っているスレッドをすべて再開します。再開された スレッドは Thread::ConditionVariable#wait で指定した mutex のロックを試みます。

状態変数を待っているスレッドをすべて再開します。再開された
スレッドは Thread::ConditionVariable#wait
で指定した mutex のロックを試みます。

@return 常に self を返します。

//emlist[例][ruby]{
mutex = Mutex.new
cv = ConditionVariable.new
flg = true

3.times {
Thread.start {
mutex.synchronize {
puts "a1"
while (flg)
cv.wait(mutex)
...

Thread::ConditionVariable#signal -> self (55.0)

状態変数を待っているスレッドを1つ再開します。再開された スレッドは Thread::ConditionVariable#wait で指定した mutex のロックを試みます。

状態変数を待っているスレッドを1つ再開します。再開された
スレッドは Thread::ConditionVariable#wait
で指定した mutex のロックを試みます。

@return 常に self を返します。

//emlist[例][ruby]{
mutex = Mutex.new
cv = ConditionVariable.new
flg = true

3.times {
Thread.start {
mutex.synchronize {
puts "a1"
while (flg)
cv.wait(mutex)
...

絞り込み条件を変える

Thread::Queue#deq(non_block = false) -> object (55.0)

キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。

キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。

@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。

//emlist[例][ruby]{
require 'thread'

q = Queue.new

th1 = Thread.start do
while resource = q.pop
puts resource
end
end

[:resource1, :resource2, :resource3, nil].each { |r|
q.push(r)
}

t...

Thread::Queue#pop(non_block = false) -> object (55.0)

キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。

キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。

@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。

//emlist[例][ruby]{
require 'thread'

q = Queue.new

th1 = Thread.start do
while resource = q.pop
puts resource
end
end

[:resource1, :resource2, :resource3, nil].each { |r|
q.push(r)
}

t...

Thread::Queue#shift(non_block = false) -> object (55.0)

キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。

キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。

@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。

//emlist[例][ruby]{
require 'thread'

q = Queue.new

th1 = Thread.start do
while resource = q.pop
puts resource
end
end

[:resource1, :resource2, :resource3, nil].each { |r|
q.push(r)
}

t...

WEBrick::HTTPServlet::AbstractServlet#do_DELETE(request, response) -> () (55.0)

自身の service メソッドから HTTP のリクエストに応じて 呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し なければいけません。返り値は特に規定されていません。

自身の service メソッドから HTTP のリクエストに応じて
呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し
なければいけません。返り値は特に規定されていません。

クライアントが使う可能性のある RFC で定義された HTTP のメソッドはすべて実装する必要があります。
クライアントからのリクエストに使われないと分かっているメソッドは実装しなくてもかまいません。
実装されていない HTTP メソッドであった場合、自身の service メソッドが
例外を発生させます。

このメソッドが呼ばれた時点では、クライアントからのリクエスト...

WEBrick::HTTPServlet::AbstractServlet#do_GET(request, response) -> () (55.0)

自身の service メソッドから HTTP のリクエストに応じて 呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し なければいけません。返り値は特に規定されていません。

自身の service メソッドから HTTP のリクエストに応じて
呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し
なければいけません。返り値は特に規定されていません。

クライアントが使う可能性のある RFC で定義された HTTP のメソッドはすべて実装する必要があります。
クライアントからのリクエストに使われないと分かっているメソッドは実装しなくてもかまいません。
実装されていない HTTP メソッドであった場合、自身の service メソッドが
例外を発生させます。

このメソッドが呼ばれた時点では、クライアントからのリクエスト...

絞り込み条件を変える

WEBrick::HTTPServlet::AbstractServlet#do_HEAD(request, response) -> () (55.0)

自身の service メソッドから HTTP のリクエストに応じて 呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し なければいけません。返り値は特に規定されていません。

自身の service メソッドから HTTP のリクエストに応じて
呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し
なければいけません。返り値は特に規定されていません。

クライアントが使う可能性のある RFC で定義された HTTP のメソッドはすべて実装する必要があります。
クライアントからのリクエストに使われないと分かっているメソッドは実装しなくてもかまいません。
実装されていない HTTP メソッドであった場合、自身の service メソッドが
例外を発生させます。

このメソッドが呼ばれた時点では、クライアントからのリクエスト...

WEBrick::HTTPServlet::AbstractServlet#do_OPTIONS(request, response) -> () (55.0)

自身の service メソッドから HTTP のリクエストに応じて 呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し なければいけません。返り値は特に規定されていません。

自身の service メソッドから HTTP のリクエストに応じて
呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し
なければいけません。返り値は特に規定されていません。

クライアントが使う可能性のある RFC で定義された HTTP のメソッドはすべて実装する必要があります。
クライアントからのリクエストに使われないと分かっているメソッドは実装しなくてもかまいません。
実装されていない HTTP メソッドであった場合、自身の service メソッドが
例外を発生させます。

このメソッドが呼ばれた時点では、クライアントからのリクエスト...

WEBrick::HTTPServlet::AbstractServlet#do_POST(request, response) -> () (55.0)

自身の service メソッドから HTTP のリクエストに応じて 呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し なければいけません。返り値は特に規定されていません。

自身の service メソッドから HTTP のリクエストに応じて
呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し
なければいけません。返り値は特に規定されていません。

クライアントが使う可能性のある RFC で定義された HTTP のメソッドはすべて実装する必要があります。
クライアントからのリクエストに使われないと分かっているメソッドは実装しなくてもかまいません。
実装されていない HTTP メソッドであった場合、自身の service メソッドが
例外を発生させます。

このメソッドが呼ばれた時点では、クライアントからのリクエスト...

WEBrick::HTTPServlet::AbstractServlet#do_PUT(request, response) -> () (55.0)

自身の service メソッドから HTTP のリクエストに応じて 呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し なければいけません。返り値は特に規定されていません。

自身の service メソッドから HTTP のリクエストに応じて
呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し
なければいけません。返り値は特に規定されていません。

クライアントが使う可能性のある RFC で定義された HTTP のメソッドはすべて実装する必要があります。
クライアントからのリクエストに使われないと分かっているメソッドは実装しなくてもかまいません。
実装されていない HTTP メソッドであった場合、自身の service メソッドが
例外を発生させます。

このメソッドが呼ばれた時点では、クライアントからのリクエスト...

Array#fill {|index| ... } -> self (46.0)

すべての要素に val をセットします。

すべての要素に val をセットします。

このメソッドが val のコピーでなく val 自身をセットする
ことに注意してください。
val の代わりにブロックを指定するとブロックの評価結果を値とします。

@param val 自身にセットしたいオブジェクトを指定します。

//emlist[例][ruby]{
a = [0, 1, 2, 3, 4]
a.fill(10)
p a #=> [10, 10, 10, 10, 10]

a = [0, 1, 2, 3, 4]
a.fill("a")
p a #=> ["a", "a", "a", "a", "a"]
a[0].capitali...

絞り込み条件を変える

Array#fill(val) -> self (46.0)

すべての要素に val をセットします。

すべての要素に val をセットします。

このメソッドが val のコピーでなく val 自身をセットする
ことに注意してください。
val の代わりにブロックを指定するとブロックの評価結果を値とします。

@param val 自身にセットしたいオブジェクトを指定します。

//emlist[例][ruby]{
a = [0, 1, 2, 3, 4]
a.fill(10)
p a #=> [10, 10, 10, 10, 10]

a = [0, 1, 2, 3, 4]
a.fill("a")
p a #=> ["a", "a", "a", "a", "a"]
a[0].capitali...

MatchData#[](n) -> String | nil (40.0)

n 番目の部分文字列を返します。

n 番目の部分文字列を返します。

0 はマッチ全体を意味します。
n の値が負の時には末尾からのインデックスと見倣します(末尾の
要素が -1 番目)。n 番目の要素が存在しない時には nil を返します。

@param n 返す部分文字列のインデックスを指定します。

//emlist[例][ruby]{
/(foo)(bar)(BAZ)?/ =~ "foobarbaz"
p $~.to_a # => ["foobar", "foo", "bar", nil]
p $~[0] # => "foobar"
p $~[1] # => "foo"
...

ACL (37.0)

drb で用いる ACL(Access Control List)クラス。

drb で用いる ACL(Access Control List)クラス。

Access control list は "allow" と "deny" の2つからなります。
"all" や "*" という文字列は任意のアドレスにマッチします。
IPAddr が取り扱える任意のアドレス/アドレスマスクを
使うことができます。

ACLのエントリーは、以下の例に示すように、
"allow_or_deny", "addr1",
"allow_or_deny", "addr2",
:
という文字列配列で表現されます。

@see DRb.#install_acl, DRb.#st...

Benchmark.#bmbm(width = 0) {|job| ... } -> [Benchmark::Tms] (37.0)

Benchmark::Job オブジェクトを生成して、それを引数として与えられたブロックを 実行します。

Benchmark::Job オブジェクトを生成して、それを引数として与えられたブロックを
実行します。

ベンチマークの結果は GC の影響によって歪められてしまうことがあります。
このメソッドは与えられたブロックを二度実行する事によってこの影響を最小化します。
一回目は実行環境を安定化するためにリハーサルとして実行します。二回目は本番として
実行します。

二回目のブロック実行の前に GC.start を実行しますが、この実行時間は計測には
含まれません。しかし、実際にはこのメソッドを使用しても、GC などの影響を分離する
ことは保証されません。

@param width ラベルの幅を...

DRb.#primary_server -> DRb::DRbServer|nil (37.0)

ローカルプロセスのプライマリサーバーを返します。

ローカルプロセスのプライマリサーバーを返します。

プライマリサーバとは DRb.#start_service によって
起動されるサーバです。

サーバが動いていない場合は nil を返します。

@see DRb.#stop_service

絞り込み条件を変える

DRb::DRbObject.new_with_uri(uri) -> DRb::DRbObject (37.0)

URI から新しい DRbObject を生成します。

URI から新しい DRbObject を生成します。

別プロセスの DRb.#start_service で指定したフロントオブジェクトを
指すリモートオブジェクトを取り出します。

@param uri URI リモートオブジェクトを指定するための URI (文字列)

DRb::DRbServer#config -> Hash (37.0)

サーバの設定を返します。

サーバの設定を返します。

@see DRb::DRbServer.new, DRb.#start_service

DRb::DRbServer#front -> object (37.0)

サーバに設定されたフロントオブジェクトを返します。

サーバに設定されたフロントオブジェクトを返します。

@see DRb::DRbServer.new, DRb.#start_service

DRb::DRbServer.default_acl(acl) -> () (37.0)

サーバ起動時の :acl オプションのデフォルト値を指定します。

サーバ起動時の :acl オプションのデフォルト値を指定します。

初期値は nil です。

@see DRb::DRbServer.new, DRb.#start_service, ACL

DRb::DRbServer.default_argc_limit(argc) -> () (37.0)

サーバ起動時の :argc_limit オプションのデフォルト値を指定します。

サーバ起動時の :argc_limit オプションのデフォルト値を指定します。

初期値は 256 です。

@see DRb::DRbServer.new, DRb.#start_service

絞り込み条件を変える

DRb::DRbServer.default_id_conv(idconv) -> () (37.0)

サーバ起動時の :id_conv オプションのデフォルト値を指定します。

サーバ起動時の :id_conv オプションのデフォルト値を指定します。

初期値は DRb::DRbIdConv のインスタンスです。

@see DRb::DRbServer.new, DRb.#start_service

DRb::DRbServer.default_load_limit(sz) -> () (37.0)

サーバ起動時の :load_limit オプションのデフォルト値を指定します。

サーバ起動時の :load_limit オプションのデフォルト値を指定します。

初期値は25MBです。

@see DRb::DRbServer.new, DRb.#start_service

DRb::DRbServer.default_safe_level(level) -> () (37.0)

サーバ起動時の :safe_level オプションのデフォルト値を指定します。

サーバ起動時の :safe_level オプションのデフォルト値を指定します。

初期値は0です。

@see DRb::DRbServer.new, DRb.#start_service

DRb::DRbServer.verbose -> bool (37.0)

サーバ起動時の :verbose オプションのデフォルト値を返します。

サーバ起動時の :verbose オプションのデフォルト値を返します。

@see DRb::DRbServer.new, DRb.#start_service,
DRb::DRbServer.verbose=

DRb::DRbServer.verbose=(on) (37.0)

サーバ起動時の :verbose オプションのデフォルト値を指定します。

サーバ起動時の :verbose オプションのデフォルト値を指定します。

初期値は false です。

@see DRb::DRbServer.new, DRb.#start_service

絞り込み条件を変える

GC::Profiler.raw_data -> [Hash, ...] | nil (37.0)

GC のプロファイル情報を GC の発生ごとに Hash の配列 (:GC_INVOKE_TIME が早いもの順)で返します。GC::Profiler が有効になっ ていない場合は nil を返します。

GC のプロファイル情報を GC の発生ごとに Hash の配列
(:GC_INVOKE_TIME が早いもの順)で返します。GC::Profiler が有効になっ
ていない場合は nil を返します。

例:

GC::Profiler.enable
GC.start
GC::Profiler.raw_data
# => [
{
:GC_TIME=>1.3000000000000858e-05,
:GC_INVOKE_TIME=>0.010634999999999999,
:HEAP_USE_SIZE=>289640,
...

Net::HTTP#proxy_from_env? -> bool (37.0)

プロクシ情報を環境変数から得る場合に true を返します。

プロクシ情報を環境変数から得る場合に true を返します。

基本的に Net::HTTP.new や Net::HTTP.start の proxy_address
引数に :ENV を渡した場合に true になります。

環境変数 http_proxy が定義されていなくともこの値は true を返します。
その場合にはプロクシは利用されず直接サーバに接続します。

@see Net::HTTP#proxy_from_env=

Net::POP3#set_debug_output(f) -> () (37.0)

デバッグ用の出力 f をセットします。

デバッグ用の出力 f をセットします。

このメソッドは深刻なセキュリティホールの原因となりえます。
デバッグ以外の用途では使わないでください。

f は << メソッドを持っているオブジェクトでなければなりません。

使用例:

require 'net/pop'

pop = Net::POP3.new('pop.example.com', 110)
pop.set_debug_output $stderr
pop.start('YourAccount', 'YourPassword') {
p pop.n_bytes
}

実行結果:

POP sessi...

Net::POP3.APOP(is_apop) -> Class (37.0)

bool が真なら Net::APOP クラス、偽なら Net::POP3 クラスを返します。

bool が真なら Net::APOP クラス、偽なら Net::POP3 クラスを返します。

使用例:

require 'net/pop'

pop = Net::POP3::APOP($isapop).new(addr, port)
pop.start(account, password) {
....
}

@param is_apop 真の場合に Net::APOP を返します。

Net::SMTP#ssl? -> bool (37.0)

その Net::SMTP オブジェクトが SMTPS を利用するならば真を返します。

その Net::SMTP オブジェクトが SMTPS を利用するならば真を返します。

@see Net::SMTP#enable_tls, Net::SMTP#disable_tls, Net::SMTP#start

絞り込み条件を変える

Net::SMTP#tls? -> bool (37.0)

その Net::SMTP オブジェクトが SMTPS を利用するならば真を返します。

その Net::SMTP オブジェクトが SMTPS を利用するならば真を返します。

@see Net::SMTP#enable_tls, Net::SMTP#disable_tls, Net::SMTP#start

Psych::Nodes::Mapping::ANY -> Integer (37.0)

「任意」のスタイルを意味します。

「任意」のスタイルを意味します。

emitter が適当に style を決めます。

@see Psych::Nodes::Mapping.new,
Psych::Nodes::Mapping#style,
Psych::Handler#start_mapping

Psych::Nodes::Mapping::BLOCK -> Integer (37.0)

block style を表します。

block style を表します。

@see Psych::Nodes::Mapping.new,
Psych::Nodes::Mapping#style,
Psych::Handler#start_mapping

Psych::Nodes::Mapping::FLOW -> Integer (37.0)

flow style を表します。

flow style を表します。

@see Psych::Nodes::Mapping.new,
Psych::Nodes::Mapping#style,
Psych::Handler#start_mapping

Psych::Nodes::Sequence::ANY -> Integer (37.0)

「任意」のスタイルを意味します。

「任意」のスタイルを意味します。

emitter が適当に style を決めます。

@see Psych::Nodes::Sequence.new,
Psych::Nodes::Sequence#style,
Psych::Handler#start_sequence

絞り込み条件を変える

Psych::Nodes::Sequence::BLOCK -> Integer (37.0)

block style を表します。

block style を表します。

@see Psych::Nodes::Sequence.new,
Psych::Nodes::Sequence#style,
Psych::Handler#start_sequence

Psych::Parser::UTF16BE -> Integer (37.0)

UTF-16BE エンコーディングを表します。

UTF-16BE エンコーディングを表します。

@see Psych::Handler#start_stream

Psych::Parser::UTF16LE -> Integer (37.0)

UTF-16LE エンコーディングを表します。

UTF-16LE エンコーディングを表します。

@see Psych::Handler#start_stream

Psych::Parser::UTF8 -> Integer (37.0)

UTF-8 エンコーディングを表します。

UTF-8 エンコーディングを表します。

@see Psych::Handler#start_stream

WEBrick::HTTPServer#virtual_host(server) -> () (37.0)

サーバの保持しているバーチャルホストのリストに HTTP サーバ server を加えます。 クライアントからのリクエストのうち server へのものは server に委譲されるようになります。

サーバの保持しているバーチャルホストのリストに HTTP サーバ server を加えます。
クライアントからのリクエストのうち server へのものは server に委譲されるようになります。

@param server バーチャルホストを表す WEBrick::HTTPServer オブジェクトを指定します。


require 'webrick'
include WEBrick
srv1 = HTTPServer.new( { :Port => 1080, :ServerName => 'hoge.example.com' } )
srv2 = HTTPServe...

絞り込み条件を変える

WEBrick::HTTPUtils::FormData#[](header) -> String | nil (37.0)

自身が multipart/form-data なデータの場合に、header で指定された ヘッダの値を文字列で返します。無ければ nil を返します。

自身が multipart/form-data なデータの場合に、header で指定された
ヘッダの値を文字列で返します。無ければ nil を返します。

@param header ヘッダ名を文字列で指定します。大文字と小文字を区別しません。

例:

require "webrick/cgi"
class MyCGI < WEBrick::CGI
def do_GET(req, res)
p req.query['q']['content-type'] #=> "plain/text"
end
end
MyCGI.new.start()

WEBrick::HTTPUtils::FormData#filename -> String | nil (37.0)

フォームデータの filename 属性を文字列で表すアクセサです。

フォームデータの filename 属性を文字列で表すアクセサです。

@param value フォームデータの filename 属性を文字列で指定します。

例:

require "webrick/cgi"
class MyCGI < WEBrick::CGI
def do_GET(req, res)
p req.query['q'].filename #=> "my_file.txt"
end
end
MyCGI.new.start()

WEBrick::HTTPUtils::FormData#filename=(value) (37.0)

フォームデータの filename 属性を文字列で表すアクセサです。

フォームデータの filename 属性を文字列で表すアクセサです。

@param value フォームデータの filename 属性を文字列で指定します。

例:

require "webrick/cgi"
class MyCGI < WEBrick::CGI
def do_GET(req, res)
p req.query['q'].filename #=> "my_file.txt"
end
end
MyCGI.new.start()

WEBrick::HTTPUtils::FormData#name -> String | nil (37.0)

フォームデータの name 属性を文字列で表すアクセサです。

フォームデータの name 属性を文字列で表すアクセサです。

@param value フォームデータの name 属性を文字列で指定します。

例:

require "webrick/cgi"
class MyCGI < WEBrick::CGI
def do_GET(req, res)
p req.query['q'].name #=> "q"
end
end
MyCGI.new.start()

WEBrick::HTTPUtils::FormData#name=(value) (37.0)

フォームデータの name 属性を文字列で表すアクセサです。

フォームデータの name 属性を文字列で表すアクセサです。

@param value フォームデータの name 属性を文字列で指定します。

例:

require "webrick/cgi"
class MyCGI < WEBrick::CGI
def do_GET(req, res)
p req.query['q'].name #=> "q"
end
end
MyCGI.new.start()

絞り込み条件を変える

セキュリティモデル (37.0)

セキュリティモデル RubyにはCGI等のプログラミングを安全に行うことを助ける為に、セキュリティ 機構が備わっています。

セキュリティモデル
RubyにはCGI等のプログラミングを安全に行うことを助ける為に、セキュリティ
機構が備わっています。

Rubyのセキュリティモデルは「オブジェクトの汚染」と「セーフレベル」という
仕組みによってなりたっています。

=== オブジェクトの汚染

Rubyではオブジェクトは「汚染されている」とみなされることがあります。この
しくみは大きく分けて二つの使われ方をします。

ひとつ目は、信用できない入力をもとに作られたオブジェクトを「汚染されてい
る」とみなし、「危険な操作」の引数として使えないようにすることです。悪意
あるデータによって、プログラムが意図しない動作をする事...

Array#slice!(nth) -> object | nil (34.0)

指定した要素を自身から取り除き、取り除いた要素を返します。取り除く要素がなければ nil を返します。

指定した要素を自身から取り除き、取り除いた要素を返します。取り除く要素がなければ nil
を返します。

@param nth 取り除く要素のインデックスを整数で指定します。

//emlist[例][ruby]{
a = [ "a", "b", "c" ]
a.slice!(1) #=> "b"
a #=> ["a", "c"]
a.slice!(-1) #=> "c"
a #=> ["a"]
a.slice!(100) #=> nil
a #=> ["a"]
//}
<< < 1 2 3 >>