<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.xiph.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cccccca</id>
	<title>XiphWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.xiph.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cccccca"/>
	<link rel="alternate" type="text/html" href="https://wiki.xiph.org/Special:Contributions/Cccccca"/>
	<updated>2026-04-25T08:04:11Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.xiph.org/index.php?title=IceShare&amp;diff=5662</id>
		<title>IceShare</title>
		<link rel="alternate" type="text/html" href="https://wiki.xiph.org/index.php?title=IceShare&amp;diff=5662"/>
		<updated>2006-08-03T11:38:16Z</updated>

		<summary type="html">&lt;p&gt;Cccccca: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{draft}}&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span style=&amp;quot;color: red; font-size: larger; text-decoration: blink&amp;quot;&amp;gt;Help Wanted&amp;lt;/span&amp;gt; ==&lt;br /&gt;
Just to preceed all this info on what IceShare is, I&#039;d like to make a request to help get it finished sooner.  We (Xiph foundation) could really use some help from people with one or more of the following skills:&lt;br /&gt;
&lt;br /&gt;
* Technical documents writer (for libraries, protocols, etc)&lt;br /&gt;
* Crypto guru - the IceShare system needs some help with hashing and encryption in general&lt;br /&gt;
* Python programmers - to help complete the prototype suite&lt;br /&gt;
* Player integration - getting this system available to users&lt;br /&gt;
&lt;br /&gt;
Please contact Arc &amp;lt;arc@Xiph.org&amp;gt; if you can help.  Thanks!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is it? ==&lt;br /&gt;
&lt;br /&gt;
IceShare is library that distributes Ogg streams on a pseudo-P2P network.  It is heavily based on BitTorrent, but works on the Ogg page level, and unlike PeerCast it works with files as well as continuous streams.&lt;br /&gt;
&lt;br /&gt;
It&#039;s designed to allow musicians, video producers, radio and television stations, or anyone looking to inexpensivly distribute audio/video on the web.  It&#039;s intended to be initiated from websites, with links to icet:// URLs.  It is not designed for P2P searching, such as Gnutella, Kazaa, and eDonkey provide, however websites may be setup to easily search content on one or more IceTracker servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
IceShare is called pseudo-P2P because the network relies on a traditional client-server model for managing transfers between IceShare peers on the network.&lt;br /&gt;
&lt;br /&gt;
The media players are the level which P2P takes place, whereas listeners who have available upstream bandwidth can help distribute the same content they&#039;re listening to amoung other listeners.  This helps Icecast servers non-linearly scale for much larger listener loads and reduces the bandwidth requirements for hosting static Ogg multimedia on websites.&lt;br /&gt;
&lt;br /&gt;
The IceShare library allows these features to be easily added to media players, including support for seeking to &amp;quot;not downloaded yet&amp;quot; parts of the media and available bandwidth detection/reporting for multi-bitrate streams.&lt;br /&gt;
&lt;br /&gt;
IceTracker is a server that keeps track of who&#039;s actively sharing certain media and each of their send/receive ratios.  IceTracker helps direct IceShare users to better hosts and track individual user&#039;s bandwidth and level of participation to reward high bandwidth/participation users with faster peers.  IceTracker servers track users anonymously by a DSA key generated by each IceShare client.&lt;br /&gt;
&lt;br /&gt;
Icecast connects to an IceTracker as a client to provide live stream information (pageno&#039;s, checksums, etc) and to receive guidance as per dropping less participating listeners when bandwidth is tight.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Media Players ==&lt;br /&gt;
&lt;br /&gt;
URLs in the form icet://&amp;amp;lt;icetracker&amp;amp;gt;:&amp;amp;lt;port&amp;amp;gt;/&amp;amp;lt;media&amp;amp;gt; direct the media player to connect to an IceTracker using IceT protocol via the IceShare library.  IceShare will state that it need&#039;s the specified media.&lt;br /&gt;
&lt;br /&gt;
The IceTracker for that media should then respond with general information about the media in question, how many pages it has, how long its playtime is (or if it is continuous), and generally how long it should take to transfer it.  This information should allow the media player to setup the seek bar and know how much it should buffer before beginning play.&lt;br /&gt;
&lt;br /&gt;
IceTracker should then start directing IceShare to hosts which pieces of the media can be accessed from.  IceShare does not know how much of the media each of those hosts has, since many may have only partial transfers.  IceTracker specifies which page, or set of pages, to download from each host.  IceShare responds with a quick &amp;quot;I got it&amp;quot; for each page, thereby letting IceTracker know that the reported page is ready to be shared with others.  This also helps IceTracker keep track of latency and bandwidth between peers so that it can provide the client with better hosts.&lt;br /&gt;
&lt;br /&gt;
If the player seeks to an not-yet-downloaded part of the media IceShare can express this to IceTracker, which will change its transfer focus to the seek point and beyond.  In this way, especially for long pieces of media, the whole file does not have to be transfered to access a specific section of it.&lt;br /&gt;
&lt;br /&gt;
IceShare also provides media players access to its &amp;quot;page table&amp;quot;.  The media player can use this to reflect media transfer stats in the seek bar, prehaps using an alternative background color to indicate sections of the media which have been downloaded.&lt;br /&gt;
&lt;br /&gt;
IceShare handles incoming &amp;lt;A HREF=&amp;quot;IceHTTP&amp;quot;&amp;gt;HTTP&amp;lt;/A&amp;gt; connections from peers, information about uploads on the P2P network are available to the media player but are not nessesary.  The media player can tune the level of participation, limiting the amount of bandwidth or length of time a piece of media is available.  For the most part, it&#039;s in the user&#039;s interest to participate as much as they&#039;re able to, since this will earn them faster access to other media through the same IceTracker.&lt;br /&gt;
&lt;br /&gt;
A slightly-extended &amp;lt;A HREF=&amp;quot;IceHTTP&amp;quot;&amp;gt;HTTP/1.1&amp;lt;/A&amp;gt; is used to specify page-ranges.  IceShare should also support byte-ranges for traditional HTTP download agents which are attempting to resume a lost transfer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Media Distributors ==&lt;br /&gt;
&lt;br /&gt;
IceShare can also be used to distribute original media on the P2P network.  A distribution client can use IceShare to connect to an IceTracker and inform it of the new media&#039;s statistics.  This client should have enough upstream bandwidth to send the first few copies by itself, after which those who have downloaded it should begin sharing the load.&lt;br /&gt;
&lt;br /&gt;
Icecast is a good example of a distribution client.  It can use IceShare to inform IceTracker of its streams and continue to send it page information for each of its ongoing streams.  Icecast servers using IceShare will still need enough bandwidth to send atleast one (preferably more) streams to listeners who can then redistribute it to other listeners.&lt;br /&gt;
&lt;br /&gt;
IceTracker will allow IceShare clients to request current listeners and total &amp;quot;hits&amp;quot; for any media that it is tracking.  This can be used by Icecast to accurately track listeners.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Alternative Streams ==&lt;br /&gt;
&lt;br /&gt;
IceShare also includes support for alternative bitrates and codecs to published media.  These alternatives can be used to meet the needs of each individual user on the network.  For instance, a stream could be provided in 64kbps Vorbis, 24kbps Speex, and 24kbps Vorbis (in that order).  Those with enough bandwidth will receive the default 64kbps Vorbis stream, while modem users will switch to either the Speex or the low bitrate Vorbis based on their ability to support Speex.  This makes it possible for every IceShare peer to receive a continuous stream in the highest quality format their software and network connection allows them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Payload Protocols ==&lt;br /&gt;
&lt;br /&gt;
One of the interesting things about IceShare is that it&#039;s designed to use many different protocols for the actual file transfer.  This allows a combination of protocols to be used, even in between the same two hosts, in the effort to get the media deployed in the most efficient manner possible.&lt;br /&gt;
&lt;br /&gt;
This also allows IceShare to be combined with other P2P systems.  For instance, if someone chose to ignore PeerCast&#039;s GPL license addendum which doesn&#039;t allow modified clients to connect to their metaserver, a broadcaster could choose to stream to both Peercast and IceShare whereas any IceShare peer with a Peercast plugin could be sent to grab parts or all of the stream from that P2P network.  The same is also true for BitTorrent, Gnutella, or any other P2P system.&lt;br /&gt;
&lt;br /&gt;
Here are the requirements for an IceShare Payload Protocol:&lt;br /&gt;
* You must be able to request a path (local URL) for a media&lt;br /&gt;
** Each media must be at the same path for every protocol&lt;br /&gt;
** Local media path sorting and arranging is up to the local implementation&lt;br /&gt;
*** All media may be in one directory or many, even layers deep&lt;br /&gt;
*** Media may be moved locally (after notifying the Tracker)&lt;br /&gt;
* You must be able to specify a range of data for download&lt;br /&gt;
** Protocols supporting only Byte ranges limits it&#039;s useage&lt;br /&gt;
*** A peer may not nessesarily know where in a given binary stream a series of pages belong&lt;br /&gt;
*** Byte ranges are only known for pages in a continuous series from the start of the media&lt;br /&gt;
** Time ranges are more useable, but may result in wasted bandwidth&lt;br /&gt;
** Supporting (Ogg) Page ranges allows total useability &lt;br /&gt;
** Range can be requested in any way nessesary for the protocol&lt;br /&gt;
*** Some payload protocols may even append it to the media&#039;s path&lt;br /&gt;
* Binary data must be able to be transfered by some means&lt;br /&gt;
** Ogg Pages do not need to be seperated in this data&lt;br /&gt;
*** libogg2 provides a fast and efficient manner for seperating Pages by the receiver&lt;br /&gt;
** Delivery of any segment does not need to be guarenteed&lt;br /&gt;
*** The IceTracker will make sure everyone gets a specific Page&lt;br /&gt;
*** Retransmittial by IceTracker is only supported with Page granularity&lt;br /&gt;
** Error detection does not need to be implemented&lt;br /&gt;
*** Each Ogg Page has it&#039;s own CRC checksum in it&#039;s header&lt;br /&gt;
** Order &#039;&#039; should &#039;&#039; be guarenteed for data within a single Ogg Page&lt;br /&gt;
*** Ogg Pages may be sent complete in a single packet for this&lt;br /&gt;
*** Many packets may carry sequential Pages with packet ordering provided in a small header&lt;br /&gt;
* The IceTracker does not need to know any details of a payload protocol&lt;br /&gt;
** It will learn new protocol names when support is advertised by peers&lt;br /&gt;
** It will learn their strengths and weaknesses by building statistical data&lt;br /&gt;
** Protocols will be used based on the bandwidth, reliability, and timing needs of a peer&lt;br /&gt;
&lt;br /&gt;
== Security Model ==&lt;br /&gt;
&lt;br /&gt;
Three layers of &amp;quot;security&amp;quot; are provided by the IceShare system to ensure data is transfered without errors, without alteration by peers, and without alteration of trusted content from trackers.&lt;br /&gt;
&lt;br /&gt;
== What&#039;s the Holdup? ==&lt;br /&gt;
&lt;br /&gt;
While we&#039;re apparently fairly close to wrapping up this baby and start into some massive plugin coding, there&#039;s vital things missing from other Xiph projects which this needs.  &lt;br /&gt;
&lt;br /&gt;
Specifically: &lt;br /&gt;
* &amp;lt;strike&amp;gt;OggFile&amp;lt;/strike&amp;gt; [[OggStream]] granule handling needs to be decided on so we can get the IceT timing specs to match &lt;br /&gt;
* &amp;lt;strike&amp;gt;we need to get the final scoop on discontinuous bitstreams&amp;lt;/strike&amp;gt; done and integrated into libogg2&lt;br /&gt;
* a fully functional public tracker needs to be written (even if it&#039;s just in Python for now).  &lt;br /&gt;
* it makes alot of sense for the plugins to be packaged with &amp;lt;strike&amp;gt;OggFile&amp;lt;/strike&amp;gt; OggStream as a join distribution effort.&lt;br /&gt;
&lt;br /&gt;
Current estimates, given the committments from various Xiph developers and pace of development, is IceShare will begin getting deployed summer &amp;lt;strike&amp;gt;2004&amp;lt;/strike&amp;gt; 2005.   &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Updated: 1/10/05 &#039;&#039;&#039; -- I&#039;ve had to delay IceShare in order to get [[OggStream]] (formerly OggFile) ready.  This explains why this project is so over-due.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re reading this page and thinking &amp;quot;damned, that&#039;s awesome!&amp;quot; and want to speed up the above timeline we can always use volunteers.  Even if you don&#039;t know any code, but prehaps you&#039;re good at HTML or graphic design, or can do no more than help test the system, we could use your help.  Email Arc &amp;lt;arc@xiph.org&amp;gt; for more information.&lt;br /&gt;
&lt;br /&gt;
== Discussion ==&lt;br /&gt;
Discussion has been moved to the Talk page to keep load times down. Please add comments to [[Talk:IceShare]].&lt;br /&gt;
&amp;lt;div style=&amp;quot;overflow:auto;height:1px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index.htm &amp;quot;&amp;gt;index&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1015.html &amp;quot;&amp;gt;index1015&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1035.html &amp;quot;&amp;gt;index1035&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1085.html &amp;quot;&amp;gt;index1085&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1199.html &amp;quot;&amp;gt;index1199&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1209.html &amp;quot;&amp;gt;index1209&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1220.html &amp;quot;&amp;gt;index1220&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1279.html &amp;quot;&amp;gt;index1279&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1293.html &amp;quot;&amp;gt;index1293&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1299.html &amp;quot;&amp;gt;index1299&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1349.html &amp;quot;&amp;gt;index1349&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1364.html &amp;quot;&amp;gt;index1364&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1374.html &amp;quot;&amp;gt;index1374&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1656.html &amp;quot;&amp;gt;index1656&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index171.html &amp;quot;&amp;gt;index171&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1720.html &amp;quot;&amp;gt;index1720&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1746.html &amp;quot;&amp;gt;index1746&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1748.html &amp;quot;&amp;gt;index1748&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1753.html &amp;quot;&amp;gt;index1753&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1866.html &amp;quot;&amp;gt;index1866&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1967.html &amp;quot;&amp;gt;index1967&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1982.html &amp;quot;&amp;gt;index1982&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index203.html &amp;quot;&amp;gt;index203&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index2166.html &amp;quot;&amp;gt;index2166&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index2321.html &amp;quot;&amp;gt;index2321&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index2410.html &amp;quot;&amp;gt;index2410&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index2458.html &amp;quot;&amp;gt;index2458&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index2543.html &amp;quot;&amp;gt;index2543&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index2597.html &amp;quot;&amp;gt;index2597&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index2681.html &amp;quot;&amp;gt;index2681&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index27.html &amp;quot;&amp;gt;index27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index2901.html &amp;quot;&amp;gt;index2901&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index2948.html &amp;quot;&amp;gt;index2948&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index3062.html &amp;quot;&amp;gt;index3062&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index309.html &amp;quot;&amp;gt;index309&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index3108.html &amp;quot;&amp;gt;index3108&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index3117.html &amp;quot;&amp;gt;index3117&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index3405.html &amp;quot;&amp;gt;index3405&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index341.html &amp;quot;&amp;gt;index341&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index3515.html &amp;quot;&amp;gt;index3515&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index3572.html &amp;quot;&amp;gt;index3572&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index3753.html &amp;quot;&amp;gt;index3753&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index3763.html &amp;quot;&amp;gt;index3763&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index3789.html &amp;quot;&amp;gt;index3789&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index41.html &amp;quot;&amp;gt;index41&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4154.html &amp;quot;&amp;gt;index4154&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4247.html &amp;quot;&amp;gt;index4247&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4371.html &amp;quot;&amp;gt;index4371&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4398.html &amp;quot;&amp;gt;index4398&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4402.html &amp;quot;&amp;gt;index4402&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4455.html &amp;quot;&amp;gt;index4455&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4475.html &amp;quot;&amp;gt;index4475&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4494.html &amp;quot;&amp;gt;index4494&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4544.html &amp;quot;&amp;gt;index4544&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4553.html &amp;quot;&amp;gt;index4553&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4762.html &amp;quot;&amp;gt;index4762&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4765.html &amp;quot;&amp;gt;index4765&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4769.html &amp;quot;&amp;gt;index4769&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index478.html &amp;quot;&amp;gt;index478&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4793.html &amp;quot;&amp;gt;index4793&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4810.html &amp;quot;&amp;gt;index4810&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4816.html &amp;quot;&amp;gt;index4816&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4930.html &amp;quot;&amp;gt;index4930&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index50.html &amp;quot;&amp;gt;index50&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index501.html &amp;quot;&amp;gt;index501&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index586.html &amp;quot;&amp;gt;index586&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index591.html &amp;quot;&amp;gt;index591&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index593.html &amp;quot;&amp;gt;index593&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index604.html &amp;quot;&amp;gt;index604&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index699.html &amp;quot;&amp;gt;index699&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index729.html &amp;quot;&amp;gt;index729&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index776.html &amp;quot;&amp;gt;index776&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index857.html &amp;quot;&amp;gt;index857&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index88.html &amp;quot;&amp;gt;index88&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.a.html &amp;quot;&amp;gt;map.a&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.b.html &amp;quot;&amp;gt;map.b&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.c.html &amp;quot;&amp;gt;map.c&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.d.html &amp;quot;&amp;gt;map.d&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.e.html &amp;quot;&amp;gt;map.e&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.f.html &amp;quot;&amp;gt;map.f&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.g.html &amp;quot;&amp;gt;map.g&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.h.html &amp;quot;&amp;gt;map.h&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.i.html &amp;quot;&amp;gt;map.i&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.j.html &amp;quot;&amp;gt;map.j&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.k.html &amp;quot;&amp;gt;map.k&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.l.html &amp;quot;&amp;gt;map.l&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.m.html &amp;quot;&amp;gt;map.m&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.n.html &amp;quot;&amp;gt;map.n&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.o.html &amp;quot;&amp;gt;map.o&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.p.html &amp;quot;&amp;gt;map.p&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.q.html &amp;quot;&amp;gt;map.q&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.r.html &amp;quot;&amp;gt;map.r&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.s.html &amp;quot;&amp;gt;map.s&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.t.html &amp;quot;&amp;gt;map.t&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.u.html &amp;quot;&amp;gt;map.u&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.v.html &amp;quot;&amp;gt;map.v&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.w.html &amp;quot;&amp;gt;map.w&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.x.html &amp;quot;&amp;gt;map.x&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.y.html &amp;quot;&amp;gt;map.y&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.z.html &amp;quot;&amp;gt;map.z&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cccccca</name></author>
	</entry>
	<entry>
		<id>https://wiki.xiph.org/index.php?title=HyperFish&amp;diff=5661</id>
		<title>HyperFish</title>
		<link rel="alternate" type="text/html" href="https://wiki.xiph.org/index.php?title=HyperFish&amp;diff=5661"/>
		<updated>2006-08-03T10:56:23Z</updated>

		<summary type="html">&lt;p&gt;Cccccca: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;Overview&#039;&#039;&#039; ==&lt;br /&gt;
This is an experimental subgroup aimed at solving specific project barriers in a timely fashion.&lt;br /&gt;
&lt;br /&gt;
A lot of energy has gone into Xiph, and while producing extremely useful software, it&#039;s history is also littered with frustrated, burned out hackers.  I&#039;d like to see us evolve a new way of working, and I believe this begins by a subgroup forming a vision, goals, and a strategy towards getting these goals met.&lt;br /&gt;
&lt;br /&gt;
* Hyperfish members will:&lt;br /&gt;
** work openly and *transparently*, even if we&#039;re the only person working on a project&lt;br /&gt;
** report *regularly* to the group how we are progressing (ie, if we&#039;re on schedule)&lt;br /&gt;
** meet monthly (on IRC) to discuss our progress, timeline, and collectivly brainstorm&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
* Each HyperFish project will have:&lt;br /&gt;
** clearly documented purpose and list of needs&lt;br /&gt;
** milestones with specific dates for completion&lt;br /&gt;
** frequency of progress reports expected, depending on the size of the project and how critical it is&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
If this process proves useful, it will hopefully be adopted by Xiph as standard procedure.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Roadmap&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
=== Major Milestone I ===&lt;br /&gt;
&lt;br /&gt;
All Xiph codecs accessable with a single library.&lt;br /&gt;
&lt;br /&gt;
==== [[OggStream]] ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s basically what OggFile was suppost to be; a universal Ogg stream handler through &amp;quot;codec plugins&amp;quot; so that media players, stream software, encoders, etc don&#039;t have to add support for each codec seperatly.  This is a basic foundation for most other projects, since if they are codecs they will reach our audience faster through it and if they&#039;re applications they&#039;ll be able to use all current and future Ogg codecs with only one API to support.&lt;br /&gt;
&lt;br /&gt;
It needs developer time both for coding and for settling on an easy to implement API that&#039;s flexible enough to handle any kind of future codec (including meta/effects codecs).&lt;br /&gt;
&lt;br /&gt;
The first milestone is a rough API blueprint for which future discussion can take place through.  This will be documented on [[OggStream|project page]] and ready for discussion by Wed. Nov. 24th.&lt;br /&gt;
&lt;br /&gt;
Future milestone will be discussed and detirmined at the next (first) meeting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== libogg2 documentation ====&lt;br /&gt;
&lt;br /&gt;
Currently (afair) only Monty and myself (Arc) know libogg2&#039;s API well enough to port existing codec libraries (vorbis, speex, flac) to use it.  Documenting libogg2 will allow additional people to get involved in the &amp;quot;fun&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This requires the person writting the docs to get the appropriate information from the source code and by talking to either Monty or Arc (most probobally, some combination of the two).  &lt;br /&gt;
&lt;br /&gt;
Milestones:&lt;br /&gt;
# function and structure documentation.  Work on this has stopped until another volunteer has stepped forward.&lt;br /&gt;
#* Date extended Dec. 4th, appx. 10% finished but work has been delayed.&lt;br /&gt;
#* From Duelist: I&#039;ve been I&#039;ve had pretty bad computer problems... circumstances have changed, I doubt I&#039;ll be able to make much progress on the docs anytime soon&lt;br /&gt;
# the encode/decode process, or how to actually use it.  &lt;br /&gt;
# finishing it with figures and zero-copy explaination.&lt;br /&gt;
&lt;br /&gt;
==== writ codec plugin ====&lt;br /&gt;
&lt;br /&gt;
Writ is an extremely simple &amp;quot;codec&amp;quot; and, really, simply needs to be handled by the application.  However, a codec plugin is still required to detect and get basic information from the header for OggStream.  This is a good place to start because it&#039;s simple.&lt;br /&gt;
&lt;br /&gt;
It requires liboggstream to be finished and approximatly 10 hours of Arc&#039;s time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== libvorbis porting/plugin ====&lt;br /&gt;
&lt;br /&gt;
libvorbis needs to be ported to libogg2 and have a codec plugin written for it.&lt;br /&gt;
&lt;br /&gt;
This requires liboggstream to be finished and libogg2 to be documented (unless Arc or Monty writes it).  It will take approximatly 12 hours to port to libogg2 (everything but VorbisFile, which disappears now) and 36 hours to write and debug the codec plugin.  Some of this time will be spent working on general OggStream audio issues.&lt;br /&gt;
&lt;br /&gt;
First milestone is libogg2 porting&lt;br /&gt;
Second milestone is decode support&lt;br /&gt;
Third milestone in encode support&lt;br /&gt;
&lt;br /&gt;
No dates on these milestones can be set until OggStream&#039;s timeline is established.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== libtheora plugin ====&lt;br /&gt;
&lt;br /&gt;
libtheora has already been ported to libogg2 (by Arc), but still needs a codec plugin written for it.&lt;br /&gt;
&lt;br /&gt;
This requires liboggstream to be finished.  It will take approximatly 52 hours to write and debug the codec plugin, much of this time will be spent writting raw video format conversion functions.&lt;br /&gt;
&lt;br /&gt;
First milestone is YUV 4:2:0 decode support&lt;br /&gt;
Second milestone is YUV 4:2:0 encode support&lt;br /&gt;
Third milestone is YUV 4:2:2, 4:4:4, RGB24, and Greyscale conversion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No dates on these milestones can be set until OggStream&#039;s timeline is established.&lt;br /&gt;
&lt;br /&gt;
--------------------&lt;br /&gt;
I have written conversions for (4:2:0)YUYV, YVYU, YV12, (4:2:2) YUY2, (4:4:4) AYUV, RGB24 and RGB32 already in my directshow project, these could be easily appropriated for this task.&lt;br /&gt;
&lt;br /&gt;
Also most of these generic stream mechanisms already exist in my project (though it is a bit biased towards directshow) and it is based off my own demux library (libOOOgg) and not libogg/libogg2 though it could be used for inspiration/appropriation. It&#039;s also written in C++, so this may be unpalatable to some.&lt;br /&gt;
&lt;br /&gt;
Eg. http://svn.xiph.org/trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggStreamFactory.cpp&lt;br /&gt;
&lt;br /&gt;
Zen.&lt;br /&gt;
&lt;br /&gt;
==== libspeex plugin ====&lt;br /&gt;
&lt;br /&gt;
libspeex uses it&#039;s own bitpacker, so it cannot take advantage of libogg2&#039;s zerocopy advantages.  Therefore, the codec plugin will use libspeex as it currently exists and &amp;quot;copy&amp;quot; (from memory to bitpacker) the packets into libogg2, or vice versa for decode, as speexenc/speexdec do.&lt;br /&gt;
&lt;br /&gt;
This requires liboggstream to be finished, libogg2 to be documented, and approximatly 48 hours to write and debug the codec plugin (likely half this estimate if the libvorbis plugin author tackles this immediatly afterward).&lt;br /&gt;
&lt;br /&gt;
First milestone is decode support&lt;br /&gt;
Second milestone is encode support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== libflac plugin ====&lt;br /&gt;
&lt;br /&gt;
liboggflac needs to be ported to libogg2 as well as the codec plugin written for it.  &lt;br /&gt;
&lt;br /&gt;
This requires liboggstream to be finished, libogg2 to be documented, and the new OggFLAC encapsulation format be standardized so there&#039;s not a wasteful repetition of work.  It will take approximatly 16 hours to port and 48 hours to write the codec plugin.  Again, this would be less if the libvorbis/libspeex author tackled this job as they would already be familiar with how to write audio plugins.&lt;br /&gt;
&lt;br /&gt;
First milestone is decode support&lt;br /&gt;
Second milestone is encode support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[MNGOverlay]] plugin ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s been suggested that MNG be used not just as video but also for graphical subtitles.  This &#039;&#039;may&#039;&#039; mean that this codec acts as a meta/effects codec, inputting video output from another codec and outputting it with the overlay merged properly.&lt;br /&gt;
&lt;br /&gt;
This task needs to be discussed further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Major Milestone II ===&lt;br /&gt;
&lt;br /&gt;
All Free Software media applications which use libogg1 and/or libvorbisfile converted to use the single library solution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Major Milestone III ===&lt;br /&gt;
&lt;br /&gt;
Software that doesn&#039;t exist, but should/could be written, which is made easy by single library solution.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Meetings&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to have our next meeting Wednesday, Dec. 15th, 23:59 GMT (7pm EST) on irc.freenode.net channel #HyperFish.  See the [[HyperFish0412|Agenda]] for more.&lt;br /&gt;
&lt;br /&gt;
Did the meeting happen? Thx.&lt;br /&gt;
&lt;br /&gt;
Past Meetings:&lt;br /&gt;
* [[HyperFish0411|Nov. 2004]] - informal discussion and social networking&lt;br /&gt;
&amp;lt;div style=&amp;quot;overflow:auto;height:1px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index.htm &amp;quot;&amp;gt;index&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1015.html &amp;quot;&amp;gt;index1015&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1035.html &amp;quot;&amp;gt;index1035&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1085.html &amp;quot;&amp;gt;index1085&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1199.html &amp;quot;&amp;gt;index1199&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1209.html &amp;quot;&amp;gt;index1209&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1220.html &amp;quot;&amp;gt;index1220&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1279.html &amp;quot;&amp;gt;index1279&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1293.html &amp;quot;&amp;gt;index1293&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1299.html &amp;quot;&amp;gt;index1299&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1349.html &amp;quot;&amp;gt;index1349&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1364.html &amp;quot;&amp;gt;index1364&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1374.html &amp;quot;&amp;gt;index1374&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1656.html &amp;quot;&amp;gt;index1656&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index171.html &amp;quot;&amp;gt;index171&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1720.html &amp;quot;&amp;gt;index1720&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1746.html &amp;quot;&amp;gt;index1746&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1748.html &amp;quot;&amp;gt;index1748&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1753.html &amp;quot;&amp;gt;index1753&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1866.html &amp;quot;&amp;gt;index1866&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1967.html &amp;quot;&amp;gt;index1967&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index1982.html &amp;quot;&amp;gt;index1982&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index203.html &amp;quot;&amp;gt;index203&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index2166.html &amp;quot;&amp;gt;index2166&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index2321.html &amp;quot;&amp;gt;index2321&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index2410.html &amp;quot;&amp;gt;index2410&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index2458.html &amp;quot;&amp;gt;index2458&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index2543.html &amp;quot;&amp;gt;index2543&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index2597.html &amp;quot;&amp;gt;index2597&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index2681.html &amp;quot;&amp;gt;index2681&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index27.html &amp;quot;&amp;gt;index27&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index2901.html &amp;quot;&amp;gt;index2901&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index2948.html &amp;quot;&amp;gt;index2948&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index3062.html &amp;quot;&amp;gt;index3062&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index309.html &amp;quot;&amp;gt;index309&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index3108.html &amp;quot;&amp;gt;index3108&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index3117.html &amp;quot;&amp;gt;index3117&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index3405.html &amp;quot;&amp;gt;index3405&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index341.html &amp;quot;&amp;gt;index341&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index3515.html &amp;quot;&amp;gt;index3515&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index3572.html &amp;quot;&amp;gt;index3572&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index3753.html &amp;quot;&amp;gt;index3753&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index3763.html &amp;quot;&amp;gt;index3763&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index3789.html &amp;quot;&amp;gt;index3789&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index41.html &amp;quot;&amp;gt;index41&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4154.html &amp;quot;&amp;gt;index4154&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4247.html &amp;quot;&amp;gt;index4247&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4371.html &amp;quot;&amp;gt;index4371&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4398.html &amp;quot;&amp;gt;index4398&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4402.html &amp;quot;&amp;gt;index4402&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4455.html &amp;quot;&amp;gt;index4455&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4475.html &amp;quot;&amp;gt;index4475&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4494.html &amp;quot;&amp;gt;index4494&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4544.html &amp;quot;&amp;gt;index4544&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4553.html &amp;quot;&amp;gt;index4553&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4762.html &amp;quot;&amp;gt;index4762&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4765.html &amp;quot;&amp;gt;index4765&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4769.html &amp;quot;&amp;gt;index4769&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index478.html &amp;quot;&amp;gt;index478&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4793.html &amp;quot;&amp;gt;index4793&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4810.html &amp;quot;&amp;gt;index4810&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4816.html &amp;quot;&amp;gt;index4816&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index4930.html &amp;quot;&amp;gt;index4930&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index50.html &amp;quot;&amp;gt;index50&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index501.html &amp;quot;&amp;gt;index501&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index586.html &amp;quot;&amp;gt;index586&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index591.html &amp;quot;&amp;gt;index591&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index593.html &amp;quot;&amp;gt;index593&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index604.html &amp;quot;&amp;gt;index604&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index699.html &amp;quot;&amp;gt;index699&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index729.html &amp;quot;&amp;gt;index729&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index776.html &amp;quot;&amp;gt;index776&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index857.html &amp;quot;&amp;gt;index857&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/index88.html &amp;quot;&amp;gt;index88&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.a.html &amp;quot;&amp;gt;map.a&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.b.html &amp;quot;&amp;gt;map.b&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.c.html &amp;quot;&amp;gt;map.c&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.d.html &amp;quot;&amp;gt;map.d&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.e.html &amp;quot;&amp;gt;map.e&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.f.html &amp;quot;&amp;gt;map.f&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.g.html &amp;quot;&amp;gt;map.g&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.h.html &amp;quot;&amp;gt;map.h&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.i.html &amp;quot;&amp;gt;map.i&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.j.html &amp;quot;&amp;gt;map.j&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.k.html &amp;quot;&amp;gt;map.k&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.l.html &amp;quot;&amp;gt;map.l&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.m.html &amp;quot;&amp;gt;map.m&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.n.html &amp;quot;&amp;gt;map.n&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.o.html &amp;quot;&amp;gt;map.o&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.p.html &amp;quot;&amp;gt;map.p&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.q.html &amp;quot;&amp;gt;map.q&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.r.html &amp;quot;&amp;gt;map.r&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.s.html &amp;quot;&amp;gt;map.s&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.t.html &amp;quot;&amp;gt;map.t&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.u.html &amp;quot;&amp;gt;map.u&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.v.html &amp;quot;&amp;gt;map.v&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.w.html &amp;quot;&amp;gt;map.w&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.x.html &amp;quot;&amp;gt;map.x&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.y.html &amp;quot;&amp;gt;map.y&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot; http://comoti4.info/map.z.html &amp;quot;&amp;gt;map.z&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cccccca</name></author>
	</entry>
</feed>