- 1 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 20:37:25 ]
- FreeBSDについて語るスレです。
The FreeBSD Project www.freebsd.org/ja/ 前スレ FreeBSDを語れ Part25 pc12.2ch.net/test/read.cgi/unix/1249379155/ 関連スレ 初心者もOK! FreeBSD質問スレッド その104 pc12.2ch.net/test/read.cgi/unix/1252852690/ FreeBSD/amd64 part2 (and for oyster901) pc12.2ch.net/test/read.cgi/unix/1171335849/
- 397 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/28(土) 02:29:37 ]
- 年に一度もないんだから我慢しろやおめーら
- 398 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/28(土) 02:37:45 ]
- >>393,>>395
置き場所を自分で考えると、置き場所を忘れて、複数(/etcと /usr/local/etcとか)もつ ハメになるから、exapmlesの下を正式な置き場所にしている。
- 399 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/28(土) 02:39:00 ]
- >>397
currentだからしょっちゅうある。
- 400 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/28(土) 03:52:48 ]
- >>398
その「正式な置き場所」を選択したのは君で、君の選択が間違ってるんだから 他人に文句言っても仕方ない。
- 401 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/28(土) 09:27:48 ]
- 自分が手を入れているファイル以外は全削除して新規に入れているので気にしない
- 402 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/28(土) 09:34:54 ]
- mergemasterでよく得意げに-sを指定してる人を見るけど、意味あるの
これ指定するととても面倒そうなんだが
- 403 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/28(土) 09:41:45 ]
- >>388
すみませんが詳しい方のみ回答をお願いします
- 404 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/28(土) 09:46:53 ]
- >>400
あぁ、mergemasterが悪いのではなくmake installworldで置換されるのか。 確かにオレが悪い。しょうがない、置き場所考えるか。
- 405 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/28(土) 09:49:32 ]
- -sを付けないこと、-Uを付けること、-Fを付けることの違いがわからない
mergemasterのソース見ればわかるのかもしれないけど面倒くさい
- 406 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/28(土) 14:26:17 ]
- mergemaster は man mergemaster して /etc/mergemaster.rc
書けばほとんど手間要らずだろ。
- 407 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/28(土) 15:17:59 ]
- mergemasterは-rのときにも$MTREENEWを作り直してしまって
おおかたのファイルの情報が失われるので、 -rのときには$MTREENEWは作り直さないように修正して使ってる。
- 408 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/28(土) 15:18:50 ]
- /etc/rc.dと/etc/defaultsは削除してからmergemasterかけてる
- 409 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/28(土) 15:25:04 ]
- 7.2 -> 8 のアップデートがあまりにあっけなくて拍子抜けした
これなら Windows Update の方がまだドキドキするw
- 410 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/28(土) 17:31:23 ]
- 俺は撃沈しました
USBメモリから起動失敗
- 411 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/29(日) 03:10:27 ]
- >>410
www.freebsddiary.org/upgrade8.php ↑関係してない?
- 412 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/29(日) 04:58:40 ]
- >>411
関係してるかも。カーネルインストール後の再起動で「da0s1aがねえぞゴルァ!」ってシングルユーザーモードに落ちる で/dev見るとda0とda0aしかない。da0aを指定しても結局マウントできなかったけど。 バックアップ用のUSBメモリもあったのに同時にアップグレードしてしまえなんてアホなこと考えて復旧に今までかかった。
- 413 名前:名無しさん@お腹いっぱい。 [2009/11/29(日) 10:28:17 ]
- USB接続のプリンタをつないだままブートすると
なんとプリンタのカードスロットがad0になってルートパーティションがマウントできなくてブート失敗する これってプリンタに刺したメモリカードでブートできるってことだよね
- 414 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/29(日) 10:31:47 ]
- >>413
実に面白い。
- 415 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/29(日) 10:44:21 ]
- pc11.2ch.net/test/read.cgi/linux/1129568531/840
- 416 名前:名無しさん@お腹いっぱい。 [2009/11/29(日) 11:55:49 ]
- >>415
大滝秀治さんの声で「こりゃぁ、ワシの字だぁ!」
- 417 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/29(日) 12:41:14 ]
- ラベル付ければいいんじゃないの?
www.freebsd.org/doc/en/books/handbook/geom-glabel.html
- 418 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/29(日) 13:03:19 ]
- ああ、そもそもラベル書いてる /etc/fstab が読めないから駄目なのか…
- 419 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/29(日) 17:30:05 ]
- 最新はあまり追いかけてないんだけど、da0 じゃなくて ad0 がUSBになったってこと???
- 420 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/29(日) 20:06:09 ]
- rm -r * の快感をGUIオンリーユーザーは理解できまい。
- 421 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/29(日) 20:07:21 ]
- rm -rf /*
一文字違うとやばいっす
- 422 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/29(日) 20:08:46 ]
- ctrl-a shift-delete
- 423 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/29(日) 20:35:25 ]
- rm -Rf /
- 424 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/29(日) 21:42:42 ]
- 最近のrmは結構賢い
- 425 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/29(日) 21:50:54 ]
- rm これはコメント
- 426 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/29(日) 22:31:24 ]
- GNOME 2.28きたね
- 427 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/29(日) 22:56:37 ]
- gnomeとqt4アップデートした(`・ω・´)
- 428 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/30(月) 00:01:08 ]
- なにかフォント周りも新しくなってたのか、MS P ゴシックとか明朝の中の
ビットマップフォントがうまく使えるようになっててキンモーw
- 429 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/30(月) 00:48:13 ]
- linux使ってたけどやっぱりなんか違う。性にあわない。
こっちにクリーンインストールしよう。 dvd版でいいよね? みんなCDからなのか?
- 430 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/30(月) 03:30:54 ]
- >>429
packages とかいらなきゃCD1でいいんじゃないの。
- 431 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/30(月) 12:50:52 ]
- CD1はゴミマニュアルで半分をしめているので落とすならばlivecdが一番良い気がする。
DVDはpackageが古いからどうせダウンロードするくらいならば stableのpackageをpkg_add -rする方が良い。
- 432 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/30(月) 14:13:56 ]
- Javaを入れている人は8.xへの移行をやめた方がいいんだろうな
misc/compat7xが必要なんだっけ?
- 433 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/30(月) 15:04:43 ]
- java/jdk16 使ってて再コンパイルしたけど別に
compat7x 入らなかったよ?
- 434 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/30(月) 20:00:04 ]
- ↓でDOS/V版の愛姉妹が動いた。同級生も動くらしい。音は出てない。
cvsweb.se.netbsd.org/cgi-bin/bsdweb.cgi/pkgsrc/games/anise/ ↓SILK*.DATの展開プログラム www.kurohane.net/hoot/driver/silkys_bgm.zip こういう話するスレってあったっけ?
- 435 名前:410 mailto:sage [2009/11/30(月) 20:10:02 ]
- これで解決しました
forums.freebsd.org/showthread.php?p=51967#post51967 起動に失敗したUSBメモリは7.1のsysinstallでインストールしたものです。
- 436 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/30(月) 21:42:12 ]
- >>434
お前らに妹さんはいますか?2人目 pc12.2ch.net/test/read.cgi/unix/1047179680/ これか?
- 437 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 02:44:21 ]
- amd64 で zfsroot にしてるんだが 7.2 から 8.0 に kernel を更新して single で立ち上げたあとに
insufficient memory だかなにかで zfs な root をマウントできずにその後に進めない 結局 7.2 に戻した。別環境で様子見・・・
- 438 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 09:41:32 ]
- 気合いや 気合い
気合いが足らんのや 気合い入れたらんかい
- 439 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 09:42:52 ]
- >>438
俺も気合が足らんのやないかと思う。
- 440 名前:410 mailto:sage [2009/12/01(火) 10:03:28 ]
- 俺もUSBメモリから起動できるようにはなったけどZFSはマウントできなかった。
ZFSをアップグレードしないとだめみたいだね。 d.hatena.ne.jp/usaka/20090602 ライブCDでZFSアップグレードしてからfreebsd-updateの続きでどうにかできないもんか。 mohi.teak.jp/blog/memorandum/021 実験用の仮想環境作るのまんどくせ。
- 441 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 11:24:13 ]
- >>440
Windows 環境があるなら、VMware Player v3 から GUI でサクサク仮想マシン作れるよ。
- 442 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 11:31:37 ]
- 2ch特化型サーバ・ロケーション構築作戦 Part35
qb5.2ch.net/test/read.cgi/operate/1254496873/ から転載。 Upcoming FreeBSD Security Advisory docs.freebsd.org/cgi/getmsg.cgi?fetch=0+0+current/freebsd-security 要約:通常アドバイザリの準備が出来てからアナウンス するけど、既に exploit code が広く出回っているので とりあえずパッチを公開します。 ただ、このパッチは可能性が低いとはいえ問題を完全に 解決していないかもしれないし、新たな問題を含んでい るかも知れないので(いつもより)注意してね。 パッチ: people.freebsd.org/~cperciva/rtld.patch
- 443 名前:名無しさん@お腹いっぱい。 [2009/12/01(火) 14:22:55 ]
- >>442
これ近年まれに見る単純かつやばい奴じゃないか FreeBSD使ってるレンタル共有サーバ業者南無
- 444 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 15:06:23 ]
- スタック破壊なんかよりずっと簡単にroot取れちゃうのか。
しかしunsetenvでつぶすなんてずいぶん手抜きなコードなんだなあ。
- 445 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 15:18:58 ]
- unsetenv()で潰してるんじゃなくて、(それは以前からやっていて)
unsetenv()できなかった時にちゃんとabortするコードを追加するpatchに見えるが。
- 446 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 15:24:53 ]
- パッチじゃなくて、元々のコード (パッチあてた後も同じだけど) の話。
setuid-root なプログラムの場合にも getenv で LD_* を取りに行くのかよ、って話ですが。
- 447 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 15:26:54 ]
- >>446
だとすると、何をいまさらな話だ。 それより、unsetenv()は昔はvoidだったのに今はintに変わったんだな。
- 448 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 15:27:30 ]
- いまさらなコードがあぶなかったわけですよね。
- 449 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 15:29:23 ]
- >>448
いや、その「いまさら」な部分はpatchを当てても変わってない。 だから、「いまさらなコードがあぶなかった」のではない。
- 450 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 15:33:50 ]
- うへぇ!これを期にFreeBSD見限るか?
- 451 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 15:35:05 ]
- あー、setuid-root なプログラムなら、そもそも getenv("LD_hoge") すべきじゃないのでは?
ってことが言いたいんですが。 それをいまさら、って言われてしまうと、FreeBSDの人達の志ってやっぱり低いのね、 って感じになっちゃうというか。
- 452 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 15:36:07 ]
- ごめんunsetenvに失敗することあんの?
- 453 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 15:40:38 ]
- このパッチを見て攻撃方法が全然思い浮かばない駄目駄目管理者です。
- 454 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 15:44:36 ]
- >>451
setuid-root なプログラムでは、getenv("LD_hoge")はしないし、 かつ unsetenv("LD_hoge")もする、という2重のコードになってるのでは?
- 455 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 18:06:39 ]
- すでにExploit code出回ってるぜ。
LD_PRELOADでsetuidなpingに突っ込んでroot件奪取できてた。
- 456 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 18:10:14 ]
- さくら涙目でおk?
- 457 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 18:16:22 ]
- これだから7系以降はと言おうかと思ったら6系もパッチが当てられる部分は同じw
- 458 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 18:30:45 ]
- >>454
いいえ。
- 459 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 19:13:37 ]
- 自鯖建てて、ファイアウォールで外部からログインできないようにしてる人には関係ない話のようなので帰りますね。
- 460 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 19:25:13 ]
- >>442
逆に、このpatchでなぜ解決になるのかがわからない。 patchを当てる前だってunsetenv("LD_PRELOAD")とかはしてたわけだし、 その戻り値を無視していたとしてもunsetenv()自体は行なわれるから、 このpatchで解決するなら、patchを当てる前でも問題は起きないように思えるが。
- 461 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 19:27:36 ]
- libcがバグってて、unsetenv()できないような場合があるんじゃないの。
で、その場合はunsetenv()が0以外を返すから、それを見てabortすると。
- 462 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 19:31:32 ]
- おまいら攻撃コードも見ずに妄想垂れ流して暇つぶししてんの?
- 463 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 19:34:06 ]
- んじゃ攻撃コードここに貼り付けてよ
探すのめんどいから
- 464 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 20:03:50 ]
- 攻撃コードワラタw
むしろそんなモジュールが作れる方が問題じゃないのか?w
- 465 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 20:09:16 ]
- >>460
> その戻り値を無視していたとしてもunsetenv()自体は行なわれるから、 行っても失敗するから。 unsetenvのman読めばどういうときに失敗するかはちゃんと書いてあって、 それ読めば簡単にunsetenvが失敗するテストケースは作れる。
- 466 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 20:32:11 ]
- この時のパッチがまずかったんだな。レビュー不足か…。
難しいところだ。 www.freebsd.org/cgi/query-pr.cgi?pr=109836
- 467 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 20:38:33 ]
- >>465
man 3 unsetenv には、 void unsetenv(); って書いてあって、unsetenv()は常に成功する関数になってます><
- 468 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 20:47:58 ]
- >>467
intになってるぞ。8.0。
- 469 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 20:49:15 ]
- 結論
LD_PRELOADは糞
- 470 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 21:00:26 ]
- わかりました、FreeBSD 6.4Rに戻します。
- 471 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 21:12:13 ]
- >>466
そうか、この時にはまだ void だったんだ。この後に int 返すようになってる。 www.freebsd.org/cgi/query-pr.cgi?pr=99826
- 472 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 21:18:40 ]
- __merge_environで'='がないとEFAULTってのもいささかヘタレすぎのような。
- 473 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 21:30:02 ]
- >>469
FreeBSDのLD_*のハンドリングが糞なだけです。 現実逃避せずにこういう糞なコードがまぎれこまないためにどうするかを考えないと。
- 474 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 21:31:12 ]
- char *env[] = {"", "LD_PRELOAD=hoge", NULL};
environment=env;
- 475 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 21:31:24 ]
- rtldなんだから、ライブラリによるメモリリークを心配してリストで管理するようになった
stdlibのset/getenvを使う必要ないよね。 rtldではenvironを直接書き換える従来型のsetenv/getenvを定義して 使うのがいいんじゃなかろうか。
- 476 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 21:34:48 ]
- >>473
みんなで現実逃避しようぜ 悪魔だ 悪魔の仕業だ 沈黙のメシアが今起きあがった ギャォ
- 477 名前:名無しさん@お腹いっぱい。 [2009/12/01(火) 21:52:04 ]
- ttp://gihyo.jp/admin/clip/01/fdt/200912/01
あれ?3.0が出た後も2.x系列はしばらくリリースを続けるんでなかったか?
- 478 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 22:02:41 ]
- それ以前に 年が開けてから 2.30にするか3.0にするか議論するとか
どこかで見たんだがもう次は2.30で決まったのか? 後藤君 確認してきたまえ そして報告だ ホウ、レン、ソウ!
- 479 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 22:04:55 ]
- 2.30が3.0となる予定だったが、遅れて2.32で3.0になることになった。
2.30はそのまま出る。
- 480 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 22:10:23 ]
- よろしい! 殊勝な心がけだ 後藤君
今後も励みたまえ
- 481 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 22:28:17 ]
- >>474
えっと、environmentじゃなくて environだよね? 環境変数リストの頭に "" があると unsetenv()が "" より後の変数を見落とすってこと? ちなみにLinuxで試すと >>474 でも unsetenv()は正常動作した。
- 482 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 22:51:57 ]
- わかりました、Linuxに戻します
- 483 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 22:55:32 ]
- 結局8.0は入れちゃっていいの?
- 484 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 23:09:09 ]
- 早く入れてっ
- 485 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 23:33:47 ]
- だめぇ♪
- 486 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/01(火) 23:52:02 ]
- zfsrootにしてる7.2から8.0に上げるには結局LiveCDがいるなあ
- 487 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/02(水) 04:29:22 ]
- みんな気合が足りんて。
- 488 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/02(水) 05:19:19 ]
- あ、やっとわかったお。
- 489 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/02(水) 06:48:46 ]
- やっぱlibcのバグじゃん。
unsetenv()の方を修正するのがスジじゃないの? たとえエラー返すにしても、引数変数名のunsetenvは必ず実行するように。
- 490 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/02(水) 07:57:02 ]
- >>489
それを言うならどう直せばいいのかまで書くべき
- 491 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/02(水) 08:11:17 ]
- >>490
書いてるじゃん。日本語読めないのか? unsetenv()は、たとえ変数名に不正なものがあってエラーになっても、 常に引数変数のunsetは実行する。 または、以前の void unsetenv()の動作に戻し、 互換性のため、戻り値だけ常に0を返すようにしておく。
- 492 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/02(水) 09:35:43 ]
- >>491
あなたが問題の本質がわかってないことはわかりました。
- 493 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/02(水) 10:23:50 ]
- 「既存」環境変数に "=" を含まない不正な変数があったからと言って、
unsetenvの動作自体を中断するのは余計な仕様→バグだな。 POSIX(笑)か何かでunsetenv()をint型にするように要請されたとしても、 処理は変えずに黙って return 0;だけ追加しておけば良かったものを。
- 494 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/02(水) 10:29:44 ]
- え?
- 495 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/02(水) 10:41:11 ]
- 「"=" を含まない不正な環境リスト」と言って欲しいのか?
- 496 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/02(水) 10:42:40 ]
- はやくなんとかしないと。
- 497 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/12/02(水) 10:43:52 ]
- unsetenv()だけ FreeBSD 6.x以前のものに差し替えればOK
|

|