What have been the latest developments in the stem cell controversy?
Political pressure to expand the level of government-funded stem cell research has increased amid ongoing reports of the potential medical efficacy of such treatments. Congress passed legislation authorizing such expansion but President Bush vetoed the legislation based his religious convictions. There is some indication from scientific advances of the improved potential of non-embryonic stem cells.
The medical possibilities which might result from stem cell research continues to excite the scientific community. There are some indications that progress is being made in developing alternatives to the use of embryos in pursuing this technology. If this happens, most political/ethical concerns regarding the matter will be resolved. The competitive aspects of this research were evidence by recent revelations that a South Korean scientist had faked research that had purported replicated individual DNA.
The stem cell controversy is an issue in the 2008 Presidential campaign in part because of the recent death of former President Ronald Reagan from Alzheimer's disease. Some of his family members have been vocal advocates of the potential of stem cell research to provide treatments for such conditions and his son spoke at the Democratic convention on the subject. Recent polls indicate that the research proposals have widespread public support even among Republican voters. Voters in California recently approved a ballot measure to establish a public funded stem cell research program in that state. As in past election years, the 2008 Democratic platform supports funding this research. The 2008 Republican platform continues to reflect the party's religious based opposition to embryonic stem cell research. There are indications that some European and Asian countries have the green light to actively pursue this research.
On March 9, 2009, President Obama issued an executive order removing the restriction on federal funding for newer stem cell lines. Researchers are still limited by budget language prohibiting federal funding for research involving destroyed or discarded embryos. But researchers can use federal funds on new lines which had been created with private funds or state funding.
For purposes of the current controversy, these cells are known as "pluripotent stem cells". These are specialized cells which are formed at the very beginning stages of human embryo development and are part of what is known as a blastocyst (see illustration). These cells are unique because at this stage in development they are not specialized and have the capacity to develop into 130 different human tissue types.
Why are these stem cells important to medical scientists?
Although research is only in the early stages, there is a growing consensus among researchers that many very effective medical treatments can be realized through cloning stem cells. This is because these cells can be made to replicate specific human tissues. These cells offer the possibility of a renewable source of replacement cells and tissue to treat a myriad of diseases, conditions, and disabilities including Parkinson's and Alzheimer's diseases, spinal cord injury, stroke, burns, heart disease, diabetes, osteoarthritis and rheumatoid arthritis. There is almost no realm of medicine that might not be touched by this innovation.
Current research projects have obtained stem cells from tissue which has been removed during terminated pregnancies or from embryos produced by in- vitro fertilization clinics. Once isolated, the cells can be grown up in the laboratory and stored for future use. Each reservoir of cells, derived from a single embryo, is known as a cell line. A more reliable supply would be obtained by copying or cloning embryos specifically for their stem cells.
The controversy involves federal funding of research involving stem cell lines made from destroyed or discarded embryos. There are no restrictions regarding this research involving private funding except in a few states. In addition, twelve states have provided funding for this research.
Because stem cells are obtained from destroyed embryos, the concerns are similar to those surrounding abortion. Most opponents of legal abortions also oppose this research. In addition, the possibility that cell lines could be developed from cloned embryos raises ethical concerns associated with propriety of human cloning. The most prominent global opponent of this research is the Catholic Church although many individual American Catholics do not take this view. (Click to see chart) In fact the official Catholic position is also opposed to in vitro fertilization because it is unnatural and because it results in the production of embryos which are not used. During President Bush's visit to Europe, the Pope urged the President not to support funding of this research.
In a nationally televised speech on August 9, 2001, President Bush ended months of deliberation on the issue of federal funding of stem cell research. He stated that the Administration will support continued funding for research on stem cell lines which have already been extracted. He stated that 65 cell lines already exist which is sufficient for present research purposes. This had been a difficult issue for the Bush Administration because of a campaign pledge to end such funding. The decision has produced a predictably mixed reaction from those advocating a total ban on such research. The Gallup Poll following the decision was supportive but also indicated that the public had a limited understanding of the issue .
How will the decision impact U. S. research?
Is there stem cell research that does not present such ethical dilemmas?
Yes. There is ongoing research involving adult stem cells as well as stem cells extracted from umbilical tissue. Already this research has resulted in some effective experimental treatments for certain conditions. Some animal research suggests that techniques could be developed to make adult stem cells from the same specialized tissues that embryonic stem cells do.
In many countries, policies regarding stem cell research are only now being developed. The United States policy, which is primarily involved with the issue of federal funding, is not overly restrictive when compared to many policies which do presently exist. In February 2004, South Korean scientists reported that they had been successful in cloning human embryos for 30 days and then extracting stem cells. Several months later it became apparent that this claim was fraudulent. This reported scientific advance was condemned by religious leaders and has renewed the call for international regulation. Recently scientists in Japan and Great Britain have taken steps to pursue human cloning research as well.
How do Democrats and Republicans stand on this issue?
As indicated by the Congressional votes, Democrats generally tend to support funding of this new technology for medical research purposes. The Republican party is divided on this issue.


Control advance is the appeal of a home when seen from the road. A portion of the greatest factors in check request are the front passage, finishing, the state of the paint and general support of the home.
Homes with high control bid charge higher costs and set aside less opportunity to offer. Regardless of whether you are not wanting to offer your home at any point in the near future, a new and inviting outside is a magnificent thing to return home to every day.
In the event that you are on a financial plan there are approaches to enhance your home's control bid without using up every last cent. Down underneath are a few plans to rouse a couple of changes around your home. They should be possible at the same time or you can take as much time as is needed making enhancements at your pace.
Supplanting an obsolete entryway can be exactly what your home needs. Not exclusively will it change the presence of the house yet it might likewise spare you cash over the long haul.
More seasoned entryways can enable a lot of air to go through in the mid year and winter. A drafty entryway can let ventilated air go through in the late spring and permit the chilly air in the winter to top off in your home.
In each of these conditions your power and warming bills can increment in light of the fact that your aeration and cooling system and radiator must work twice as difficult to balance out the temperatures.
2. Paint the front entryway.
Adding a fly of shading to your front entryway can be tremendously cheering. On the off chance that your entryway isn't mature enough to supplant or you like the present entryway you have including some shading can be only the thing you require.
Your house is your palace and you can modify it to influence it to mirror your taste and qualities. Arranging is one of the main things individuals see strolling up to a house. You can include control claim by expelling undesirable trees, including some local blooms, or possibly some delicate lighting to make your home welcoming around evening time.
You can likewise give your home a brisk cosmetic touch up by Cleaning up your yard, cutting the garden, trimming hedges, and clearing the means.
A crisp paint work has the ability to thoroughly change the look of your home in less time and for less money than some other renovating venture. Another layer of paint will likewise shield your home from the sun, wind and rain. Appropriately connected, new paint should keep going for a decent 15 years, if you utilize top-quality materials. It is savvy to counsel with an expert to guarantee a top notch complete to your home.
Nothing looks more terrible from the check like abnormal canals, broken screens, missing blocks from the front advances, or peeling paint. The uplifting news is there are some upkeep tips underneath that can drastically help enhance the look of your home.
Refasten or supplant listing drains.
Supplant or Repoint blocks that have lost their mortar.
Reseal any splits in the black-top and dividers.
Just by influencing a couple of these acclimations to can expand your home estimation by at least 10%!


text:
Tomi Strock is an American politician and a Republican member of the Wyoming House of Representatives representing the 6th district since January 10, 2023.

Political career

Strock ran against incumbent Republican representative Aaron Clausen in the Republican primary on August 16, 2022, and narrowly defeated Clausen by 56 votes with 51% of the vote. She then won the general election on November 8, 2022, defeating independent candidate Bruce Jones and Democratic nominee Hank Szramkowski with 64% of the vote.

References

External links
Profile from Ballotpedia

Living people
Republican Party members of the Wyoming House of Representatives
People from Douglas, Wyoming
Women state legislators in Wyoming
21st-century American politicians
Year of birth missing (living people)

redpajama_set_name: RedPajamaWikipedia


