top of page

TS出来形XMLのタグ構造でつまずかない6つの基本

タイマーアイコン.jpeg
この記事は平均7分15秒で読めます
万能の測量機LRTKの説明

著者: LRTKチーム

TS出来形XMLを扱うとき、画面上では入力できているように見えても、出力、確認、電子納品の段階で、項目の抜け、階層の不一致、名称の揺れ、測点情報との対応漏れが見つかることがあります。ここでいうTS出来形XMLは、TSを用いた出来形管理で扱う施工管理データのXMLを指す実務上の呼び方として整理します。対象工種、適用する要領、データ交換標準のバージョン、提出先の運用によって細かな項目や確認方法は変わるため、現場では必ず最新の提出条件と使用ソフトの仕様も合わせて確認する必要があります。


XMLは、帳票や一覧表のように見た目で情報の関係を表すものではなく、データのまとまりをタグと階層で表す形式です。そのため、タグ名だけを追うのではなく、どの情報がどの親要素の下に入り、どの単位で繰り返され、どの項目と紐づくのかを理解しておくことが重要です。この記事では、TS出来形XMLでつまずきやすいタグ構造の基本を、実務担当者が確認しやすい視点で整理します。


目次

TS出来形XMLは帳票ではなく構造化データとして見る

親子関係を意識してタグの入れ子を確認する

工事情報・工種情報・測点情報の役割を分けて考える

繰り返し項目は一件ごとのまとまりで確認する

空欄・単位・数値形式の違いに注意する

修正時はタグ単体ではなく前後関係まで確認する

TS出来形XMLを現場運用で扱いやすくするために


TS出来形XMLは帳票ではなく構造化データとして見る

TS出来形XMLで最初につまずきやすいのは、XMLを帳票の延長として見てしまうことです。出来形管理では、現場で測定した値を帳票に整理し、設計値、実測値、差、規格値、判定などを確認する場面があります。そのため、XMLも同じように、帳票の中身をそのまま保存したものと考えがちです。しかし、XMLは見た目を整えるための形式ではなく、データの意味と関係性を機械が読み取れるように整理するための形式です。


帳票では、同じ行の中に並んでいれば関係を理解しやすくなります。ある測点の設計値と実測値が同じ行に並んでいれば、人は自然にそれらを同じ測点に関する情報として読み取れます。一方、XMLでは、見た目の位置ではなく、タグの階層や入れ子の関係によって、どの情報がどの測点に属しているかを表します。そのため、項目名が存在するかどうかだけでなく、その項目が正しい場所に入っているかを確認しなければなりません。


TS出来形XMLを確認するときは、まず、これは一覧表ではなく、まとまりを持ったデータであると捉えることが大切です。工事全体に関する情報、工種や種別に関する情報、測点ごとの情報、測定値ごとの情報は、それぞれ役割が異なります。これらが階層として整理されることで、別の確認用ソフトや帳票作成ソフトに渡したときにも、情報の意味を保ったまま扱いやすくなります。


たとえば、工事名や施工場所のような情報は、通常は工事全体に関わる情報です。一方、測点名、測定位置、設計値、実測値などは、個別の出来形測定に関わる情報です。これらを同じ感覚で見てしまうと、どこに何を入れるべきかが分かりにくくなります。XMLでは、広い範囲の情報ほど上位の階層に置かれ、細かい測定情報ほど下位の階層に置かれると考えると、全体像をつかみやすくなります。


また、XMLは人が開いて読むこともできますが、実務上はシステム間でデータを受け渡すために使われることが多い形式です。そのため、人が見て意味が通じるだけでは十分とはいえません。タグの開始と終了が対応していること、同じ階層に置くべき項目が同じ位置にあること、繰り返し項目の単位が崩れていないことなど、構造として整っている必要があります。帳票のように見た目だけを整えるのではなく、読み込み側が正しく解釈できる状態にすることが、TS出来形XMLを扱ううえでの基本です。


実務では、XMLそのものを直接編集する場面は多くないかもしれません。多くの場合、現場端末、出来形管理用TSソフトウェア、帳票作成ソフトウェアなどから出力されたXMLを確認し、必要に応じて元データを修正して再出力します。それでも、タグ構造の考え方を知っておくと、エラーが出たときに原因を切り分けやすくなります。単なる入力漏れなのか、階層の崩れなのか、測点単位のまとまりが壊れているのかを判断できれば、修正作業の手戻りを減らせます。