text:
104 Lockhaven Dr. | Houston, TX 77073-5500
B & W Copiers
Supplies Look-up List
Navigation Home About – Industries We Serve Our Products – Color Copiers – B & W Copiers – Plotters / Wide Format Printers – Label Printers – Printers – Fax Machines – Software Solutions – Scanners – Toner – Supplies Look-up List Quote Request Contact Us 281-443-2996 Request Service About Service Associations News & Events Testimonials
Category Archives: "Blog"
Copy machine in Houston, Humble, Katy and Tomball, TX
Jeremy Dalton October 5, 2016
A copy machine that is much more than a copy machine Your copy machine plays a pivotal role in your office workflow and production. When you consider that today a copy machine is most likely a multi-function device, its importance is more pronounced. That is why you want a copy machine that is reliable, fast
Spot the Space Station
James Snelling September 28, 2016
The International Space Station will be doing a visible pass over Houston's sky tonight. It's an awe inspiring reminder to see what mankind can achieve when we all work together. Time: Fri Sep 30 7:31 PM, Visible: 3 min, Max Height: 42°, Appears: 40° above WNW, Disappears: 11° above NNE
Copier service in Conroe, Houston, Humble and Tomball, TX
Jeremy Dalton September 28, 2016
Copier service can prevent future problems If you need copier service in Houston, then you need look no further than OSOT (Office Systems of Texas). Modern day copiers such as those made by Epson and Konica Minolta are very reliable and don't break down often. However, they are complex machines and things can go wrong.
I recently heard a quote
Kim Reese September 20, 2016
I recently heard a quote by Antoine de Saint-Exupery that states, "A goal without a plan is just a wish". I don't think I've ever heard something so true. Such a simple phrase with such magnitude behind it. It seems, lately, the younger generations feel so entitled to everything. They don't understand hard work, planning
From George
George Peckham September 19, 2016
The big news story in the office systems industry this past week was a significant one, HP Inc announced it would acquire Samsung's printer business in a deal valued at $1.05 billion. The deal is expected to close within the next 12 months. HP has long relied on Canon to produce its' printer engines and
All the Olympians Live In Texas
Shana Melancon September 14, 2016
Well… not all of them but, over 100 Olympians that have competed in the 2016 Summer Olympic Games in Brazil have ties to the great state of Texas. Some athletes were representing different countries but, have gone to college here in Texas like Janine Beckie, who was representing Canada's Women's Soccer Team. Janine attended Texas
End Of Summer???
Bill de Alejandro September 6, 2016
Now that the unofficial end of summer weekend is almost here, I take a look back at all the FUN that I had this summer. For me, summer has always been a great time of year, longer days, shorter nights, more quality time to spend with Family, not having to worry about Homework, playing outdoors,
Copier lease in the Woodlands, Conroe, Magnolia and Tomball, TX
Jeremy Dalton September 4, 2016
Copier lease and its plentiful benefits To own a copy machine often for a small business can become a financial burden. Apart from maintenance fees and supply costs, the initial investment to buy the copier may stretch the operational budget much beyond the profitable limits. Considering this we at OSOT offer copier lease services to
Bonanza of medals for U.S team
Miguel Canas September 2, 2016
I was glue to the T.V on evenings and on weekends for about 2 weeks watching the Olympic Games and my wife was feeling the loss of attention from my part and was not very happy about it, really exciting moments that I only get to enjoy every four years. The United States had
Drew Miller August 31, 2016
The first Labor Day holiday was celebrated in New York City on September 5th, 1882. The Central Labor Union organized the day as a way to celebrate a "workingmen's holiday". It was a way to pay tribute to all the workers who contributed to the strength, prosperity and well-being of our country. By 1885 the
3D Printer in Houston, Humble, Katy and Pasadena, TX
Jeremy Dalton August 28, 2016
Why a 3D printer is gaining so much prominence? Today the 3D printers are very much in demand owing to its plentiful benefits. As the name suggests a 3D printer will help you in printing objects in the form of 3-Dimensional Computer Aided Design (CAD) images. Although these printers were introduced some 25 years ago,
Copiers in Tomball and Pasadena, TX
Copiers play a vital role in commerce, education and government Copiers are also often called copy machines or photocopiers or Xerox machines. Call them what you like, copiers play a vital role in business, education and government. Office Systems of Texas (OSOT) supplies and maintain copiers and related office equipment in Houston, Katy TX, Pasadena
2016 Konica Minolta ProTech Certification
Thanks to the continued training and dedication to customer satisfaction by the entire service department, Office Systems of Texas is proud to announce to have achieved the Konica Minolta Pro-Tech Service Center Certification for 2016. A Pro-Tech Service Award winner for the 5th time, Office Systems of Texas, Service Manager, Robert Young, is dedicated to delivering professional,
From Robert
Robert Young August 23, 2016
A sad but very happy time in my life has arrived. This weekend I drove over 8 hours to move my best friend, my only child, into his first college dorm room. As he organized his desk I could tell how proud he was to be at this stage in his life. "Printer should go
Office Solutions for Houston, TX
Office solutions is quite a wide topic that can include things such as high-tech equipment, repairs, maintenance, furniture, supplies, stationery, software, workers, management and more. One thing you need for a productive and effective office is the right equipment and support in the form of training, repairs and maintenance. OSOT (Office Systems of Texas) can
Rio 2016 Olympics Soccer
Darly Castro August 17, 2016
Neymar scored the fastest goal in the history of Olympic football today, as Brazil won Honduras 6-0 at the Maracana to book their place in the 2016 Rio Olympics final. Brazil will face either Nigeria or Germany this Saturday. Good job Honduras! We still have a chance to take at least the bronze metal home.
From Matilde
Matilde August 11, 2016
School will begin in just a couple of weeks. This year will be a little different for me as I will have not only one in school but two. My four year old will be starting pre-kinder. He is so excited and so am I but I am also a little scared for him. I
Summer Ends
Michele Rhoten August 9, 2016
The new school year is just around the corner and with this comes more traffic. Yes, I know it's hard to believe the traffic can get any worse in this city!! If you're like me and have been enjoying the extra sleep in the mornings and the lighter traffic, I'm sad to say, it's coming
It's about customer service
Kim Sanders August 5, 2016
When we as consumers are looking into a purchase for something like say, a car, what are the things we consider when investing our money? For me personally it needed to be newer than what I had, it needed to have the same features that I currently use like, a backup camera, Bluetooth capabilities and
Is Music in the Genes?
Miguel Canas August 1, 2016
I come from a large family but never a member had the talent to play any musical instrument far less a voice to sing. My granddaughter was born with these incredible abilities to play instruments and a good singing voice. Perhaps her father being a musician and working in one of the best musical bands
Spot The International Space Station
George Peckham July 27, 2016
Time: Wed Jul 27 9:08 PM, Visible: 6 min, Max Height: 61°, Appears: 10° above SW, Disappears: 12° above NE
Perseid Meteor Shower
Drew Miller July 27, 2016
This years Perseid Meteor Shower, which is considered as one of the most popular meteor showers will be reaching it's peak on August 12 and 13th. NASA has stated that the shower usually brings 50-75 meteors per hour at its peak, but this year it will be as many as 150 to 200 per hour.
Copier Repair for Houston & Tomball, TX
Jeremy Dalton July 25, 2016
The use of copier has turned common these days. But since it is an electronic device, it is likely to break at some point of time. Relax, we are there to help you. We at OSOT offer all-inclusive solutions to copier of every make and model. It will be a smart and wise decision in
New school year just around the corner
Kim Reese July 21, 2016
With a new school year just around the corner, there are only a few weeks left of freedom for the kiddos. Just a few weeks left of summer vacation and fun…a few weeks left to explore the city and try new things. Check out this link to help with ideas of things to do around
Houston, Tranquillity Base here
The full Moon revealed itself from behind the clouds earlier this morning. As it did, I thought, what a brilliant and beautiful glowing light it reflected. 47 years ago, July 20, 1969 the worlds' dream of landing on the moon was realized. The United States of America National Aeronautics and Space Administration succeeded in their
Office Equipment in Conroe & Houston, Texas
Your search for the widest and the best quality office equipment will come to an end with OSOT. Inspired by practicality coupled with understanding the requirements of our customers, we strive in establishing meaningful connections that result in customer support and product solutions which exceed market demands. Being a leading manufacturer and designer of workplace
We Apologize
James Snelling July 12, 2016
On Monday July 11 a road crew accidentally cut the fiber cable to our office. This caused a temporary loss of phone service, web access and email to our office. All services were completely restored within 3 hours. We apologize for any inconvenience this may have caused you and thank you for you trust in Office
Wicked in Houston
Shana Melancon July 11, 2016
Living in a Major City like Houston means you are never short on things to do! Houston is always on the list of stops for any major touring concert or show. This weekend I was able to go and see the traveling Broadway production of the musical, Wicked! At the Hobby Center. Wicked is my
George Peckham July 1, 2016
Office Systems of Texas focus is to provide the best office equipment to Houston area businesses and support our customers with excellent service. Our Customers are the reason we are in business. We employ professionals to implement these goals. Beginning in 1977 as an authorized dealer for Minolta Corporation, OSOT has grown to have a
USAGov's Guide to Displaying the American Flag
George Peckham June 30, 2016
Every Fourth of July all across the country, people show their love for America by displaying flags along streets, hanging them from porches, and proudly carrying them in the town parade. Old Glory is everywhere. But did you know there are official rules on properly displaying the U.S. flag? This guide from USAGov, based on
Pages:«1...1112131415161718192021»
Color Printer/Copier Compact A4
Color Printer/Copier A3
B/W Printer/Copier Compact A4
B/W Printer/Copier A3
Software & IT Solutions
Desktop Network Printers
Copier Service
Konica Minolta Certifications
Home | About | Industries We Serve | Black & White Copiers | Color Copiers | Fax Machines | Printers | Production Printers | Wide Format Printers | Konica Minolta Bizhub Printers | Kyocera Network Printers Sales | Epson Business Network Printers | Software Solutions | Printer & Copier Manuals & Support | Supplies Look-up List | Quote Request | Contact Us | Service | Office Equipment | Links | News & Events | Blog | Testimonials | Promotions | Houston | The Woodlands Kyocera Network Printers | Epson Business Network Printers Conroe | Careers | Site Map
Copyright © 2018 Office Systems of Texas.
All Rights Reserved. Website by American Creative.

redpajama_set_name: RedPajamaCommonCrawl


text:
package com.ccl.strategy.observer;

/**
 * Created by ccl on 17/6/9.
 */
public interface Observer{
    public void update();
}

redpajama_set_name: RedPajamaGithub


Bollywood actor Sonu Sood, who will be next seen in JP Dutta's Paltan, gets emotional when he talks about his late father Shakti Sood. Sonu's father wanted him to become a soldier, and the actor feels he would have been really happy to see him in the Army uniform even if it's for reel. Shakti Sood died in February 2016.
Speaking to thestatesman.com, Sonu said he felt sad that his father could not watch him play an Army officer on screen. "I wish he could see me in the Army uniform. When I told him that I am doing JP Dutta's film, he was pretty much excited," Sonu recalled.
In Paltan, Sonu plays the role of Major Bishan Singh, who comes from a traditional Rajput family with an Army background.
With power-packed performances, the film promises to tell a riveting, untold story of the bravest of Indian soldiers who fought till the end.
Zee Studios and JP Dutta's Paltan casts Arjun Rampal, Harshvardhan Rane, Gurmeet Chaudhary and Sonu Sood. The film is slated to release on September 7, 2018.


text:
BELARUS - RUSSIA
Archbishop Kondrusiewicz prays in front of the Minsk prison. Naval'nyj in a coma, possibly transported to Germany
by Vladimir Rozanskij
Great Russia and White Russia seem to be on the common path of rejecting the "eternal leaders" Putin and Lukashenko. The Archbishop of Minsk was banned from entering the prisons, where he wanted to comfort those arrested in recent weeks. The prelate has asked for the release of all those arrested. Naval'nyj was poisoned with a tea drunk at Tomsk airport (Siberia). The Russian democratic movement supports the demonstrations in Minsk.
Moscow (AsiaNews) - The president of the Conference of Catholic Bishops of Belarus, Metropolitan of Minsk-Mogilev, Tadeusz Kondrusiewicz, has prayed at the walls of the special prison in Minsk, a symbol of the protest of the peaceful citizens who contest the false elections of 9 August last.
Two days ago, the bishop was banned from entering the solitary confinement detention center, where he had wanted to meet the prisoners arrested for protesting in recent days.
Msgr. Kondrusiewicz, was joined by collaborators of the local Caritas, the association "Humanitarian Mission of the Good Samaritan" and other volunteers to pray in the place described as "suffering and passion". The press releases from the Minsk curia stressed that Catholics "with all their strength have tried to support people who find themselves in such difficult situations".
It continues: "At 15.00 sharp the hour of Divine Mercy, those present together with the Archbishop recited a special prayer to the Crown of Mercy ... On the street in the rain, the bishop stopped at the gates of the prison prayed together with the faithful, among which there were lay people, priests, men and women religious, and also members of the association Mothers in Prayer".
After the prayer, the Archbishop stayed on the street for over an hour to talk to the people present, including some who had just been released from prison. Those present thanked the prelate "for his principled position in the rejection of violence".
The day before, on August 18, Msgr. Kondrusiewicz had prayed in front of solitary confinement no.1 in Volodarskaya Street, and on the same day he had addressed the Minister of the Interior Yurij Karaev, with the prayer to "allow priests to visit the people arrested after the presidential elections, to ensure they receive the necessary help, especially spiritual help" while asking the minister to free all those arrested in recent days. He also asked the minister for a personal meeting, to evaluate the situation together and prevent further violence.
Meanwhile, in Russia the protest movement is deeply anxious over the conditions of Alexei Navalnyj, the blogger who most of all embodies popular dissatisfaction with the administration's actions, and who in recent days has been strongly supporting the popular protests in Belarus.
After having tea at Tomsk airport, Navalnyj fell ill on the plane and was hospitalized in Omsk after an emergency landing, and is currently unconscious with a reserved prognosis. This morning a German plane, equipped with doctors and medical equipment, flew to Siberia to transfer Naval'nyj to Germany. But this very morning, the doctors who are treating the anti-Putin blogger, said they were against his transfer, because his health conditions are not stable.
Navalnyj arrived in Novosibirsk a week ago, on August 13, where municipal elections will be held in September, as well as in the city of Tomsk, two of the main centres of central Siberia, where candidates close to the opposition leader were being presented. These are very delicate elections, in which Naval'ny candidates play a decisive role. During the Siberian trip, Naval'nyj also worked on an investigation into local deputies of the Putinian party "United Russia", accused of various cases of corruption.
Russian protests, especially after the Naval'ny poisoning, are increasingly intertwined with the Belarusian ones, where new general strikes are being prepared to demand the resignation of President Lukashenko. Great Russia and White Russia seem to be on the common path of rejecting the "eternal leaders" Putin and Lukashenko; Naval'ny's fate could affect future events in the two countries.
dittatura
leader eterni
alexandr lukashenko
svetlana tikhanovskaja
tadeusz kondrusiewicz
patriarca kirill
aleksej naval'nyj
The Pope would like to visit Belarus. Meanwhile, the new nuncio arrives
Putin and Lukashenko in Sochi, while protests continue
Covid, extra doses of vaccine from Israel to 'friendly' countries. And to the Palestinians
Kondrusiewicz is still a Belarusian citizen. Naval'nyj wants to return to Russia
Belarusian Orthodox Church abroad: anathema on Lukashenko


text:
/*
 */
#ifndef _PSB_H_
#define _PSB_H_

#include "xf86.h"
#include "xf86_OSproc.h"
#include "compiler.h"
#include "xf86PciInfo.h"
#include "vgaHW.h"
#include "xf86Pci.h"
#include "vbe.h"
#include "vbeModes.h"
#include "xf86DDC.h"
#include "shadow.h"
#include "xf86int10.h"
#include "dgaproc.h"
#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
#include "xf86Resources.h"
#include "xf86RAC.h"
#endif
#include "fb.h"
#include "xaa.h"
#include "xf86xv.h"
#include "xf86Crtc.h"
#include "xf86str.h"

#include "libmm/mm_defines.h"
#include "libmm/mm_interface.h"

#include "psb_buffers.h"
#include "psb_accel.h"

#include "i830_bios.h"

#define DEBUG_ERRORF if (0) ErrorF

#ifdef XF86DRI
#include "psb_dri.h"
#define _XF86DRI_SERVER_
#include "GL/glxint.h"
#include "dri.h"
#include "psb_ioctl.h"
#if 0
#define PSB_LEGACY_DRI \
    ((DRIINFO_MAJOR_VERSION != 5) || (DRIINFO_MINOR_VERSION < 2))
#else
#define PSB_LEGACY_DRI 1
#endif
#endif

#define PSB_NUM_PIPES 2
#define PSB_MAX_CRTCS 2
#define PSB_MAX_SCREENS 2
#define PSB_SAVESWF_NUM 17

#define PSB_VERSION      4000
#define PSB_NAME         "PSB"
#define PSB_DRIVER_NAME  "psb"
#define PSB_MAJOR_VERSION 0
#define PSB_MINOR_VERSION 32
#define PSB_PATCHLEVEL    0

#define PCI_CHIP_PSB1  0x8108
#define PCI_CHIP_PSB2  0x8109

/*
 * We need this excessive hardware timeout since the
 * 3D engine may process scenes with arbitrarily complex
 * pixel shaders, and the DRM is not stopping it unless
 * it locks.
 */

#define PSB_TIMEOUT_USEC 29900000

#if (XORG_VERSION_MINOR >= 5 || (XORG_VERSION_MINOR == 4 && XORG_VERSION_PATCH == 99))
typedef struct pci_device *pciVideoPtr;

#ifndef PCI_DOM_MASK
#define PCI_DOM_MASK 0x0ffu
#endif

#define PCI_DOMBUS_MASK (((PCI_DOM_MASK) << 8) | 0x0ffu)
#define PCI_DOM_FROM_TAG(tag) (((tag)>>24) & (PCI_DOM_MASK))
#define PCI_BUS_FROM_TAG(tag) (((tag) >> 16) & (PCI_DOMBUS_MASK))
#define PCI_DEV_FROM_TAG(tag) (((tag) & 0x0000f800u) >> 11)
#define PCI_FUNC_FROM_TAG(tag) (((tag) & 0x00000700u) >> 8)
#endif

typedef enum _PsbLidState
{
    PSB_LIDSTATE_OPEN = 0,
    PSB_LIDSTATE_CLOSED
} PsbLidState;

#define LIDSTAT_LINE_SIZE 256
#define PROCLIDSTATE "/proc/acpi/button/lid/LID/state"

typedef enum _PsbPanelFittingMode
{
    PSB_PANELFITTING_FIT = 0,
    PSB_PANELFITTING_CENTERED,
    PSB_PANELFITTING_ASPECT
} PsbPanelFittingMode;

#define PSB_DEBUG(_scrn, _level, ...)			\
  xf86DrvMsgVerb(_scrn, X_INFO, _level, "Debug: " __VA_ARGS__ )
#define ALIGN_TO(_arg, _align) \
  (((_arg) + ((_align) - 1)) & ~((_align) - 1))

/*
 * Multihead / Multiscreen note:
 * To clear up any confusion the following conventions are followed:
 *
 * All resources common for a device are associated with a PsbDevice structure. Other structures may
 * have pointers to the PsbDevice structure they belong to.
 *
 * Each screen is associated with a logical framebuffer area somewhere in memory.
 * This logical framebuffer area may or may not have shadow copies (rotated or un-rotated).
 * Each screen is also assigned to a particular device.
 *
 * Each available output is a device resource and should be associated with a screen. This should either
 * be done from the configuration file, using default driver settings or through a utility function.
 *
 * A crtc is used to connect one or many outputs to their screen.
 *
 */