TS出来形XMLを安全に扱う第一歩は、タグ名を暗記することではありません。まずは、XMLが、どの情報がどこに属するかを表す構造化データであると理解することです。この前提を持つだけで、後続の確認作業は進めやすくなります。


親子関係を意識してタグの入れ子を確認する

XMLの特徴は、タグが親子関係を持って入れ子になっていることです。上位のタグの中に下位のタグが入り、その下位のタグの中にさらに細かな情報が入ります。TS出来形XMLでも、この親子関係が崩れると、項目自体は存在していても、正しい情報として読み取れない可能性があります。


親子関係を理解するには、まず、どの情報の中に、どの情報が含まれるのかを考えます。工事全体の中に工種や測定対象があり、その中に測点や出来形項目があり、さらにその中に設計値や実測値がある、というように、情報は段階的に細かくなります。この流れを意識すると、タグの入れ子を確認しやすくなります。


たとえば、ある測点の実測値は、何らかの測定対象に属している必要があります。実測値だけが単独で存在していても、それがどの工種の、どの測点の、どの出来形項目に関する値なのか分かりません。人がファイルを開いて前後の文字列から推測できたとしても、読み込み側のシステムが同じように判断してくれるとは限りません。XMLでは、値そのものだけでなく、その値がどの親要素の下に置かれているかが重要です。


タグの入れ子を確認するときは、開始タグと終了タグの対応にも注意が必要です。XMLでは、あるタグを開始したら、対応する終了タグで閉じる必要があります。途中で閉じ忘れたり、閉じる順序が入れ替わったりすると、構造全体が崩れます。これは文章で括弧の対応がずれるようなもので、一部の項目だけでなく、その後ろに続く情報まで正しく解釈できなくなることがあります。


実務上は、XMLを専用の表示機能や構造確認機能で開くと、階層が折りたたみ表示されることがあります。そのような表示では、親タグを開くと子タグが見え、子タグを開くとさらに細かな項目が見えます。この表示を使うと、情報のまとまりを視覚的に確認しやすくなります。ただし、表示上きれいに並んでいるからといって、内容が必ず正しいとは限りません。階層が整っていても、別の測点の情報が混ざっていたり、工種のまとまりが違っていたりする場合は、実務上の不整合になります。


親子関係の確認では、同じ種類のデータが同じ階層にそろっているかも見ておきます。ある測点では設計値と実測値が同じ階層にあるのに、別の測点では片方だけが違う階層に入っている場合、読み込みや集計で問題が起きる可能性があります。XMLでは、同じ意味を持つ情報は、同じ構造で繰り返されているほうが確認しやすくなります。構造がそろっていれば、後から確認する人も、受け取る側のシステムも、データの意味を判断しやすくなります。


また、親子関係は、修正時にも重要です。たとえば、測点名を修正したい場合、測点名の文字だけを直せばよいとは限りません。その測点名に紐づく測定値、帳票側の表示名、確認一覧、関連資料などが別の場所で参照されている場合があります。XML内のタグ構造を理解していないと、表面上の名称だけ直して、関連する情報との整合が崩れることがあります。


TS出来形XMLのタグ構造でつまずかないためには、タグを箱として考えると分かりやすくなります。上位の箱の中に、関連する小さな箱が入り、その小さな箱の中に具体的な値が入ります。どの箱に入れるべき情報なのか、箱の閉じ方は合っているか、同じ種類の箱が同じ形で繰り返されているかを確認することが、親子関係を見る基本です。


工事情報・工種情報・測点情報の役割を分けて考える

TS出来形XMLでは、すべての情報を同じ扱いで見るのではなく、役割ごとに分けて考える必要があります。特に、工事情報、工種情報、測点情報は混同しやすい項目です。これらを曖昧にしたまま入力や確認を進めると、XMLとしては出力できても、後工程で、どの出来形データなのか分かりにくい、帳票と一致しない、別の分類として読み込まれる、といった問題につながることがあります。


工事情報は、データ全体の前提になる情報です。工事名、施工場所、発注者や受注者に関する情報、工期、管理対象の概要など、ファイル全体に関わる内容が含まれる場合があります。これらは個別の測点ごとに変わるものではなく、TS出来形XML全体を識別するための基本情報として扱われます。工事情報が不正確だと、ファイル内の測定値が正しくても、どの工事の成果なのか判断しづらくなります。