typedef struct _PsbLvdsBlcDataRec
{
    CARD8 type;
    CARD8 pol;
    CARD16 freq;
    CARD8 minbrightness;
    CARD8 i2caddr;
    CARD8 brightnesscmd;
} PsbLvdsBlcDataRec, *PsbLvdsBlcDataPtr;

typedef struct _PsbDevice
{

    unsigned deviceIndex;
    EntityInfoPtr pEnt;
    GDevPtr device;
    pciVideoPtr pciInfo;
    PCITAG pciTag;
    unsigned long regPhys;
    unsigned long regSize;
    unsigned long fbPhys;
    unsigned long fbSize;
    unsigned long stolenBase;
    unsigned long stolenSize;

    CARD8 *regMap;
    CARD8 *fbMap;

    int lastInstance;
    unsigned refCount;

    Bool outputInit;

#ifdef XF86DRI
    Bool hasDRM;
    int drmFD;
    drm_context_t drmContext;
    char *busIdString;
    int drmVerMajor;
    int drmVerMinor;
    int drmVerPL;
    int lockRefCount;
    void *pLSAREA;
    int irq;
#endif

    ScrnInfoPtr pScrns[PSB_MAX_SCREENS];
    unsigned numScreens;

    CARD32 saveSWF0;
    CARD32 saveSWF4;

    CARD32 saveSWF[PSB_SAVESWF_NUM];
    CARD32 saveVCLK_DIVISOR_VGA0;
    CARD32 saveVCLK_DIVISOR_VGA1;
    CARD32 saveVCLK_POST_DIV;
    CARD32 saveVGACNTRL;

    Bool swfSaved;
    Bool hwSaved;
    Bool deviceUp;

    MMManager *man;
    Bool mmLocked;
    int vtRefCount;

    char sdvoBName[60];

    CARD32 *OpRegion;
    unsigned int OpRegionSize;
    OsTimerPtr devicesTimer;
    Bool TVEnabled;

/*
 * Hardware data
 */
    unsigned int CoreClock;
    unsigned int MemClock;
    unsigned int Latency[2];
    unsigned int WorstLatency[2];

	unsigned int sku_value;
	Bool sku_bSDVOEnable;
	Bool sku_bMaxResEnableInt;
/*
 *backlight data block
 */
    PsbLvdsBlcDataRec blc_data;
    CARD32 PWMControlRegFreq;

} PsbDevice, *PsbDevicePtr;

/*
 * Temporary i830 compatibility stuff.
 */

typedef struct _I830Rec
{
    EntityInfoPtr pEnt;
    PCITAG PciTag;
    pciVideoPtr PciInfo;
    PsbDevicePtr pDevice;
} I830Rec, *I830Ptr;

#ifdef XF86DRI
typedef struct _PsbGLXConfig
{
    int numConfigs;
    __GLXvisualConfig *pConfigs;
    PsbConfigPrivPtr pPsbConfigs;
    PsbConfigPrivPtr *pPsbConfigPtrs;
} PsbGLXConfigRec, *PsbGLXConfigPtr;
#endif

typedef struct _PsbRec
{
/*
 * General stuff.
 */
    ScrnInfoPtr pScrn;
    PsbDevicePtr pDevice;
    CloseScreenProcPtr closeScreen;
    void (*PointerMoved) (int, int, int);
    Bool multiHead;
    Bool secondary;
    Bool ignoreACPI;
    unsigned long serverGeneration;

    struct _MMListHead buffers;

    PsbScanoutPtr front;

/*
 * Crtcs we can potentially use.
 */
    xf86CrtcPtr crtcs[PSB_MAX_CRTCS];
    unsigned numCrtcs;

/*
 *  Outputs we can potentially use.
 */

    MMListHead outputs;

/*
 * Virtual screen.
 */

    unsigned cpp;
    unsigned stride;
    unsigned long fbSize;
    CARD8 *fbMap;

    OptionInfoPtr options;

/*
 * ShadowFB
 */

    CARD8 *shadowMem;
    Bool shadowFB;
    CreateScreenResourcesProcPtr createScreenResources;
    ShadowUpdateProc update;

/*
 * Acceleration
 */
    Bool noAccel;

/*
 * No Panel support
 */
    Bool noPanel;

/*
 * Lid state timer support
 */
    Bool lidTimer;

/*
 * Downscaling support
 */
    Bool downScale;

/*
 * De-tearing support, to eliminate video playback tearing issue
 */
    Bool vsync;

/*
 * Default panel fitting mode
 */
    Bool noFitting;

/*
 * Panelfitting mode
 */
    PsbPanelFittingMode panelFittingMode;

    PsbExaPtr pPsbExa;
    unsigned long exaSize;
    unsigned long exaScratchSize;
    PsbTwodContextRec td;
    Bool exaSuperIoctl;
/*
 * DGA
 */
    DGAModePtr DGAModes;
    int numDGAModes;
    Bool DGAactive;
    int DGAViewportStatus;

/*
 * For Super ioctl acceleration
 */

    Psb2DBufferRec superC;
    Bool has2DBuffer;

/*
 * i830 driver compatibility.
 */

    I830Rec i830Ptr;

/*
 *  Misc
 */

    Bool sWCursor;

#define WA_NOFB_GARBAGE_DISPLAY
#ifdef WA_NOFB_GARBAGE_DISPLAY
    Bool has_fbdev;
#endif

/*
 * Xv
 */
    int colorKey;
    XF86VideoAdaptorPtr adaptor;

/*
 * DRI
 */

#ifdef XF86DRI
    Bool dri;
    Bool driEnabled;
    DRIInfoPtr pDRIInfo;
    int drmFD;
    PsbGLXConfigRec glx;
    struct _MMListHead sAreaList;
    Bool xpsb;
    Bool hasXpsb;
    Bool xtra;
#endif

} PsbRec, *PsbPtr;

#define PSB_CRTC0 (1 << 0)
#define PSB_CRTC1 (1 << 1)

typedef struct _PsbCrtcPrivateRec
{
    unsigned pipe;
    unsigned refCount;
    PsbScanoutPtr rotate;

    /*
     * HW Cursor
     */

    Bool cursor_is_argb;
    unsigned long cursor_addr;
    unsigned long cursor_argb_addr;

    unsigned long cursor_offset;
    unsigned long cursor_argb_offset;

    struct _MMBuffer *cursor;

    CARD8 lutR[256];
    CARD8 lutG[256];
    CARD8 lutB[256];

    CARD32 saveDSPCNTR;
    CARD32 savePIPECONF;
    CARD32 savePIPESRC;
    CARD32 saveDPLL;
    CARD32 saveFP0;
    CARD32 saveFP1;
    CARD32 saveHTOTAL;
    CARD32 saveHBLANK;
    CARD32 saveHSYNC;
    CARD32 saveVTOTAL;
    CARD32 saveVBLANK;
    CARD32 saveVSYNC;
    CARD32 saveDSPSTRIDE;
    CARD32 saveDSPSIZE;
    CARD32 saveDSPPOS;
    CARD32 saveDSPBASE;
    CARD32 savePFITCTRL;
    CARD32 savePalette[256];

    DisplayModeRec saved_mode;
    DisplayModeRec saved_adjusted_mode;
    int x;
    int y;
    int downscale; /* downscale enabled or not */
    float scale_x; /* downscale ratio of x direction */
    float scale_y; /* downscale ratio of y direction */
} PsbCrtcPrivateRec, *PsbCrtcPrivatePtr;

#define psbCrtcPrivate(_crtc)			\
    ((PsbCrtcPrivatePtr) (_crtc)->driver_private)

#define PSB_OUTPUT_UNUSED 0
#define PSB_OUTPUT_SDVO 1
#define PSB_OUTPUT_LVDS 2

typedef struct _PsbOutputPrivateRec
{
    int type;
    int refCount;
    I2CBusPtr pDDCBus;
    I2CBusPtr pI2CBus;
    PsbDevicePtr pDevice;
    Bool load_detect_temp;
    unsigned crtcMask;
    ScrnInfoPtr pScrn;		       /* Screen this output is currently assigned to. */
    const char *name;
    int isHDMI_Device;		       /* Add to record whether it is a HDMI device, Jamesx */
    int isHDMI_Monitor;		       /* Add to record whether it is a HDMI monitor, Jamesx */
    MMListHead driverOutputs;
} PsbOutputPrivateRec, *PsbOutputPrivatePtr;

typedef struct OpRegion_Header
{
    char sign[16];
    CARD32 size;
    CARD32 over;
    char sver[32];
    char vver[16];
    char gver[16];
    CARD32 mbox;
    char rhd1[164];
} OpRegionRec, *OpRegionPtr;

/******************** HDMI InfoFrame Start *******************************/

#define DIP_TYPE_AVI    0x82
#define DIP_VERSION_AVI 0x2
#define DIP_LEN_AVI     13

#define DIP_TYPE_SPD    0x83
#define DIP_VERSION_SPD 0x1
#define DIP_LEN_SPD     25

#define DIP_TYPE_AUDIO    0x84
#define DIP_VERSION_AUDIO 0x1
#define DIP_LEN_AUDIO     10

// LinearPCM Consolidated Audio Data(CAD) structure
struct LPCM_CAD {
    uint8_t ucMaxCh_CPOn  :3; // Max channels-1 supported with CP turned ON
    uint8_t ucMaxCh_CPOf  :3; // Max channels-1 supported with CP turned OFF
    uint8_t uc20Bit       :1; // 20-bit sample support
    uint8_t uc24Bit       :1; // 24-bit sample support
};

// EDID Like Data aka ELD structure
struct dip_eld_infoframe {
    // Byte[0] = ELD Version Number
    uint8_t ucCEA_ver:3;      // CEA Version Number
                                    // 0 - signifies CEA Version 3
                                    // 1 - signifies CEA Version 4
    uint8_t ucELD_ver:5;      // ELD Version Number
                                    //  00000b - reserved
                                    //  00001b - first rev
                                    //  00010b:11111b - reserved for future

    // Byte[1] = Capability Flags
    //  +------------------------+
    //  |7|6|5|4|3| 2  |  1 | 0  |
    //  +------------------------+
    //  |R|R|R|R|R|44MS|RPTR|HDCP|
    //  +------------------------+

    uint8_t ucHDCP    :1;     // Driver, SDVO Device, and Receiver supports HDCP
    uint8_t ucRPTR    :1;     // Receiver is repeater
    uint8_t uc44MS    :1;     // 44.1kHz multiples are supported by the sink
                              //	0 - 88.2 & 176.kHz are not supported by sink
                              //  1 - If 96kHz is supproted then 88.2kHz is also supported
                              //	1 - if 192kHz is supported then 176.4 is also supported
                              // 44.1kHz is always supported by a sink
    uint8_t ucRsvd37  :5;     // Reserved bits

    // Byte[2-3] = Length Parameter
    uint16_t  ucMNL       :3;    // Monitor Name Length 7-based
                                 // 0 = 0 and no Monitor name
                                 // 1 = MNL is 7
                                 // 2 = MNL is 8
                                 // 7 = MNL is 13
    uint16_t  ucVSDBL     :3;    // VSDB length in bytes
                                 //  0 - length is ZERO and no VSDB included
                                 //  1 - VSDB byte 6 is present
                                 //  2 - VSDB byte 6-7 are present
                                 //  ...
                                 //  7 - VSDB byte 6-12 are present
    uint16_t  ucSADC      :4;    // count of SAD blocks
    uint16_t  ucRsvd1015  :6;    // reserved bits

    uint16_t  usManufacturerName;       // 2-byte ID Manufacturer Name from base EDID
    uint16_t  usProductCode;            // 2-byte Product Code from base EDID
    struct LPCM_CAD  uc48CAD;                  // Consolidated Audio Descriptor for 48kHz
    struct LPCM_CAD  uc96CAD;                  // Consolidated Audio Descriptor for 96kHz
    struct LPCM_CAD  uc192CAD;                 // Consolidated Audio Descriptor for 192kHz
    uint8_t   ucSAB[3];                 // 3-byte EIA 861B Speaker Allocation Block

    // Rest of the ELD packet
    uint8_t   ucData[242];              // Monitor Descriptor - ASCII string of monitor name
                                        // VSDB as extracted from EDID strcutre
                                        // Fill in from 6th byte of VBDB onwards, ignore 1-5bytes of VBDB
                                        // SAD 0 - 3-byte CEA-861B Short Audio Descriptor for non-LPCM content
                                        // SAD 1 - 3-byte CEA-861B Short Audio Descriptor for non-LPCM content
                                        // ...
                                        // ...
                                        // SAD N - 3-byte CEA-861B Short Audio Descriptor for non-LPCM content
} __attribute__((packed));

struct dip_avi_infoframe {
    uint8_t type;
    uint8_t version;
    uint8_t len;
    uint8_t checksum;
    /* Packet Byte #1 */
    uint8_t S:2;
    uint8_t B:2;
    uint8_t A:1;
    uint8_t Y:2;
    uint8_t rsvd1:1;
    /* Packet Byte #2 */
    uint8_t R:4;
    uint8_t M:2;
    uint8_t C:2;
    /* Packet Byte #3 */
    uint8_t SC:2;
    uint8_t Q:2;
    uint8_t EC:3;
    uint8_t ITC:1;
    /* Packet Byte #4 */
    uint8_t VIC:7;
    uint8_t rsvd2:1;
    /* Packet Byte #5 */
    uint8_t PR:4;
    uint8_t rsvd3:4;
    /* Packet Byte #6~13 */
    uint16_t top_bar_end;
    uint16_t bottom_bar_start;
    uint16_t left_bar_end;
    uint16_t right_bar_start;
    /* Reserved */
    uint8_t payload[14];
} __attribute__((packed));

struct dip_spd_infoframe {
    uint8_t type;
    uint8_t version;
    uint8_t len;
    uint8_t checksum;
    uint8_t name[8];	// Vendor Name, 8 characters
    uint8_t desc[16];	// Product Description, 16 characters
    uint8_t SDI;	// Source Device Information
} __attribute__((packed));

struct dip_audio_infoframe {
    uint8_t type;
    uint8_t version;
    uint8_t len;
    uint8_t checksum;
    /* Packet Byte #1 */
    uint8_t CC:3;
    uint8_t rsvd1:1;
    uint8_t CT:4;
    /* Packet Byte #2 */
    uint8_t SS:2;
    uint8_t SF:3;
    uint8_t rsvd2:3;
    /* Packet Byte #3 */
    uint8_t CXT:5;
    uint8_t rsvd3:3;
    /* Packet Byte #4 */
    uint8_t CA;
    /* Packet Byte #5 */
    uint8_t rsvd4:3;
    uint8_t LSV:4;
    uint8_t DM_INH:1;
    /* Reserved */
    uint8_t payload[22];
} __attribute__((packed));

// AVI InfoFrame definitions - start
// Scan Info
typedef enum AVI_SCAN_INFO_t{
    AVI_SCAN_NODATA     = 0,     // No data
    AVI_SCAN_OVERSCAN   = 1,     // Overscanned (TV)
    AVI_SCAN_UNDERSCAN  = 2,     // Underscanned (Computer)
    AVI_SCAN_FUTURE     = 3      // Future
}AVI_SCAN_INFO;

// Bar Info
typedef enum AVI_BAR_INFO_t{
    AVI_BAR_INVALID         = 0,      // Bar data not valid
    AVI_BAR_VALID_VERTICAL  = 1,      // Vertical Bar data valid
    AVI_BAR_VALID_HORIZONTAL= 2,      // Horizontal Bar data valid
    AVI_BAR_VALID_BOTH      = 3       // Vertical & Horizontal Bar data valid
}AVI_BAR_INFO;

// Active Format Information
typedef enum AVI_AFI_INFO_t{
    AVI_AFI_INVALID = 0,    // No data
    AVI_AFI_VALID   = 1     // Active Format Information valid
}AVI_AFI_INFO;

// AVI Pixel Encoding modes
typedef enum AVI_ENCODING_MODE_t{
    AVI_RGB_MODE      = 0,  // RGB pixel encoding mode
    AVI_YCRCB422_MODE = 1,  // YCrCb 4:2:2 mode
    AVI_YCRCB444_MODE = 2,  // YCrCb 4:4:4 mode
    AVI_FUTURE_MODE   = 3   // Future mode
}AVI_ENCODING_MODE;

// AVI Active Format Aspect Ratio
typedef enum AVI_AFAR_INFO_t{
    AVI_AFAR_SAME   = 8,     // same as picture aspect ratio
    AVI_AFAR_4_3    = 9,     // 4:3 center
    AVI_AFAR_16_9   = 10,    // 16:9 center
    AVI_AFAR_14_9   = 11     // 14:9 center
}AVI_AFAR_INFO;

// AVI Picture Aspect Ratio
typedef enum AVI_PAR_INFO_t{
    AVI_PAR_NODATA  = 0,      // No Data
    AVI_PAR_4_3     = 1,      // 4:3
    AVI_PAR_16_9    = 2,      // 16:9
    AVI_PAR_FUTURE  = 3       // Future
}AVI_PAR_INFO;

// AVI Colorimetry Information
typedef enum AVI_COLOR_INFO_t{
    AVI_COLOR_NODATA = 0,    // No data
    AVI_COLOR_ITU601 = 1,    // SMPTE 170M, ITU601
    AVI_COLOR_ITU709 = 2,    // ITU709
    AVI_COLOR_FUTURE = 3     // Future
}AVI_COLOR_INFO;

// AVI Non-uniform Picture Scaling Info
typedef enum AVI_SCALING_INFO_t{
    AVI_SCALING_NODATA      = 0,  // No scaling
    AVI_SCALING_HORIZONTAL  = 1,  // horizontal scaling
    AVI_SCALING_VERTICAL    = 2,  // vertical scaling
    AVI_SCALING_BOTH        = 3   // horizontal & vertical scaling
}AVI_SCALING_INFO;
// AVI InfoFrame definitions - end

// SPD InfoFrame definitions - start
// SPD InfoFrame Data Byte 25, refer Table-17 in CEA-861b
typedef enum SPD_SRC_TYPES_t{
    SPD_SRC_UNKNOWN = 0x00,	// unknown
    SPD_SRC_DIGITAL_STD = 0x01,	// Digital STB
    SPD_SRC_DVD = 0x02,		// DVD
    SPD_SRC_DVHS = 0x03,	// DVH-S
    SPD_SRC_HDD_VIDEO = 0x04,	// HDD-Video
    SPD_SRC_DVC = 0x05,		// DVC
    SPD_SRC_DSC = 0x06,		// DSC
    SPD_SRC_VCD = 0x07,		// VCD
    SPD_SRC_GAME = 0x08,	// Game
    SPD_SRC_PC = 0x09,		// PC General
}SPD_SRC_TYPES;
// SPD InfoFrame definitions - end