工種情報は、出来形管理の対象を分類するための情報です。土工、舗装、構造物、付帯施設など、工事の中でどの種類の施工内容に関する出来形なのかを整理する役割があります。実際の分類名や粒度は、対象工種、要領、現場の管理方法、提出先の運用に合わせて整理されます。重要なのは、同じ分類の中に関係する測点や測定項目がまとまっていることです。工種情報が曖昧だと、帳票上では一見問題がなくても、XMLを取り込んだときに分類が崩れることがあります。


測点情報は、実際の測定位置や管理位置を示す情報です。測点名、距離標、断面位置、左右の位置関係、測定対象の識別名などが関係します。測点情報は、出来形の設計値や実測値を解釈するための基準になります。測点の表記が揺れていたり、帳票側の名称とXML側の名称が一致していなかったりすると、確認作業で混乱しやすくなります。


この三つの役割を分けて考えると、入力ミスや構造ミスを見つけやすくなります。工事名の誤記は工事情報の問題です。工種の分類違いは工種情報の問題です。測点名の表記揺れや測定位置の取り違えは測点情報の問題です。すべてをXMLのエラーとして一括りにすると原因が見えにくくなりますが、役割ごとに分ければ、どこを直すべきか判断しやすくなります。


また、工事情報、工種情報、測点情報は、上位から下位へとつながる関係を持ちます。工事情報の下に複数の工種情報があり、工種情報の下に複数の測点情報があり、測点情報の下に測定値や判定に関する情報が入る、という流れで考えると整理しやすくなります。この流れが逆になったり、別の工種に属する測点が混ざったりすると、データの意味が不明確になります。


実務でよく起こるのは、入力作業の途中で名称を変更した結果、関連する情報の一部だけが古い表記のまま残るケースです。帳票上の工種名を変更しても、XML出力時の分類名や内部の識別情報が古いままになっていると、確認時に不一致として見つかることがあります。また、測点名を途中で簡略化した結果、同じ位置を指しているはずのデータが別の測点として扱われることもあります。


このような混乱を防ぐには、最初に名称ルールを決めておくことが有効です。工種名、種別名、測点名、測定項目名をどのように書くかを現場内でそろえ、途中で変更する場合は、帳票、測定データ、XML出力設定のすべてを確認します。特に、全角と半角、スペースの有無、記号の使い方、略称の有無は、見落としやすいポイントです。人間には同じ意味に見えても、システム上は別の文字列として扱われることがあります。


TS出来形XMLのタグ構造を理解するうえで、工事情報、工種情報、測点情報の役割を分けることは重要です。どの情報が全体に関わるのか、どの情報が分類に関わるのか、どの情報が個別の測定位置に関わるのかを整理しておけば、XMLの階層を確認するときにも迷いにくくなります。


繰り返し項目は一件ごとのまとまりで確認する

TS出来形XMLでは、同じ形式の情報が何度も繰り返されます。測点ごとのデータ、測定項目ごとのデータ、出来形値ごとのデータなどは、同じような構造で複数件並ぶことが一般的です。この繰り返し構造を正しく理解していないと、一部の値だけを見て判断してしまい、別の測点の情報と混ざっていることに気づけない場合があります。


繰り返し項目を見るときは、一件分のまとまりがどこからどこまでかを意識します。ある測点の情報が始まり、その中に設計値、実測値、差、判定などが入り、そこで一件分が閉じるという流れです。次の測点に進むと、同じような構造が再び現れます。この一件分の区切りを見失うと、前の測点の値と次の測点の値を誤って関連付けてしまう可能性があります。


帳票では、行ごとに情報が区切られるため、一件分のまとまりが分かりやすいです。しかし、XMLでは、改行やインデントが見た目を助けることはあっても、意味そのものはタグの構造で決まります。改行位置がきれいでも、タグの閉じ位置がずれていれば、別のまとまりとして解釈される可能性があります。反対に、見た目の改行が少なくても、タグ構造が正しければデータとしては成立します。


繰り返し項目で特に注意したいのは、途中の一件だけ項目数が違う場合です。多くの測点では設計値、実測値、差、判定がそろっているのに、一部の測点だけ実測値が空欄になっている、または判定項目が出力されていないということがあります。これは、入力漏れ、測定対象外、出力設定の違い、管理項目の不一致など、さまざまな原因で起こります。重要なのは、その空欄や欠落が意図したものかどうかを確認することです。


また、繰り返し項目の順序にも注意が必要です。すべてのシステムが順序に依存して処理するわけではありませんが、実務上の確認では、帳票の並びとXML内の並びが大きく違うと照合しづらくなります。測点の順序、工種の順序、測定項目の順序が現場で確認している帳票や管理表と対応していると、レビュー作業が進めやすくなります。順序が異なる場合でも、測点名や識別情報で対応関係を確認できる状態にしておくことが必要です。


繰り返し構造では、コピーや流用によるミスも起こりやすくなります。過去のデータや別工区のデータをもとに入力した場合、タグ構造は整っていても、内部の測点名や管理項目が前のまま残ることがあります。XMLとしての形は正しいため、単純な構文確認では見つからないこともあります。このようなミスは、帳票との照合や測点一覧との突き合わせで確認する必要があります。


一件ごとのまとまりを確認する際は、代表的な測点だけを見るのではなく、先頭、中間、最後のデータを確認すると効果的です。先頭のデータでは初期設定や工種との紐づきを確認できます。中間のデータでは繰り返し構造が安定しているか確認できます。最後のデータではタグが途中で切れていないか、終端のまとまりが正しく閉じているかを確認できます。全件を詳細に読むことが難しい場合でも、このように範囲を分けて確認すると、構造上の崩れを見つけやすくなります。


TS出来形XMLの繰り返し項目は、単なるデータの羅列ではありません。一件ごとのまとまりが正しく並ぶことで、測点ごとの出来形情報として意味を持ちます。タグ構造を確認するときは、値そのものだけでなく、その値がどの一件に属しているかを意識することが大切です。


空欄・単位・数値形式の違いに注意する

TS出来形XMLでは、タグ構造が正しくても、値の中身が不適切だと後工程で問題になることがあります。特に、空欄、単位、数値形式の違いは、現場で見落とされやすいポイントです。人が帳票を見れば意味を補える場合でも、XMLを読み込む側では厳密に扱われることがあります。


空欄については、まず、入力漏れと該当なしを区別することが重要です。ある項目が空欄になっている場合、それが本当に不要な項目なのか、入力し忘れているだけなのかを確認しなければなりません。XML内にタグだけが存在して値が入っていない場合もあれば、タグ自体が出力されていない場合もあります。どちらが適切かは、データの仕様や運用ルールによって異なるため、現場の提出条件に合わせて確認する必要があります。


空欄が多いXMLは、後から確認する人にとって判断が難しくなります。特に、出来形管理に関わる設計値や実測値、測点名、管理項目名などの基本情報が空欄だと、データの意味が失われます。一方で、すべての項目に無理に値を入れればよいわけでもありません。該当しない項目に便宜的な文字や記号を入れると、読み込み側で想定外の値として扱われることがあります。空欄を埋めるかどうかは、項目の意味と提出先のルールを確認したうえで判断します。


単位の扱いも注意が必要です。出来形管理では、長さ、高さ、幅、厚さ、勾配、面積など、さまざまな数値を扱います。帳票上では単位が見出しに書かれているため、各セルには数値だけが入ることがあります。しかし、XMLでは、単位が別の項目で管理される場合や、項目ごとに決められた単位を前提として数値だけが入る場合があります。数値の中に単位文字を混ぜてしまうと、数値として読み取れないことがあるため注意が必要です。


数値形式では、小数点、桁数、符号、丸め方が問題になりやすいです。帳票上では小数第二位まで表示していても、内部データではより細かな桁を持っている場合があります。反対に、入力時に丸めた値だけを保持している場合もあります。XMLと帳票を照合するときは、表示上の丸めと、データとして保持されている値の違いを理解しておく必要があります。わずかな差でも、判定や集計に影響する場合があります。


符号の扱いも見落としやすい点です。設計値との差を表す場合、プラスとマイナスの方向が現場の管理ルールと合っているかを確認します。高い場合をプラスとするのか、低い場合をプラスとするのか、幅が広い場合をプラスとするのかなど、項目によって意味が変わることがあります。XML上では単なる数値に見えても、その数値がどちら方向の差を示すのかを確認しなければ、判断を誤る可能性があります。