// Pixel Replication multipliers
typedef enum HDMI_PIXEL_REPLICATION_t{
    HDMI_PR_ONE = 0,    // No repetition (ie., pixel sent once)
    HDMI_PR_TWO,        // Pixel sent 2 times (ie.,repeated once)
    HDMI_PR_THREE,      // Pixel sent 3 times
    HDMI_PR_FOUR,       // Pixel sent 4 times
    HDMI_PR_FIVE,       // Pixel sent 5 times
    HDMI_PR_SIX,        // Pixel sent 6 times
    HDMI_PR_SEVEN,      // Pixel sent 7 times
    HDMI_PR_EIGHT,      // Pixel sent 8 times
    HDMI_PR_NINE,       // Pixel sent 9 times
    HDMI_PR_TEN         // Pixel sent 10 times
}HDMI_PIXEL_REPLICATION;

#define EDID_STD_ASPECT_RATIO_16_10	0x0
#define EDID_STD_ASPECT_RATIO_4_3	0x1
#define EDID_STD_ASPECT_RATIO_5_4	0x2
#define EDID_STD_ASPECT_RATIO_16_9	0x3

typedef enum _PBDC_SDVO_HDMI_BUF_INDEX {
    ELD_INDEX = 0,
    AVI_INDEX = 1,
    SPD_INDEX = 2,
    AUDIO_INDEX = 3,
} PBDC_SDVO_HDMI_BUF_INDEX;

typedef unsigned char  U8;
typedef unsigned short U16;
typedef unsigned long  U32;

//	Standard timing identification
typedef union _STD_TIMIMG {
	U16  usStdTiming;
	struct {
#pragma pack(1)
		U8	ucHActive;			// (HActive/8) - 31;
		struct {
			U8	ucRefreshRate : 6;	// Refresh Rate - 60
			U8	ucAspectRatio : 2;	// Aspect ratio (HActive/VActive)
								// 00:  1:1 Aspect ratio
								// 01:  4:3 Aspect ratio
								// 10:  5:4 Aspect ratio
								// 11: 16:9 Aspect ratio
		};
	};
#pragma pack()
} STD_TIMING, *PSTD_TIMING;

typedef struct _COLOR_POINT
{
#pragma pack(1)
	U8 ucWhite_point_index_number_1;
	U8 ucWhite_low_bits_1;
	U8 ucWhite_x_1;
	U8 ucWhite_y_1;
	U8 ucWhite_gamma_1;
	U8 ucWhite_point_index_number_2;
	U8 ucWhite_low_bits_2;
	U8 ucWhite_x_2;
	U8 ucWhite_y_2;
	U8 ucWhite_gamma_2;
	U8 ucByte_15;
	U8 ucByte_16_17[2];
#pragma pack()
} COLOR_POINT;

typedef struct _MONITOR_RANGE_LIMITS
{
#pragma pack(1)

	U8 ucMin_vert_rate;			//Min Vertical Rate,in Hz
	U8 ucMax_vert_rate;			//Max Vertical Rate, in Hz
	U8 ucMin_horz_rate;			//Min Horizontal Rate, in Hz
	U8 ucMax_horz_rate;			//Max Horizontal Rate, in Hz
	U8 ucMax_pixel_clock;		//Max Pixel Clock,Value/10 Mhz
	U8 ucTiming_formula_support;	//00 - No Secondary Timing Formula Supported
									//02 - Secondary GTF Curve Supported
	//If timing_formula_support is 02
	U8 ucReserved;				//00h
	U8 ucStart_freq;				//Horizontal Freq, Value/2, KHz
	U8 ucByte_C;					//C*2
	U8 ucLSB_M;					//LSB of M Value
	U8 ucMSB_M;					//MSB of M Value
	U8 ucByte_K;					//K Value
	U8 ucByte_J;					//J*2

#pragma pack()
} MONITOR_RANGE_LIMITS, *PMONITOR_RANGE_LIMITS;

typedef struct _MONITOR_DESCRIPTOR
{
#pragma pack(1)
	U16 wFlag;			// = 0000 when block is used as descriptor
	U8 ucFlag0;		// Reserved

	U8 ucDataTypeTag;

	U8 ucFlag1;		// 00 for descriptor

	union {

		// Monitor S/N (ucDataTypeTag = FF)
		U8 ucMonitorSerialNumber[13];

		// ASCII string (ucDataTypeTag = FE)
		U8 ucASCIIString[13];

		// Monitor range limit (ucDataTypeTag = FD)
		MONITOR_RANGE_LIMITS MonitorRangeLimits;

		// Monitor name (ucDataTypeTag = FC)
		U8 ucMonitorName[13];

		// Color point (ucDataTypeTag = FB)
		COLOR_POINT ColorPoint;

		// Standard timings (ucDataTypeTag = FA)
		struct {
			STD_TIMING ExtraStdTiming[6];
			U8 ucFixedValueOfA0;		// Should be 0xA0
		};

		// Manufacturer specific value (ucDataTypeTag = 0F-00)
		U8 ucMfgSpecificData[13];
	};
#pragma pack()
} MONITOR_DESCRIPTOR, *PMONITOR_DESCRIPTOR;

#define NUM_DTD_BLOCK 4

typedef struct _EDID_1_X {
#pragma pack(1)
	char		Header[8];        // EDID1.x header "0 FFh FFh FFh FFh FFh FFh 0"
	U8		ProductID[10];    // Vendor / Product identification
	U8		ucVersion;        // EDID version no.
	U8		ucRevision;       // EDID revision no.
	union {
		U8	ucVideoInput;	  // Video input definition
		struct {
			U8	ucSyncInput	 : 4;	// Sync input supported
			U8	ucSetup		 : 1;	// Display setup
			U8	ucSigLevStd	 : 2;	// Signal level Standard
			U8	ucDigitInput	 : 1;	// 1: Digital input; 0: Analog input
		};
	};
	U8		ucMaxHIS;		// Maximum H. image size in cm
	U8		ucMaxVIS;		// Maximum V. image size in cm
	U8		ucGamma;		// Display gamma value
	union {
		U8	ucDMPSFeature;	// DPMS feature support
		struct {
			U8	ucGTFSupport : 1;	// GTF timing support (1: Yes)
			U8	ucPTM		 : 1;	// Preferred timing is 1st DTD (1: Yes)
			U8	ucColorSpace : 1;	// Use STD color space (1:Yes)
			U8	ucDispType	 : 2;	// Display type
								// 00: Monochrome
								// 01: R/G/B color display
								// 10: Non R/G/B multicolor display
								// 11: Undefined
			U8	ucActiveOff	 : 1;	// Active off
			U8	ucSuspend	 : 1;	// Suspend
			U8	ucStandBy	 : 1;	// Stand-by
		};
	};
	U8		ColorChars[10];	// Color characteristics
	//
	// Established timings: 3 bytes (Table 3.14 of EDID spec)
	union {
		U8 EstTiming1;
		struct {
			U8 bSupports800x600_60	: 1;
			U8 bSupports800x600_56	: 1;
			U8 bSupports640x480_75	: 1;
			U8 bSupports640x480_72	: 1;
			U8 bSupports640x480_67	: 1;
			U8 bSupports640x480_60	: 1;
			U8 bSupports720x400_88	: 1;
			U8 bSupports720x400_70	: 1;
		};
	};
	union {
		U8 EstTiming2;
		struct {
			U8 bSupports1280x1024_75 : 1;
			U8 bSupports1024x768_75	 : 1;
			U8 bSupports1024x768_70	 : 1;
			U8 bSupports1024x768_60	 : 1;
			U8 bSupports1024x768_87i : 1;
			U8 bSupports832x624_75	 : 1;
			U8 bSupports800x600_75	 : 1;
			U8 bSupports800x600_72	 : 1;
		};
	};
	union {
		U8 MfgTimings;
		struct {
			U8 bMfgReservedTimings	: 7;
			U8 bSupports1152x870_75	: 1;
		};
	};
	STD_TIMING	StdTiming[8];	// 8 Standard timing support
	//EDID_DTD	DTD[4];			// Four DTD data blocks
	// Detailed timing section - 72 bytes (4*18 bytes)
	union {
		EDID_DTD	DTD[NUM_DTD_BLOCK];			// Four DTD data blocks

		MONITOR_DESCRIPTOR MonitorInfo[NUM_DTD_BLOCK];
	};
	U8		ucNumExtBlocks;	// Number of extension EDID blocks
	U8		ucChecksum;		// Checksum of the EDID block
#pragma pack()
} EDID_1_X, *PEDID_1_X;

//manju CE-EXTN
typedef struct _CE_EDID {
	U8	ucTag;
	U8	ucRevision;
	U8	ucDTDOffset;
	U8	ucCapabilty;
	U8	data[123];
	U8   ucCheckSum;
} CE_EDID, *PCE_EDID;

// CEA-861b definitions
#define CEA_VERSION             0x00
#define ELD_VERSION             0x01
#define BASE_ELD_SIZE           0x0E
#define CEA_EDID_HEADER_SIZE    0x04

#define CEA_AUDIO_DATABLOCK     0x1
#define CEA_VIDEO_DATABLOCK     0x2
#define CEA_VENDOR_DATABLOCK    0x3
#define CEA_SPEAKER_DATABLOCK   0x4

#define CEA_DATABLOCK_TAG_MASK                  0xE0
#define CEA_DATABLOCK_LENGTH_MASK               0x1F
#define CEA_SHORT_VIDEO_DESCRIPTOR_CODE_MASK    0x7F

//Basic Audio support definitions
#define BASIC_AUDIO_SUPPORTED			0x40
#define CEA_EXTENSION_BLOCK_BYTE_3		3
#define FL_AND_FR_SPEAKERS_CONNECTED		0x1

// CEA Short Audio Descriptor
typedef struct _CEA_861B_ADB
{
#pragma pack(1)
    union
    {
        U8 ucbyte1;
        struct
        {
            U8   ucMaxChannels       :3; // Bits[0-2]
            U8   ucAudioFormatCode   :4;	// Bits[3-6], see AUDIO_FORMAT_CODES
            U8   ucB1Reserved        :1;	// Bit[7] - reserved
        };
    };
    union
    {
        U8	ucByte2;
        struct
        {
            U8   uc32kHz             :1;	// Bit[0] sample rate = 32kHz
            U8   uc44kHz             :1;	// Bit[1] sample rate = 44kHz
            U8   uc48kHz             :1;	// Bit[2] sample rate = 48kHz
            U8   uc88kHz             :1;	// Bit[3] sample rate = 88kHz
            U8   uc96kHz             :1;	// Bit[4] sample rate = 96kHz
            U8   uc176kHz            :1;	// Bit[5] sample rate = 176kHz
            U8   uc192kHz            :1;	// Bit[6] sample rate = 192kHz
            U8   ucB2Reserved        :1;	// Bit[7] - reserved
        };
    };
    union
    {
        U8   ucByte3;    // maximum bit rate divided by 8kHz
        // following is the format of 3rd byte for uncompressed(LPCM) audio
        struct
        {
            U8	uc16Bit				:1;	// Bit[0]
            U8	uc20Bit				:1;	// Bit[1]
            U8	uc24Bit				:1;	// Bit[2]
            U8	ucB3Reserved		:5;	// Bits[3-7]
        };
    };
#pragma pack()
} CEA_861B_ADB, *PCEA_861B_ADB;

// Audio format codes
typedef enum _AUDIO_FORMAT_CODES {
    AUDIO_LPCM      = 0x0001,   // Linear PCM (eg. IEC60958)
    AUDIO_AC3       = 0x0002,   // AC-3
    AUDIO_MPEG1     = 0x0003,   // MPEG1 (Layers 1 & 2)
    AUDIO_MP3       = 0x0004,   // MP3   (MPEG1 Layer 3)
    AUDIO_MPEG2     = 0x0005,   // MPEG2 (multichannel)
    AUDIO_AAC       = 0x0006,   // AAC
    AUDIO_DTS       = 0x0007,   // DTS
    AUDIO_ATRAC     = 0x0008    // ATRAC
} AUDIO_FORMAT_CODES;

// Audio capability structure
typedef struct _DEVICE_AUDIO_CAPS
{
    int NPLDesign :8; // max number of audio packets device can
                        // deliver per line
    int K0        :8; // The overhead(in pixels) per line requied
                        // by device for setting up audio packets when
                        // CP is disabled
    int K1        :8; // The overhead(in pixels) per line requied
                        // by device for setting up audio packets when
                        // CP is enabled
    // Misc data
    int PR        :4; // Pixel Replication value
    int bIsHDCP   :1; // Driver, Device and Receiver support HDCP
    int bIsRPTR   :1; // Receiver is HDCP repeater
    int Reserved  :2; // reserved bits
} DEVICE_AUDIO_CAPS, *PDEVICE_AUDIO_CAPS;

typedef enum _PBDC_SDVO_HDMI_AUDIO_STATE{
    HDMI_ELD_VALID = 0x01,
    HDMI_PRESENCE_DETECT = 0x02,
    HDMI_CP_READY = 0x04
}PBDC_SDVO_HDMI_AUDIO_STATE;

/******************** HDMI InfoFrame End *******************************/

typedef enum _Watermark_Type
{
    WATERMARK_1,
    WATERMARK_2
} Watermark_Type;

typedef struct _DSPARB_Register
{
    union
    {
        U32 entireRegister;
        struct
        {
            U32 b_Start         : 7;
            U32 c_Start         : 7;
            U32 reserved        : 18;
        };
    };
} DSPARB_Register, *PDSPARB_Register;

typedef enum CePlane_t
{
    DCplane_A,
    DCplane_B,
    DCplane_C,
    DCplane_CursorA,
    DCplane_CursorB,
    DCplane_Overlay1,
    DC_NUM_PLANES,
    DCplane_NotSupported = -1
} CePlane;

typedef struct _Watermark_Register1
{
    union
    {
        U32 entireRegister;
        struct
        {
            U32 DispA_WM1	: 8;
            U32 DispA_BL	: 2;
            U32 reserved	: 6;
            U32 DispB_WM1	: 8;
            U32 DispB_BL	: 2;
            U32 DispC_WM1	: 5;
            U32 reserved1	: 1;
        };
    };
} Watermark_Register1, *PWatermark_Register1;

typedef struct _FIFOWatermark_Register
{
    union
    {
        U32 entireRegister;
        struct
        {
            U32 DispAB_WM2		: 8;
            U32 CursAB_WM2		: 7;
            U32 maxFIFO_Enable		: 1;
            U32 reserved		: 1;
            U32 OverlayUV_WM2		: 7;
            U32 OverlayY_WM2		: 7;
            U32 reserved1		: 1;
        };
    };
} FIFOWatermark_Register, *PFIFOWatermark_Register;

typedef struct _MAXFIFOWatermark_Register
{
    union
    {
        U32 entireRegister;
        struct
        {
            U32 WM1_STATUS1		: 8;
            U32 WM1_STATUS0		: 8;
            U32 reserved		: 16;
        };
    };
} MAXFIFOWatermark_Register, *PMAXFIFOWatermark_Register;

static inline PsbPtr
psbPTR(ScrnInfoPtr pScrn)
{
    return ((PsbPtr) pScrn->driverPrivate);
}

static inline PsbDevicePtr
psbDevicePTR(PsbPtr pPsb)
{
    return pPsb->pDevice;
}

#define PSB_THALIA_OFFSET 0x00040000
#define PSB_SGX_2D_SLAVE_PORT 0x00044000
#define PSB_PAGE_SIZE 4096
#define PSB_PAGE_SHIFT 12
#define PSB_BIOS_POPUP_SIZE 4096;
#define PSB_BSM 0x5C
#define PSB_PGETBL_CTL 0x2020

#define PSB_RSGX32(_offs) \
  (*(volatile CARD32 *)(pDevice->regMap + PSB_THALIA_OFFSET + (_offs)))
#define PSB_WSGX32(_offs, _val)						\
  (*(volatile CARD32 *)(pDevice->regMap + PSB_THALIA_OFFSET + (_offs)) = (_val))
#define PSB_READ32(_offs)				\
  (*(volatile CARD32 *)(pDevice->regMap + (_offs)))
#define PSB_WRITE32(_offs, _val)				\
  (*(volatile CARD32 *)(pDevice->regMap + (_offs)) = (_val))
#define PSB_RSLAVE32(_offs)						\
  (*(volatile CARD32 *)(pDevice->regMap + PSB_SGX_2D_SLAVE_PORT + (_offs)))
#define PSB_WSLAVE32(_offs, _val)		\
  (PSB_RSLAVE32(_offs) = (_val))

/*
 * psb_shadow.c
 */

extern void psbUpdatePackedDepth15(ScreenPtr pScreen, shadowBufPtr pBuf);
extern void psbUpdatePackedDepth24(ScreenPtr pScreen, shadowBufPtr pBuf);
extern void *psbWindowLinear(ScreenPtr pScreen, CARD32 row, CARD32 offset,
			     int mode, CARD32 * size, void *closure);

#ifdef XF86DRI

/*
 * psb_dri.c
 */
extern Bool psbDRIScreenInit(ScreenPtr pScreen);
extern void psbDRICloseScreen(ScreenPtr pScreen);
extern Bool psbDRMDeviceInit(PsbDevicePtr pDevice);
extern void psbDRMDeviceTakeDown(PsbDevicePtr pDevice);
extern void psbDRIUnlock(ScrnInfoPtr pScrn);
extern void psbDRILock(ScrnInfoPtr pScrn, int flags);
extern void psbDRMIrqTakeDown(PsbDevicePtr pDevice);
extern void psbDRMIrqInit(PsbDevicePtr pDevice);
extern Bool psbDRIFinishScreenInit(ScreenPtr pScreen);
extern void psbDRIUpdateScanouts(ScrnInfoPtr pScrn);

#else
#define psbDRILock(_a, _b)
#define psbDRIUnlock(_a)
#endif

/*
 * psb_outputs.c
 */
extern void psbOutputPrepare(xf86OutputPtr output);
extern void psbOutputCommit(xf86OutputPtr output);