全角数字や余分なスペースにも注意が必要です。人が読む分には問題がなさそうに見えても、データとしては半角数字と全角数字が区別されることがあります。また、数値の前後に空白が入っていると、読み込み側でエラーになる場合や、文字列として扱われる場合があります。特に、手入力や貼り付けで作業したデータは、見えにくい空白や改行が混ざることがあります。


日付や時刻を含む場合も、形式の統一が必要です。年月日の区切り方、ゼロ埋めの有無、時刻の表記などが混在すると、後から並べ替えや検索を行うときに扱いにくくなります。TS出来形XMLの主役は測定値ですが、測定日や作成日などの情報も成果の確認に関わるため、形式をそろえておくことが望ましいです。


空欄、単位、数値形式の確認は、タグ構造そのものとは別の話に見えるかもしれません。しかし、XMLでは、タグが正しい場所にあっても、中身の値が適切でなければ実務上は使いづらいデータになります。タグ構造の確認とあわせて、値の形式がそろっているか、意味のある値が入っているかを確認することが重要です。


修正時はタグ単体ではなく前後関係まで確認する

TS出来形XMLでエラーや不一致が見つかったとき、該当するタグだけを修正すればよいと考えるのは危険です。XMLはタグ同士が階層や参照関係でつながっているため、一つの値を直したことで、別の項目との整合が崩れることがあります。修正時は、タグ単体ではなく、前後関係と関連項目まで確認することが基本です。


たとえば、測点名に誤りがあった場合、測点名のタグだけを修正しても十分とは限りません。同じ測点名が帳票側、測定データ側、写真やメモの管理情報、確認一覧などに使われている場合があります。XML内で複数回登場する名称の一部だけを直すと、同じ測点を指しているはずの情報が別々のものとして見えてしまいます。修正したい値が他の場所でも使われていないかを確認することが大切です。


設計値を修正する場合も同様です。設計値が変われば、差の値や判定結果にも影響する可能性があります。設計値だけを直して、差や判定が古いまま残っていると、帳票とXMLの内容が食い違います。出来形管理では、設計値、実測値、差、規格値、判定が一連の関係を持つため、どれか一つを修正した場合は、関連する項目をまとめて確認する必要があります。


工種や種別を修正する場合は、さらに広い範囲を見る必要があります。分類名を変更すると、その分類に属する測点や測定項目のまとまりも確認対象になります。ある測点だけが古い分類のまま残っていたり、別の工種に移動すべき項目が元の場所に残っていたりすると、構造上の不整合につながります。分類の修正は、単なる名称変更ではなく、データの所属を見直す作業でもあります。


XMLを直接編集する場合は、特に注意が必要です。開始タグと終了タグの片方だけを変更したり、コピーした範囲が途中で切れていたりすると、ファイル全体の構造が壊れることがあります。直接編集は、原因を細かく追える一方で、意図しない崩れを起こしやすい作業です。可能であれば、元データ側を修正して再出力し、XMLは確認用として扱うほうが安全です。どうしても直接編集する場合は、編集前のファイルを必ず保管し、編集後に構文確認と内容確認を行います。


修正履歴を残すことも重要です。誰が、いつ、どの項目を、なぜ修正したのかが分かる状態にしておくと、後から不一致が見つかったときに原因を追いやすくなります。特に、複数人で出来形データを扱う現場では、同じファイルを別々に修正してしまうリスクがあります。最新版の管理、修正前後の比較、提出用ファイルの固定などを運用ルールとして決めておくと、混乱を防ぎやすくなります。


修正後は、XMLだけでなく帳票や確認資料との整合も見ます。XML内では正しく見えても、帳票に出力したときに表示順が変わる、値が丸められる、項目名が省略されるといったことがあります。最終的に提出や説明に使う資料と整合しているかを確認することで、現場での説明時に慌てずに済みます。


TS出来形XMLの修正は、文字列を直す作業ではなく、関連するデータ全体の整合を保つ作業です。タグ単体に注目しすぎず、そのタグがどの親要素に属し、どの項目と関係し、帳票や測定データとどうつながっているかを確認することで、修正後の手戻りを減らせます。


TS出来形XMLを現場運用で扱いやすくするために