/*Add the functions to get extension EDID data, Jamesx*/
extern unsigned char *psbDDCRead_DDC2(int scrnIndex, I2CBusPtr pBus,
				      int start, int len);
extern DisplayModePtr psbOutputDDCGetModes(xf86OutputPtr output);
extern void psbOutputDestroy(PsbOutputPrivatePtr pOutput);
extern void psbOutputInit(PsbDevicePtr pDevice, PsbOutputPrivatePtr pOutput);
extern void psbOutputEnableCrtcForAllScreens(PsbDevicePtr pDevice, int crtc);
extern void psbOutputDisableCrtcForOtherScreens(ScrnInfoPtr pScrn, int crtc);
extern void psbOutputDestroyAll(ScrnInfoPtr pScrn);
extern Bool psbPtrAddToList(MMListHead * head, void *ptr);
extern Bool psbOutputCompat(ScrnInfoPtr pScrn);
extern Bool psbOutputAssignToScreen(ScrnInfoPtr pScrn, const char *name);
extern void psbOutputReleaseFromScreen(ScrnInfoPtr pScrn, const char *name);
extern xf86OutputPtr psbOutputClone(ScrnInfoPtr pScrn, ScrnInfoPtr origScrn,
				    const char *name);
extern void psbOutputSave(ScrnInfoPtr pScrn);
extern void psbOutputRestore(ScrnInfoPtr pScrn);
extern void psbOutputDPMS(ScrnInfoPtr pScrn, int mode);
extern Bool psbOutputIsDisabled(ScrnInfoPtr pScrn, int pipe);
extern Bool psbOutputCrtcValid(ScrnInfoPtr pScrn, int crtc);

/*
 * psb_lvds.c
 */

extern xf86OutputPtr psbLVDSInit(ScrnInfoPtr pScrn, const char *name);

/*
 * psb_sdvo.c
 */

extern xf86OutputPtr
psbSDVOInit(ScrnInfoPtr pScrn, int output_device, char *name);

/*
 * psb_crtc.c
 */

typedef struct _intel_clock_t
{
    /* given values */
    int n;
    int m1, m2;
    int p1, p2;
    /* derived values */
    int dot;
    int vco;
    int m;
    int p;
} intel_clock_t;

extern void psbCrtcLoadLut(xf86CrtcPtr crtc);
extern void psbDescribeOutputConfiguration(ScrnInfoPtr pScrn);
extern xf86CrtcPtr psbCrtcInit(ScrnInfoPtr pScrn, int pipe);
extern xf86CrtcPtr psbCrtcClone(ScrnInfoPtr pScrn, xf86CrtcPtr origCrtc);
extern void psbWaitForVblank(ScrnInfoPtr pScrn);
extern void psbPipeSetBase(xf86CrtcPtr crtc, int x, int y);
extern void psbCrtcSaveCursors(ScrnInfoPtr pScrn, Bool force);
extern int psbCrtcSetupCursors(ScrnInfoPtr pScrn);
extern void psbCrtcFreeCursors(ScrnInfoPtr pScrn);
extern DisplayModePtr psbCrtcModeGet(ScrnInfoPtr pScrn, xf86CrtcPtr crtc);
extern int psbPanelFitterPipe(CARD32 pfitControl);
extern void psbPrintPll(int scrnIndex, char *prefix, intel_clock_t * clock);

/*
 * psb_driver.c
 */
extern void psbCheckCrtcs(PsbDevicePtr pDevice);

/*
 * psb_cursor.c
 */
void psbInitHWCursor(ScrnInfoPtr pScrn);
Bool psbCursorInit(ScreenPtr pScreen);
extern void psb_crtc_load_cursor_image(xf86CrtcPtr crtc, unsigned char *src);
extern void psb_crtc_load_cursor_argb(xf86CrtcPtr crtc, CARD32 * image);
extern void psb_crtc_set_cursor_position(xf86CrtcPtr crtc, int x, int y);
extern void psb_crtc_set_cursor_colors(xf86CrtcPtr crtc, int bg, int fg);
extern void psb_crtc_hide_cursor(xf86CrtcPtr crtc);
extern void psb_crtc_show_cursor(xf86CrtcPtr crtc);

extern Bool
psbExaGetSuperOffset(PixmapPtr p, unsigned long *offset,
		     struct _MMBuffer **buffer);
/*
 * psb_video.c
 */
extern XF86VideoAdaptorPtr psbInitVideo(ScreenPtr pScreen);
extern void psbFreeAdaptor(ScrnInfoPtr pScrn, XF86VideoAdaptorPtr adapt);

/*
 * psb_composite.c
 */
extern void psbExaDoneComposite3D(PixmapPtr pPixmap);
extern void psbExaComposite3D(PixmapPtr pDst, int srcX, int srcY,
			      int maskX, int maskY, int dstX, int dstY,
			      int width, int height);
Bool psbExaPrepareComposite3D(int op, PicturePtr pSrcPicture,
			      PicturePtr pMaskPicture, PicturePtr pDstPicture,
			      PixmapPtr pSrc, PixmapPtr pMask,
			      PixmapPtr pDst);

/*
 * psb_dga.c
 */
extern Bool PSBDGAReInit(ScreenPtr pScreen);
extern Bool PSBDGAInit(ScreenPtr pScreen);
#endif /*_PSB_H_*/


All SILVER CANYON homes currently listed for sale in San Antonio as of 04/24/2019 are shown below. You can change the search criteria at any time by pressing the 'Change Search' button below.
"The Mesilla's thoughtfully designed layout offers flexible living space, downstairs guest and upstairs game room. Additional features includes 9 foot ceilings, SS Appliances, granite countertops, kitchen island, walk in shower in owner's bath and covered patio. Home includes the backbone for the Pulte Smart Home. Please contact onsite sales counselor for more details."
"This beautiful 4 bedroom two story home with master down. There is a study downstairs and big game room upstairs, lots of space to grow. This home is barely lived in and still has builder warranty. Water softener plumbed, beautiful neutral colors throughout the home. Beautiful sunset view with interior shutters to reduce heat. You won't be disappointed, a must see."
"The Springfield boasts two story foyer leading into open gather and dining spaces plus upstairs game room. Additional features include 9 foot ceilings, SS Appliances and granite countertops, Raised bar top with granite in kitchen, tile flooring throughout and covered patio. Home includes the backbone for the Pulte Smart Home. Please contact onsite sales counselor for more details."
"The Hewitt's open plan offers luxury and space, with a kitchen overlooking the great room and dining area and Owner's Suite with walk-in closet. Additional features include Covered Patio, SS Appliances, granite countertops, garden tub at Owner's suite and pre plumb for water softener. Home includes the backbone for the Pulte Smart Home. Please contact onsite sales counselor for more details."
"The Lincoln's first floor features open living space and a first floor guest suite with full bath. Additional features include SS Appliances, 36 Espresso Kitchen Cabinets, Linen closet @ Owner's bath, game room with tray ceiling, tile flooring throughout and covered patio. Home includes the backbone for the Pulte Smart Home. Please contact onsite sales counselor for more details."
"The Hewitt's open plan offers luxury and space, with a kitchen overlooking the great room and dining area and Owner's Suite with walk-in closet. Additional features include, Study/Office, Covered Patio, SS Appliances, granite countertops, walk in shower in owner's bath and pre plumb for water softener. Home includes the backbone for the Pulte Smart Home. Please contact onsite sales counselor for more details."
"This ADORABLE 2 story home is a must see!!! Built in 2017 in a quite community, minutes away from a community park/playground and close to Government Canyon State Natural Area, shopping & more! 1st floor offers a large family room, spacious kitchen with breakfast nook, big backyard with covered patio, perfect for entertaining. 2nd floor offers a master bedroom w/ work in closet, secondary bedrooms and a loft. This house is barely lived in and still has builders warranty. Schedule your showings "
"Captivating home on a Cul-de-sac! Come see two-story home with 3 bedrooms, bonus room, 2 full bathrooms and laundry room all upstairs! Gorgeous wood floors in living room, island kitchen and so much more. Minutes away from a community park/playground and close to Government Canyon State Natural Area, shopping & more!"
"The one-story Taft features open-concept living space that flows from the great room to the kitchen and dining area. Features include stainless steel kitchen appliances, raised bar top with granite in kitchen, a study, walk in shower in Owner's bath, tile flooring throughout, and covered patio. Home includes the backbone for the Pulte Smart Home. Please contact onsite sales counselor for more details."
"The one-story Taft features open-concept living space that flows from the great room to the kitchen and dining area. Features include stainless steel kitchen appliances, raised bar top with granite in kitchen, walk in shower in Owner's bath, tray ceiling in Family room, tile flooring throughout, and covered patio. Home includes the backbone for the Pulte Smart Home. Please contact onsite sales counselor for more details."
"The one-story Taft features open-concept living space that flows from the great room to the kitchen and dining area. Features include Kitchen with Island and granite, 36 espresso kitchen cabinets, tile flooring throughout, walk in shower in owner bath, tray ceiling at family room and covered patio. Home includes the backbone for the Pulte Smart Home. Please contact onsite sales counselor for more details."


text:
package biz.suckow.dnswxr.business.ssl.control;

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLSession;

/**
 * Created by tobias on 8/20/16.
 */
public class MerkelHostnameVerifier implements HostnameVerifier {

    @Override
    public boolean verify(String hostname, SSLSession session) {
        return true;
    }
}