TS出来形XMLのタグ構造を理解しても、現場運用が整理されていなければ、毎回同じようなミスが発生します。XMLは最終的な出力形式の一つですが、実際には測定前の準備、現場での記録、データ整理、帳票確認、提出前チェックまでの流れ全体が品質に影響します。タグ構造でつまずかないためには、XMLだけを最後に確認するのではなく、日々の運用の中でデータを整えておくことが大切です。


まず、測定前に管理項目を整理しておきます。どの工種で、どの測点を、どの項目で管理するのかを決めずに測定を始めると、後からXMLにまとめる段階で名称や分類がばらつきます。現場では急な変更が起こることもありますが、基本となる測点名、工種名、項目名のルールがあれば、変更があっても整理しやすくなります。


次に、測定データを現場で記録する段階から、XML出力を意識しておくことが重要です。紙や表計算で一時的にメモを残す場合でも、後からどの測点に対応するのか分かるようにしておきます。測定者ごとに略称や表記が違うと、整理時に確認が必要になります。特に、似た名称の測点が複数ある現場では、名称だけでなく位置や断面との対応も確認できるようにしておくと安心です。


出力前には、帳票とXMLの元データが同じ状態になっているかを確認します。帳票だけを手修正している場合、XMLにはその修正が反映されないことがあります。反対に、元データを修正したのに帳票を再出力していない場合もあります。最終提出前には、どのデータを正とするのかを明確にし、帳票、XML、確認資料の整合を取る必要があります。


チェック作業は、担当者一人だけに任せるよりも、入力者と確認者を分けるほうが効果的です。入力した本人は、表記揺れや測点の取り違えに気づきにくいことがあります。別の人が、工事情報、工種情報、測点情報、測定値、判定、空欄の有無を順番に確認することで、見落としを減らせます。確認項目をあらかじめ決めておけば、担当者が変わっても一定の品質を保ちやすくなります。


ファイル名や保管場所のルールも重要です。TS出来形XMLは、再出力や修正が発生しやすいデータです。どれが最新なのか、どれが提出用なのか、どれが確認途中なのかが分からない状態になると、古いファイルを提出したり、修正前のXMLを参照したりするリスクがあります。作業中、確認済み、提出用の区分を明確にし、ファイル名にも日付や版数を入れるなど、現場内で迷わない運用にしておくことが望ましいです。


また、TS出来形XMLを扱う担当者が、必ずしもXMLに詳しいとは限りません。そのため、現場内では難しい専門用語だけで説明するのではなく、工事全体の情報、工種ごとのまとまり、測点ごとのまとまり、測定値のまとまりというように、実務に近い言葉で共有すると理解しやすくなります。タグ構造を完全に暗記する必要はありませんが、どの単位で情報がまとまっているかを把握しておけば、確認時の会話がスムーズになります。


TS出来形XMLの品質を高めるには、出力後のエラー対応だけでなく、測定から整理までの流れを見直すことが欠かせません。タグ構造の理解は、その流れを支える基礎です。工事情報、工種情報、測点情報、測定値の関係を現場全体で共有し、名称や数値形式をそろえ、修正履歴を残すことで、電子データとして扱いやすい出来形成果に近づきます。


現場での出来形管理は、測定そのものだけでなく、測定結果をどのように整理し、どのように確認し、どのように共有するかが重要です。TS出来形XMLのタグ構造を理解しておくと、データの不一致や提出前の手戻りを減らしやすくなります。製品名や特定サービスに頼った説明ではなく、提出条件、XMLの構造、帳票との整合、運用ルールを一つずつ確認する姿勢が、公開前のデータ確認でも現場運用でも役立ちます。


LRTKで現場の測量精度・作業効率を飛躍的に向上

LRTKシリーズは、建設・土木・測量分野における高精度なGNSS測位を実現し、作業時間短縮や生産性の大幅な向上を可能にします。国土交通省が推進するi-Constructionにも対応しており、建設業界のデジタル化促進に最適なソリューションです。

LRTKの詳細については、下記のリンクよりご覧ください。

 

製品に関するご質問やお見積り、導入検討に関するご相談は、

こちらのお問い合わせフォームよりお気軽にご連絡ください。ぜひLRTKで、貴社の現場を次のステージへと進化させましょう。

bottom of page