acacia tree coloring page fall tree coloring pages fall tree coloring sheet autumn tree coloring pages batch coloring autumn tree coloring ideas for toddlers.
operetta monster high coloring pages monster color coded monsters coloring pages monster coloring pages sheet monsters color monsters coloring pages coloring activities for toddlers.
impala animal coloring pages animals coloring pages free printable hub graphic printable animal hair color ideas for short gray hair.
escenas de navidad para colorear para la para para on la s para s para hair colour ideas for gray hair.
cute tweety bird coloring pages cute bird coloring pages bird coloring ideas for long dark hair.


text:
Newsroom Archive
Glasgow climate summit: U-M experts available to comment
Written by Jim Erickson
Silhouette of trees during sunset. Image credit: Matt Palmer, Unsplash
EXPERTS ADVISORY
Delegates from nearly 200 countries will gather in Glasgow, Scotland, at the end of the month for the COP26 climate summit, described by some as a make-or-break chance to curb greenhouse gas emissions and stave off the worst ravages of climate change. University of Michigan experts are available to comment.
Jennifer Haverkamp
Jennifer Haverkamp, a veteran of seven U.N. climate summits, is a former ambassador and special representative in the Obama State Department, where she led U.S. negotiating teams to successful climate agreements under the Montreal Protocol and the U.N. International Civil Aviation Agreement. She is the director of the Graham Sustainability Institute and teaches at the Law School and Ford School of Public Policy.
Her areas of expertise include United Nations Framework Convention on Climate Change diplomacy and negotiating dynamics, short-lived climate pollutants such as methane and hydrofluorocarbons, and issues at the intersection of climate change and international trade and competitiveness.
"The nations heading to Glasgow bear the grave responsibility of delivering commitments stringent enough to give us one last shot at avoiding catastrophic climate change," she said. As the IPCC's latest report made clear, we are incontrovertibly on the brink of making climate disasters the norm, and cutting potent short-lived climate pollutants like methane, nitrous oxides and HFCs are essential next steps.
"The Biden Administration will be welcomed back to the table, but as it presses others to do more, they'll be looking for proof the U.S. can deliver on its own ambitious goals."
Contact: 202-316-4914, jhaver@umich.edu
Trish Koman
Trish Koman is an assistant research scientist in environmental health sciences at the School of Public Health and faculty research program manager at the College of Engineering Multidisciplinary Design. In recent studies led by Koman, researchers mapped the exposure to wildland fire smoke in California and the communities in Michigan that will bear the brunt of climate change.
"Global leaders have the opportunity to take decisive action at the COP26 climate summit to promote the health of children today and to safeguard their well-being into the future," she said. "Children are especially vulnerable to negative consequences of climate change such as from air pollution, heat, and extreme weather.
"As the IPCC report shows, we still have time to take bold action to curtail harmful carbon emissions and other planet-warming pollutants. To promote health, especially for children and vulnerable groups, we need to make immediate and sustained progress towards a low carbon future."
Contact: tkoman@umich.edu
Avik Basu
Avik Basu, an environmental psychologist at the School for Environment and Sustainability, will lead a delegation of 13 U-M graduate students to the Glasgow summit. The students will observe the negotiations, attend side events and interact with various experts. U-M has sent student delegations to U.N. climate change conferences since 2009, and Basu was involved in the 2015 Paris climate summit.
Basu's research focuses on the behavioral side of environmental challenges and includes addressing climate adaptation in the developing world through scenario planning. He helped establish a partnership between U-M and the United Nations Framework Convention on Climate Change, which has led to student projects on climate adaptation in the Seychelles, Namibia and Nepal.
"Due to the pandemic-induced postponement of COP26, the countries of the world are behind in their negotiations to decide on how to implement the 2015 Paris Agreement," he said. "Key negotiations to be carried out at the upcoming COP26 include increasing climate ambition from each country, determining how carbon markets will work, and financing climate action.
"The University of Michigan students attending COP26 represent the generation who will be impacted by climate change and will have to adapt to it. Their understanding of climate efforts at the international level can help them, in their careers, know which levers they can push to mitigate and adapt to climate change."
Contact: abasu@umich.edu
Kaitlin Raimi
Kaitlin Raimi, associate professor at the Ford School of Public Policy, is an expert on climate change communication and behavior. She investigates how individual actions to act on climate change interact with support for public policies. She also studies public perceptions of carbon removal techniques and how learning about these strategies affects public support for actions to reduce emissions in the first place.
"While most people are very aware of climate change itself, less than 20% of the public has ever heard of carbon removal," she said. "Experts fear that the increasing discussion of carbon removal could lull people (both members of the public and policymakers) into thinking that these strategies are a technological silver bullet—that we don't need to worry about polluting CO2 into the atmosphere because we can always vacuum it up later. Some studies have indeed found that learning about carbon removal can undermine public support for emissions-reductions policies.
"The truth is that carbon removal cannot replace efforts to reduce emissions; it is at best a strategy to help reach climate goals alongside substantial emissions reductions. The good news is that this misperception is easily corrected: When people are simply told that strategies like carbon removal are only a small piece in the big puzzle of climate action, they get it. Thus, both policymakers at COP26 and reporters covering it need to make clear to the public that even if carbon removal is included in the portfolio of strategies to meet climate goals, most of our efforts still need to focus on reducing emissions."
Contact: kraimi@umich.edu
Victor Li
Victor Li is a professor of civil and environmental engineering at the College of Engineering and director of the Center for Low Carbon Built Environment.
"To cut the carbon footprint of the built environment, it is imperative to deploy concrete with low embodied and operational carbon," he said. "This means concretes that can permanently sequester CO2, and which are extremely durable and contribute to eliminating repeated infrastructure repair. Such technology is currently available, waiting to be scaled."
Contact: 734-764-3368, vcli@umich.edu
Joseph Eisenberg
Joseph Eisenberg, professor of epidemiology at the School of Public Health, is an expert on infectious disease epidemiology. He is part of a group of scientists who are involved with the Modeling Infectious Disease Agents Study, an NIH-funded program that focuses on infectious disease transmission modeling with a particular focus on waterborne pathogens.
He's done extensive research in coastal Ecuador, which is experiencing increasingly dramatic and unpredictable patterns of flooding and drought because of climatic variability and change, including research showing the impact climate in the tropics has on transmission of rotavirus.
"Increasing extreme weather events will result in shifting patterns of infectious disease spread," he said. "Some regions will have more stable transmission and other regions less stable transmission, and this will vary across infectious diseases. Public health surveillance will need to learn how to adapt to these changing patterns."
Contact: jnse@umich.edu
Jonathan Overpeck
Jonathan Overpeck is an interdisciplinary climate scientist and dean of the School for Environment and Sustainability. He is an expert on paleoclimate, climate-vegetation interactions, climate and weather extremes, sea-level rise, the impacts of climate change and options for dealing with it. He served as a lead author on the authoritative Intergovernmental Panel on Climate Change 2007 and 2014 reports.
"The year 2021 has been unprecedented in terms of climate disasters, both in the United States and around the globe, and is a clear sign that the climate crisis is becoming truly dangerous to society and the planet," he said. "It is also clear that climate adaptation is essential, but not sufficient.
"To avoid much greater impact of climate change, the major carbon-emitting nations of the globe must act now to make major greenhouse gas emission reductions before 2030, and to keep global warming from exceeding 1.5 to 2.0 degrees C above preindustrial levels," he said. "Otherwise, we run a serious risk of crossing climate system thresholds beyond which much larger, and largely irreversible, climate changes and impacts become unavoidable. Politicians in Washington, D.C., and at the Glasgow COP26 need to do whatever it takes to save the planet and its people from a truly devastating future."
Contact: 520-369-0117, overpeck@umich.edu
Mark Flanner
Mark Flanner is a professor of climate and space sciences and engineering at the College of Engineering. His research focuses on understanding processes that govern the cryosphere—the Earth's ice sheets and glaciers.
"Events of the last decade have shown us that climate change is here and now," he said. "Although coordinated action is needed to reduce carbon dioxide emissions, there is also room to mitigate some warming through emissions of other pollutants like methane, black carbon and halocarbons."
Contact: 734-615-3605, flanner@umich.edu
Kyle Whyte
Kyle Whyte, professor of environmental justice at the School for Environment and Sustainability, serves on the White House Environmental Justice Advisory Council and is an enrolled member of the Citizen Potawatomi Nation. He is also a contributing author of the North America chapter in the IPCC's next Working Group II report, which assesses climate change impacts, adaptation and vulnerability. He also leads a subsection on Indigenous peoples and climate change in that report.
"Climate change impacts pose severe risks for communities who have experienced generations of economic, social, cultural and political discrimination," he said. "It remains to be seen whether countries will genuinely come to the table with solutions to lowering their carbon footprints that are—at the same time—environmentally just solutions.
"For generations, many Indigenous peoples have endured land grabs and environmental degradation at the hands of businesses and governments. It is now widely documented that land dispossession and pollution contribute to making some Indigenous peoples more vulnerable to current and future climate change impacts.
"Indigenous peoples are among the most active groups in the world calling for the transformation of energy systems toward reliance on just and renewable energy. Countries that fail to respect Indigenous peoples' self-determination, consent and aspirations for renewable energy economies will set forward policies that deepen environmental injustice and slow the transition to sustainability."
Contact: kwhyte@umich.edu
Sue Anne Bell
Sue Anne Bell, assistant professor at the School of Nursing, is a nurse scientist, nurse practitioner and disaster expert. Her research focuses broadly on the health effects of disasters and the impact of climate change on human health within a health equity framework. She is particularly interested in the long-term impact of disasters on human's health, in developing policy that protects and promotes health throughout the disaster management cycle, and in the relationship between community resilience, health disparities and disasters.
"Extreme weather events, from wildfires to floods to hurricanes, are devastating communities across the globe with increasing frequency and severity," she said. "What is badly needed is to be able to take a proactive approach to these events, one that considers mitigation and adaptation strategies, rather than the current reactive approach that is employed. We have to find a way to get ahead of these events."
Contact: sabell@umich.edu
Todd Allen
Todd Allen is professor and chair of nuclear engineering and radiological sciences at the College of Engineering and founding director of Fastest Path to Zero, an interdisciplinary U-M initiative that helps communities meet ambitious climate goals. He has written about the role that nuclear energy can play, including this op-ed in The Hill: "Global climate efforts require nuclear energy—and the US is positioned to lead."
"President Biden pledged to reduce U.S. greenhouse gas emissions to 50% of 2005 levels by 2030," he said. "Nuclear energy accounts for half of our existing zero-carbon electricity, but nuclear power plant shutdowns such as Palisades in Michigan are going ahead. We can't keep our promises by continuing to replace nuclear power with hopes, good intentions and fossil fuels."
Contact: traumich@umich.edu
Volker Sick
Volker Sick is a professor of mechanical engineering at the College of Engineering and director of the Global CO2 Initiative, a $4.5 million effort at U-M to accelerate the process of removing carbon dioxide from the air and turning it into useful products. Learn more about the effort and how it could lead to making Nike Airs out of air in this podcast.
"Strategies to remove carbon dioxide from the atmosphere need to be part of our approach to limiting climate change, and they will scale best if they are also economically sustainable," he said. "We propose global standards for comparing different technologies based on how well they fix carbon dioxide and for their profit and market potential. These will be necessary to guide both research and private investment—and fairly evaluate claims for carbon removal incentives such as the U.S. tax code 45Q."
Contact: vsick@umich.edu
Richard B. Rood
Richard Rood, professor of climate and space sciences and engineering at the College of Engineering, is an expert on U.S. weather modeling and can discuss the connection between weather, climate and society. He is also a co-principal investigator at GLISA, the Great Lakes Integrated Sciences and Assessments, a federally funded partnership between U-M and Michigan State University.
"The pressure is growing on all parties as we run up to COP26 in Glasgow. The extraordinary heat and flooding of summer 2021 in the Northern Hemisphere has heightened public concern about climate change and, in some cases, sent a shock through some scientists and policymakers," he said. "The resurgence of coal and oil use after the pandemic have sharpened the pincers of the reality we face as energy security, economic security and environmental security tighten on each other.
"The need to add substance and teeth to the Paris Agreement will be at the forefront of the meeting, but the importance of having widespread, regional, realistic approaches to address the inevitability of sustained warming will be emerging as the intractability of the global response becomes accepted."
U-M will send 13 student observers to the COP26 meeting, and Rood co-led a course training the students ahead of the event.
Contact: 301-526-8572, rbrood@umich.edu
Jeremy Bricker
Jeremy Bricker is an associate professor of civil and environmental engineering at the College of Engineering and heads the Hydraulic and Coastal Engineering Lab. His research focuses on threats posed to infrastructure by climate change and severe weather events.
"Climate change forces us to enact both mitigation and adaptation measures," he said. "Mitigation is helped by energy storage, to smooth the difference between power consumption and intermittent generation by renewable sources. A mix of storage technologies for different timescales is needed, and mature technologies like pumped hydro storage should play a large role in this.
"Adaptation also encompasses a variety of options, including grey and green measures, as well as retreat from areas that become hazardous. Do we take a reactive or proactive approach?"
Contact: 734-647-1843, jeremydb@umich.edu
Peter Adriaens
Peter Adriaens is a professor of civil and environmental engineering at the College of Engineering and a lead researcher at the Center for Smart Infrastructure Finance. His research focuses on new and efficient funding mechanisms for public and private infrastructure systems.
"It is estimated that $4 trillion will need to be invested over the next 10 years to stabilize carbon emissions," he said. "Climate finance policies, particularly in the EU, but discussions being initiated in the U.S., are increasingly requiring that environmental (or ESG) performance of investments needs to be tracked and made transparent to investors and the public.
"Our work seeks to integrate the financial and environmental performance of climate adaptation investments into rules-based smart contracts on the blockchain to reduce the disclosure friction that currently exists in the market disclosures of such performance. Blockchain Triangle, one of our partners in the Center for Smart Infrastructure Finance, was selected as one of 10 companies globally to present the value proposition of its 'ESG token' at COP26."
Contact: 734-763-8032, adriaens@umich.edu
Aubree Gordon
Aubree Gordon, associate professor of epidemiology at the School of Public Health, works on infectious disease epidemiology and global health, particularly the epidemiologic features and transmission of influenza. She is an investigator with the Centers of Excellence for Influenza Research and Response and director of the new Michigan Center for Infectious Diseases Threats and Pandemic Preparedness. She can discuss the impact that climate change can have in exacerbating the likelihood of future pandemics.
"Due to climate change and increasing global populations, it is likely that the emergence of viruses with the potential to cause large outbreaks or pandemics will only increase in the coming decades," she said.
Contact: gordonal@umich.edu
Barry Rabe
Barry Rabe is a professor at the Ford School of Public Policy and a nonresident senior fellow at the Brookings Institution. He is the author of the 2020 book "Trump, the Administrative Presidency, and Federalism," which examines U.S. withdrawal from the Paris climate agreement and other executive actions whereby former President Trump reversed direction from former President Obama.
"The upcoming COP26 meeting presents a major test of the ability of the United States to not only pledge renewed commitment to climate action but whether it can actually make a convincing case that it will actually deliver on any pledges," he said.
"The U.S. leadership desperately wants to demonstrate credibility after a quarter century of ups and downs in American policy and a general failure to sustain a serious climate mitigation commitment. Pending decisions in Congress will have enormous influence on whether the U.S. can emerge as a credible player internationally."
Contact: 734-765-1677, brabe@umich.edu, @BarryRabe
Browse news by region:
Latin America (114)
Multiregional (110)
Newsroom Archive:

redpajama_set_name: RedPajamaCommonCrawl


text:
SportsFootballJets
Donnel Pumphrey isn't coming up short in eyes of scouts
San Diego State running back Donnel Pumphrey smiles after being named the most valuable player after the Las Vegas Bowlagainst Houston on Saturday, Dec. 17, 2016, in Las Vegas. Credit: AP / David Becker
By Kimberley A. Martin kimberley.martin@newsday.com Updated January 26, 2017 4:06 PM
MOBILE, Ala. — Donnel Pumphrey knew the question before it was even asked.
The San Diego State running back and all-time leading rusher in NCAA FBS history knows his slight frame has NFL scouts, coaches and executives wondering one thing: Can he pass-block? But Pumphrey (5-8 1⁄4, 169 pounds) has been quick to highlight his other attributes, starting with his mental make-up.
"I have heart," he said with a smile this week. "I'm going to hit them regardless, whether they hit me or not. I'm a football player and football's a contact sport."
While the Jets have spent plenty of time getting acquainted with larger Senior Bowl prospects such as tight ends Gerald Everett (South Alabama) and O.J. Howard (Alabama), outside linebacker Ryan Anderson (Alabama) and offensive tackle Antonio Garcia (Troy), they got a taste of Pumphrey's self-confidence, too.
Two Jets scouts spent time talking to the diminutive running back after the South team's practice at Ladd-Peebles Stadium on Wednesday.
"They're all interested in seeing whether I can pass-block. It's a little disappointing, but it's all good," he said of his current weight. " . . . I played at 175 pounds most of my career. But I'm excited to play at the next level."
Louisiana Tech wide receiver Trent Taylor is technically the shortest Senior Bowl participant. He's listed at 5-8, but is actually 5-7 5/8. But Pumphrey knows that he has a lot to prove this week as the smallest running back on either Senior Bowl squad. Nevertheless, he said the NFL scouts who have spoken to him don't seem overly concerned about his size.
"Most guys told me that whatever size I'm comfortable with, that's what they want me to play at," he said of getting back up to 175 pounds. "That's what got me to this point."
Pumphrey likely won't be drafted earlier than the fourth round in late April, but his South team coach, Hue Jackson, praised the running back. "He just needs to keep doing what he's done," the Cleveland Browns coach told AL.com. "He's been sensational, as you can see. He's made a lot of plays. I know a lot of people would talk about his stature, but he's tough, he knows how to play."
Though Pumphrey is the all-time leading rusher in NCAA FBS history with 6,405 yards, some have questioned whether the record should truly belong to him. He passed former Wisconsin standout and 1999 Heisman Trophy winner Ron Dayne for the top spot on the NCAA's career rushing list with his 115-yard performance in San Diego State's 34-10 Las Vegas Bowl win over Houston on Dec. 17. Dayne is second on the list with 6,397 rushing yards, but that total doesn't include the 728 yards he rushed for in bowl games. (Before 2002, the NCAA did not include bowl statistics.)
Either way, Pumphrey's not worried about whether he stays atop the list.
"Records are meant to be broken, so whoever breaks it, kudos to them," he said. "Seriously. I honestly don't play for records, I play to win the game. That's what it's all about with me."
By Kimberley A. Martin kimberley.martin@newsday.com
Latest Jets headlines
As the playoffs begin, some NFL awards
Jets' Berrios earns All-Pro honors
Jets QB Zach Wilson sums up rookie season
With rough rookie season over, Wilson believes future will be brighter
Jets GM Douglas: 'I have to do a better job'


Hello, I'd like more information about the listing I found on Homes.com at 96 Hidden Valley Drive.
This home is located at 96 Hidden Valley Drive Tuftonboro, NH 03816 US and has been listed on Homes.com since 25 March 2019 and is currently priced at $349,000, approximately $519 per square foot. This property was built in 1960. 96 Hidden Valley Drive is within the school district(s) Governor Wentworth Regional School District with nearby schools including Tuftonboro Central School, Kingswood Regional Middle School, and Kingswood Regional High School.


Stroovi.com - The cool Jingdianjiaju2 B digital photography above, is section of Minimalism decor article which is categorized within Others category and written on April 8th, 2014 01:24:16 AM by Joyce. Hopefully, you can find extensive information and guides about Jingdianjiaju2 B and Minimalism decor, which might be interested to give more value for your own house.
The Jingdianjiaju2 B digital photography above, is one of the digital photography about Minimalism decor, posted at April 8th, 2014 01:24:16 AM. This current digital photography of Jingdianjiaju2 B has dimension 500 x 351 pixels. You may download the Jingdianjiaju2 B digital photography above by clicking the right mouse within the digital photography to get the high-res version.
Here is main clue on Jingdianjiaju2 B. We have the world class source for Minimalism decor inside of the Others category. Check it out for yourself now! You may acquire Minimalism decor guidelines and read the latest news of Jingdianjiaju2 B in this page. Thank you for visiting Stroovi.com.


text:
Developing story
Massive fire engulfs 24-story London apartment building
byCatherine Garcia
Screenshot/Twitter/CBS News
A 24-story apartment building in West London went up in flames early Wednesday morning and "a number of people are being treated for a range of injuries," London Metropolitan Police said. (UPDATE: London's fire commissioner said there are "a number of fatalities" from the fire, without providing any estimates.)
Massive fire engulfs 27-story apartment building in London; 45 fire engines and 200 firefighters called to the scene, @LondonFire reports. pic.twitter.com/82bbLu0sEg
— CBS News (@CBSNews) June 14, 2017
The 120-unit Grenfell Tower is about a mile away from Kensington Palace and part of the Lancaster West housing estate. Fire officials say 40 fire engines and 200 firefighters have been dispatched to fight the inferno, and witnesses described hearing people screaming for help from the windows. The cause of the fire has not yet been determined.


text:
/*
 * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
 */

#ifdef HAVE_CONFIG_H
# include <config.h>
#endif

#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>

#ifndef _MSC_VER
# include <unistd.h>
# include <libgen.h>
#endif

#ifndef _FILE_OFFSET_BITS
# define _FILE_OFFSET_BITS  64
#endif

#ifdef HAVE_FEATURES_H
# include <features.h>
#endif
#include <ctype.h>
#include <errno.h>

#include "ecore_file_private.h"

int _ecore_file_log_dom = -1;
static int _ecore_file_init_count = 0;

/* externally accessible functions */
/**
 * Initialize Ecore_File and the services it will use. Call this function
 * once before you use any of the ecore file functions.
 * @return Return the number howoften ecore_file_init() was call succesfully;
 *         0 if it failed.
 */
EAPI int
ecore_file_init()
{
   if (++_ecore_file_init_count != 1)
     return _ecore_file_init_count;
   _ecore_file_log_dom = eina_log_domain_register("EcoreFile", ECORE_FILE_DEFAULT_LOG_COLOR);
   if(_ecore_file_log_dom < 0)
     {
       EINA_LOG_ERR("Impossible to create a log domain for the ecore file module.");
       return --_ecore_file_init_count;
     }
   ecore_file_path_init();
   ecore_file_monitor_init();
   ecore_file_download_init();

   /* FIXME: were the tests disabled for a good reason ? */

   /*
   if (!ecore_file_monitor_init())
     goto shutdown_ecore_file_path;

   if (!ecore_file_download_init())
     goto shutdown_ecore_file_monitor;
   */

   return _ecore_file_init_count;

   /*
 shutdown_ecore_file_monitor:
   ecore_file_monitor_shutdown();
 shutdown_ecore_file_path:
   ecore_file_path_shutdown();

   return --_ecore_file_init_count;
   */
}

/**
 * Shutdown the Ecore_File
 * @return returns the number of libraries that still uses Ecore_File
 */
EAPI int
ecore_file_shutdown()
{
   if (--_ecore_file_init_count != 0)
     return _ecore_file_init_count;

   ecore_file_download_shutdown();
   ecore_file_monitor_shutdown();
   ecore_file_path_shutdown();
   eina_log_domain_unregister(_ecore_file_log_dom);
   _ecore_file_log_dom = -1;
   return _ecore_file_init_count;
}

/**
 * Get the time of the last modification to the give file
 * @param file The name of the file
 * @return Return the time of the last data modification, if an error should
 *         occur it will return 0
 */
EAPI long long
ecore_file_mod_time(const char *file)
{
   struct stat st;

   if (stat(file, &st) < 0) return 0;
   return st.st_mtime;
}

/**
 * Get the size of the given file
 * @param  file The name of the file
 * @return The size of the file in byte
 */
EAPI long long
ecore_file_size(const char *file)
{
   struct stat st;

   if (stat(file, &st) < 0) return 0;
   return st.st_size;
}

/**
 * Check if file exists
 * @param  file The name of the file
 * @return EINA_TRUE if file exists on local filesystem, EINA_FALSE otherwise
 */
EAPI Eina_Bool
ecore_file_exists(const char *file)
{
   struct stat st;

   /*Workaround so that "/" returns a true, otherwise we can't monitor "/" in ecore_file_monitor*/
   if (stat(file, &st) < 0 && strcmp(file, "/")) return EINA_FALSE;
   return EINA_TRUE;
}

/**
 * Check if file is a directory
 * @param  file The name of the file
 * @return EINA_TRUE if file exist and is a directory, EINA_FALSE otherwise
 */
EAPI Eina_Bool
ecore_file_is_dir(const char *file)
{
   struct stat st;

   if (stat(file, &st) < 0) return EINA_FALSE;
   if (S_ISDIR(st.st_mode)) return EINA_TRUE;
   return EINA_FALSE;
}

static mode_t default_mode = S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;

/**
 * Create a new directory
 * @param  dir The name of the directory to create
 * @return EINA_TRUE on successfull creation, EINA_FALSE on failure
 *
 * The directory is created with the mode: S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH
 */
EAPI Eina_Bool
ecore_file_mkdir(const char *dir)
{
   if (mkdir(dir, default_mode) < 0) return EINA_FALSE;
   return EINA_TRUE;
}

/**
 * Create complete directory in a batch.
 *
 * @param dirs list of directories, null terminated.
 * @return number of successfull directories created, -1 if dirs is NULL.
 *
 * @see ecore_file_mkdir() and ecore_file_mkpaths()
 */
EAPI int
ecore_file_mkdirs(const char **dirs)
{
   int i = 0;

   if (!dirs) return -1;

   for (; *dirs != NULL; dirs++)
     if (ecore_file_mkdir(*dirs))
       i++;
   return i;
}

/**
 * Create complete list of sub-directories in a batch (optimized).
 *
 * @param base the base directory to act on, will be created if does
 *     not exists.
 * @param subdirs list of directories, null terminated. These are
 *     created similarly to ecore_file_mkdir(), so same mode and whole
 *     path to that point must exists. So if creating base/a/b/c,
 *     provide subdirs with "a", "a/b" and "a/b/c" in that order!
 *
 * @return number of successfull directories created, -1 if subdirs or
 *     base is NULL or invalid.
 *
 * @see ecore_file_mkdir() and ecore_file_mkpaths()
 */
EAPI int
ecore_file_mksubdirs(const char *base, const char **subdirs)
{
#ifndef HAVE_ATFILE_SOURCE
   char buf[PATH_MAX];
   int baselen;
#else
   int fd;
   DIR *dir;
#endif
   int i;

   if (!subdirs) return -1;
   if ((!base) || (base[0] == '\0')) return -1;

   if ((!ecore_file_is_dir(base)) && (!ecore_file_mkpath(base)))
     return 0;

#ifndef HAVE_ATFILE_SOURCE
   baselen = eina_strlcpy(buf, base, sizeof(buf));
   if ((baselen < 1) || (baselen + 1 >= (int)sizeof(buf)))
     return 0;

   if (buf[baselen - 1] != '/')
     {
	buf[baselen] = '/';
	baselen++;
     }
#else
   dir = opendir(base);
   if (!dir)
     return 0;
   fd = dirfd(dir);
#endif

   i = 0;
   for (; *subdirs != NULL; subdirs++)
     {
	struct stat st;

#ifndef HAVE_ATFILE_SOURCE
	eina_strlcpy(buf + baselen, *subdirs, sizeof(buf) - baselen);
	if (stat(buf, &st) == 0)
#else
	if (fstatat(fd, *subdirs, &st, 0) == 0)
#endif
	  {
	     if (S_ISDIR(st.st_mode))
	       {
		  i++;
		  continue;
	       }
	  }
	else
	  {
	     if (errno == ENOENT)
	       {
#ifndef HAVE_ATFILE_SOURCE
		  if (mkdir(buf, default_mode) == 0)
#else
		  if (mkdirat(fd, *subdirs, default_mode) == 0)
#endif
		    {
		       i++;
		       continue;
		    }
		 }
	    }
     }

#ifdef HAVE_ATFILE_SOURCE
   closedir(dir);
#endif

   return i;
}

/**
 * Delete the given dir
 * @param  dir The name of the directory to delete
 * @return EINA_TRUE on success, EINA_FALSE on failure
 */
EAPI Eina_Bool
ecore_file_rmdir(const char *dir)
{
   if (rmdir(dir) < 0) return EINA_FALSE;
   return EINA_TRUE;
}

/**
 * Delete the given file
 * @param  file The name of the file to delete
 * @return EINA_TRUE on success, EINA_FALSE on failure
 */
EAPI Eina_Bool
ecore_file_unlink(const char *file)
{
   if (unlink(file) < 0) return EINA_FALSE;
   return EINA_TRUE;
}

/**
 * Remove the given file or directory
 * @param  file The name of the file or directory to delete
 * @return EINA_TRUE on success, EINA_FALSE on failure
 */
EAPI Eina_Bool
ecore_file_remove(const char *file)
{
   if (remove(file) < 0) return EINA_FALSE;
   return EINA_TRUE;
}

/**
 * Delete a directory and all its contents
 * @param  dir The name of the directory to delete
 * @return EINA_TRUE on success, EINA_FALSE on failure
 *
 * If dir is a link only the link is removed
 */
EAPI Eina_Bool
ecore_file_recursive_rm(const char *dir)
{
   DIR *dirp;
   struct dirent *dp;
   char path[PATH_MAX], buf[PATH_MAX];
   struct stat st;
   int ret;

   if (readlink(dir, buf, sizeof(buf)) > 0)
     return ecore_file_unlink(dir);

   ret = stat(dir, &st);
   if ((ret == 0) && (S_ISDIR(st.st_mode)))
     {
	ret = 1;
	if (stat(dir, &st) == -1) return EINA_FALSE;
	dirp = opendir(dir);
	if (dirp)
	  {
	     while ((dp = readdir(dirp)))
	       {
		  if ((strcmp(dp->d_name, ".")) && (strcmp(dp->d_name, "..")))
		    {
		       snprintf(path, PATH_MAX, "%s/%s", dir, dp->d_name);
		       if (!ecore_file_recursive_rm(path))
			 ret = 0;
		    }
	       }
	     closedir(dirp);
	  }
	if (!ecore_file_rmdir(dir)) ret = 0;
        if (ret)
            return EINA_TRUE;
        else
            return EINA_FALSE;
     }
   else
     {
	if (ret == -1) return EINA_FALSE;
	return ecore_file_unlink(dir);
     }
}

static inline Eina_Bool
_ecore_file_mkpath_if_not_exists(const char *path)
{
   struct stat st;

   if (stat(path, &st) < 0)
     return ecore_file_mkdir(path);
   else if (!S_ISDIR(st.st_mode))
     return EINA_FALSE;
   else
     return EINA_TRUE;
}

/**
 * Create a complete path
 * @param  path The path to create
 * @return EINA_TRUE on success, EINA_FALSE on failure
 *
 * @see ecore_file_mkpaths() and ecore_file_mkdir()
 */
EAPI Eina_Bool
ecore_file_mkpath(const char *path)
{
   char ss[PATH_MAX];
   unsigned int i;

   if (ecore_file_is_dir(path))
     return EINA_TRUE;

   for (i = 0; path[i] != '\0'; ss[i] = path[i], i++)
     {
	if (i == sizeof(ss) - 1) return EINA_FALSE;
	if ((path[i] == '/') && (i > 0))
	  {
	     ss[i] = '\0';
	     if (!_ecore_file_mkpath_if_not_exists(ss))
	       return EINA_FALSE;
	  }
     }
   ss[i] = '\0';
   return _ecore_file_mkpath_if_not_exists(ss);
}

/**
 * Create complete paths in a batch.
 *
 * @param paths list of paths, null terminated.
 * @return number of successfull paths created, -1 if paths is NULL.
 *
 * @see ecore_file_mkpath() and ecore_file_mkdirs()
 */
EAPI int
ecore_file_mkpaths(const char **paths)
{
   int i = 0;

   if (!paths) return -1;

   for (; *paths != NULL; paths++)
     if (ecore_file_mkpath(*paths))
       i++;
   return i;
}

/**
 * Copy a file
 * @param  src The name of the source file
 * @param  dst The name of the destination file
 * @return EINA_TRUE on success, EINA_FALSE on failure
 */
EAPI Eina_Bool
ecore_file_cp(const char *src, const char *dst)
{
   FILE *f1, *f2;
   char buf[16384];
   char realpath1[PATH_MAX], realpath2[PATH_MAX];
   size_t num;
   Eina_Bool ret = EINA_TRUE;

   if (!realpath(src, realpath1)) return EINA_FALSE;
   if (realpath(dst, realpath2) && !strcmp(realpath1, realpath2)) return EINA_FALSE;

   f1 = fopen(src, "rb");
   if (!f1) return EINA_FALSE;
   f2 = fopen(dst, "wb");
   if (!f2)
     {
	fclose(f1);
	return EINA_FALSE;
     }
   while ((num = fread(buf, 1, sizeof(buf), f1)) > 0)
     {
	if (fwrite(buf, 1, num, f2) != num) ret = EINA_FALSE;
     }
   fclose(f1);
   fclose(f2);
   return ret;
}

/**
 * Move a file
 * @param  src The name of the source file
 * @param  dst The name of the destination file
 * @return EINA_TRUE on success, EINA_FALSE on failure
 */
EAPI Eina_Bool
ecore_file_mv(const char *src, const char *dst)
{
   char buf[PATH_MAX];
   int fd;

   if (rename(src, dst))
     {
        // File cannot be moved directly because
        // it resides on a different mount point.
	if (errno == EXDEV)
	  {
	     struct stat st;

             // Make sure this is a regular file before
             // we do anything fancy.
	     stat(src, &st);
	     if (S_ISREG(st.st_mode))
	       {
		  char *dir;

		  dir = ecore_file_dir_get(dst);
		  // Since we can't directly rename, try to
		  // copy to temp file in the dst directory
		  // and then rename.
		  snprintf(buf, sizeof(buf), "%s/.%s.tmp.XXXXXX",
			   dir, ecore_file_file_get(dst));
		  free(dir);
		  fd = mkstemp(buf);
		  if (fd < 0)
		    {
		       perror("mkstemp");
		       goto FAIL;
		    }
		  close(fd);

		  // Copy to temp file
		  if (!ecore_file_cp(src, buf))
		    goto FAIL;

		  // Set file permissions of temp file to match src
		  chmod(buf, st.st_mode);

		  // Try to atomically move temp file to dst
		  if (rename(buf, dst))
		    {
		       // If we still cannot atomically move
		       // do a normal copy and hope for the best.
		       if (!ecore_file_cp(buf, dst))
			 goto FAIL;
		    }

		  // Delete temporary file and src
		  ecore_file_unlink(buf);
		  ecore_file_unlink(src);
		  goto PASS;
	       }
	  }
	goto FAIL;
     }

PASS:
   return EINA_TRUE;

FAIL:
   return EINA_FALSE;
}

/**
 * Create a symbolic link
 * @param  src The name of the file to link
 * @param  dest The name of link
 * @return EINA_TRUE on success, EINA_FALSE on failure
 */
EAPI Eina_Bool
ecore_file_symlink(const char *src, const char *dest)
{
   if (!symlink(src, dest)) return EINA_TRUE;

   return EINA_FALSE;
}

/**
 * Get the canonicalized absolute pathname
 * @param  file The file path
 * @return The canonicalized absolute pathname; on failure it will return
 *         an empty string
 */
EAPI char *
ecore_file_realpath(const char *file)
{
   char buf[PATH_MAX];

   /*
    * Some implementations of realpath do not conform to the SUS.
    * And as a result we must prevent a null arg from being passed.
    */
   if (!file) return strdup("");
   if (!realpath(file, buf)) return strdup("");

   return strdup(buf);
}

/**
 * Get the filename from a give path
 * @param  path The complete path
 * @return Only the file name
 */
EAPI const char *
ecore_file_file_get(const char *path)
{
   char *result = NULL;

   if (!path) return NULL;
   if ((result = strrchr(path, '/'))) result++;
   else result = (char *)path;
   return result;
}

/**
 * Get the directory where file reside
 * @param  file The name of the file
 * @return The directory name
 */
EAPI char *
ecore_file_dir_get(const char *file)
{
   char *p;
   char buf[PATH_MAX];

   if (!file) return NULL;
   strncpy(buf, file, PATH_MAX);
   buf[PATH_MAX - 1] = 0;
   p = dirname(buf);
   return strdup(p);
}

/**
 * Check if file can be read
 * @param  file The name of the file
 * @return EINA_TRUE if the file is readable, EINA_FALSE otherwise
 */
EAPI Eina_Bool
ecore_file_can_read(const char *file)
{
   if (!file) return EINA_FALSE;
   if (!access(file, R_OK)) return EINA_TRUE;
   return EINA_FALSE;
}

/**
 * Check if file can be written
 * @param  file The name of the file
 * @return EINA_TRUE if the file is writable, EINA_FALSE otherwise
 */
EAPI Eina_Bool
ecore_file_can_write(const char *file)
{
   if (!file) return EINA_FALSE;
   if (!access(file, W_OK)) return EINA_TRUE;
   return EINA_FALSE;
}

/**
 * Check if file can be executed
 * @param  file The name of the file
 * @return EINA_TRUE if the file can be executed, EINA_FALSE otherwise
 */
EAPI Eina_Bool
ecore_file_can_exec(const char *file)
{
   if (!file) return EINA_FALSE;
   if (!access(file, X_OK)) return EINA_TRUE;
   return EINA_FALSE;
}

/**
 * Get the path pointed by link
 * @param  link The name of the link
 * @return The path pointed by link or NULL
 */
EAPI char *
ecore_file_readlink(const char *link)
{
   char buf[PATH_MAX];
   int count;

   if ((count = readlink(link, buf, sizeof(buf))) < 0) return NULL;
   buf[count] = 0;
   return strdup(buf);
}

/**
 * Get the list of the files and directories in a given directory. The list
 * will be sorted with strcoll as compare function. That means that you may
 * want to set the current locale for the category LC_COLLATE with setlocale().
 * For more information see the manual pages of strcoll and setlocale.
 * The list will not contain the directory entries for '.' and '..'.
 * @param  dir The name of the directory to list
 * @return Return an Eina_List containing all the files in the directory;
 *         on failure it returns NULL.
 */
EAPI Eina_List *
ecore_file_ls(const char *dir)
{
   char *f;
   DIR *dirp;
   struct dirent *dp;
   Eina_List *list = NULL;

   dirp = opendir(dir);
   if (!dirp) return NULL;

   while ((dp = readdir(dirp)))
     {
	if ((strcmp(dp->d_name, ".")) && (strcmp(dp->d_name, "..")))
	  {
	       f = strdup(dp->d_name);
	       list = eina_list_append(list, f);
	  }
     }
   closedir(dirp);

   list = eina_list_sort(list, eina_list_count(list), EINA_COMPARE_CB(strcoll));

   return list;
}

/**
 * FIXME: To be documented.
 */
EAPI char *
ecore_file_app_exe_get(const char *app)
{
   char *p, *pp, *exe1 = NULL, *exe2 = NULL;
   char *exe = NULL;
   int in_quot_dbl = 0, in_quot_sing = 0, restart = 0;

   if (!app) return NULL;

   p = (char *)app;
restart:
   while ((*p) && (isspace(*p))) p++;
   exe1 = p;
   while (*p)
     {
	if (in_quot_sing)
	  {
	     if (*p == '\'')
	       in_quot_sing = 0;
	  }
	else if (in_quot_dbl)
	  {
	     if (*p == '\"')
	       in_quot_dbl = 0;
	  }
	else
	  {
	     if (*p == '\'')
	       in_quot_sing = 1;
	     else if (*p == '\"')
	       in_quot_dbl = 1;
	     if ((isspace(*p)) && (!((p > app) && (p[-1] != '\\'))))
	       break;
	  }
	p++;
     }
   exe2 = p;
   if (exe2 == exe1) return NULL;
   if (*exe1 == '~')
     {
	char *homedir;
	int len;

	/* Skip ~ */
	exe1++;

	homedir = getenv("HOME");
	if (!homedir) return NULL;
	len = strlen(homedir);
	if (exe) free(exe);
	exe = malloc(len + exe2 - exe1 + 2);
	if (!exe) return NULL;
	pp = exe;
	if (len)
	  {
	     strcpy(exe, homedir);
	     pp += len;
	     if (*(pp - 1) != '/')
	       {
		  *pp = '/';
		  pp++;
	       }
	  }
     }
   else
     {
	if (exe) free(exe);
	exe = malloc(exe2 - exe1 + 1);
	if (!exe) return NULL;
	pp = exe;
     }
   p = exe1;
   restart = 0;
   in_quot_dbl = 0;
   in_quot_sing = 0;
   while (*p)
     {
	if (in_quot_sing)
	  {
	     if (*p == '\'')
	       in_quot_sing = 0;
	     else
	       {
		  *pp = *p;
		  pp++;
	       }
	  }
	else if (in_quot_dbl)
	  {
	     if (*p == '\"')
	       in_quot_dbl = 0;
	     else
	       {
		  /* techcincally this is wrong. double quotes also accept
		   * special chars:
		   *
		   * $, `, \
		   */
		  *pp = *p;
		  pp++;
	       }
	  }
	else
	  {
	     /* technically we should handle special chars:
	      *
	      * $, `, \, etc.
	      */
	     if ((p > exe1) && (p[-1] == '\\'))
	       {
		  if (*p != '\n')
		    {
		       *pp = *p;
		       pp++;
		    }
	       }
	     else if ((p > exe1) && (*p == '='))
	       {
		  restart = 1;
		  *pp = *p;
		  pp++;
	       }
	     else if (*p == '\'')
	       in_quot_sing = 1;
	     else if (*p == '\"')
	       in_quot_dbl = 1;
	     else if (isspace(*p))
	       {
		  if (restart)
		    goto restart;
		  else
		    break;
	       }
	     else
	       {
		  *pp = *p;
		  pp++;
	       }
	  }
	p++;
     }
   *pp = 0;
   return exe;
}

/**
 * Add the escape sequence ('\\') to the given filename
 * @param  filename The file name
 * @return The file name with special characters escaped; if the length of the
 *         resulting string is longer than PATH_MAX it will return NULL
 */
EAPI char *
ecore_file_escape_name(const char *filename)
{
   const char *p;
   char *q;
   char buf[PATH_MAX];

   p = filename;
   q = buf;
   while (*p)
     {
	if ((q - buf) > (PATH_MAX - 6)) return NULL;
	if (
	    (*p == ' ') || (*p == '\t') || (*p == '\n') ||
	    (*p == '\\') || (*p == '\'') || (*p == '\"') ||
	    (*p == ';') || (*p == '!') || (*p == '#') ||
	    (*p == '$') || (*p == '%') || (*p == '&') ||
	    (*p == '*') || (*p == '(') || (*p == ')') ||
	    (*p == '[') || (*p == ']') || (*p == '{') ||
	    (*p == '}') || (*p == '|') || (*p == '<') ||
	    (*p == '>') || (*p == '?')
	    )
	  {
	     *q = '\\';
	     q++;
	  }
	*q = *p;
	q++;
	p++;
     }
   *q = 0;
   return strdup(buf);
}

/**
 * Remove the extension from a given path
 * @param  path The name of the file
 * @return A newly allocated string with the extension stripped out or NULL on errors
 */
EAPI char *
ecore_file_strip_ext(const char *path)
{
   char *p, *file = NULL;

   p = strrchr(path, '.');
   if (!p)
     file = strdup(path);
   else if (p != path)
     {
	file = malloc(((p - path) + 1) * sizeof(char));
	if (file)
	  {
	     memcpy(file, path, (p - path));
	     file[p - path] = 0;
	  }
     }

   return file;
}

/**
 * Check if the given directory is empty. The '.' and '..' files will be ignored.
 * @param  dir The name of the directory to check
 * @return 1 if directory is empty, 0 if it has at least one file or -1 in case of errors
 */
EAPI int
ecore_file_dir_is_empty(const char *dir)
{
   DIR *dirp;
   struct dirent *dp;

   dirp = opendir(dir);
   if (!dirp) return -1;

   while ((dp = readdir(dirp)))
     {
	if ((strcmp(dp->d_name, ".")) && (strcmp(dp->d_name, "..")))
	  {
	     closedir(dirp);
	     return 0;
	  }
     }

   closedir(dirp);
   return 1;
}

redpajama_set_name: RedPajamaGithub


Special Collections and University Archives has recently enlarged its holdings of materials related to British designer William Morris (1834-1896), including the purchase of two printed leaves from Kelmscott Press's The works of Geoffrey Chaucer and the cataloguing of a sixteenth century book printed by Wynken de Worde that was previously part of Morris's personal library at Kelmscott House.
We recognize William Morris as one of the previous owners of this copy through the presence of his bookplate on the interior cover that reads, "From the library of William Morris, Kelmscott House, Hammersmith." In addition to Morris's work in design and bookmaking with the Kelmscott Press, he also was an avid book collector and held many volumes in his personal library. His library included a wide range of books, from medieval manuscripts and incunabula to contemporary nineteenth century works. Most recently, scholars William S. Peterson and Sylvia Holton Peterson have been compiling a catalogue of Morris's library to record the provenance and current locations of the books and manuscripts previously owned at Kelmscott House, which currently includes 2,400 entries.
UO Special Collections and University Archives also holds a second book bearing Morris's bookplate from Kelmscott House, Astesano's Summa de casibus conscientiae, a fifteenth century work on canon law. These two books from Morris's library came to Special Collections and University Archives with the 1980 acquisition of Bishop William A. Quayle's collection of books on the history of printing.
Special Collections and University Archives also holds two printed leaves from Morris's most celebrated work, The works of Geoffrey Chaucer, now newly imprinted, published in 1896 by the Kelmscott Press. The Kelmscott Chaucer is heralded as "the culmination of Morris's work as a master craftsman and of his collaboration and friendship with Burne-Jones."1 These finely printed leaves are specimen of Morris's idealized "the book beautiful" and of book design during the Arts and Crafts movement.
The two leaves are printed in red and black ink on paper and measure 43cm tall. The first leaf (signed h6, pages 107-108) contains lines from "The Tale of the Wife of Bath" from the Canterbury Tales. The second leaf (signed ii2, pages -484) contains text from the second and third pages of the second book of Troilus and Criseyde. The latter leaf also includes an illustration cut by Pre-Raphaelite artist and Morris collaborator, Edward Burne-Jones (1833-1898). The decorative borders, initials, and font were designed by William Morris.
These works supplement a modest collection of other works published by the Kelmscott Press and William Morris held by Special Collections and University Archives including: The Nature of Gothic: A Chapter of the Stones of Venice (1892), The Recuyell of the Histories of Troye (1892), Maud: A Monodrama (1893), The Wood Beyond the World (1894), Of the Friendship of Amis and Amile (1894), and The Shepheardes Calendar (1896) and others.
Richmond, Velma Bourgeois. "Edward Burne-Jones's Chaucer Portraits in the Kelmscott "Chaucer". The Chaucer Review 40, no. 1 (2005): 1-38.


text:
For Franchise Information, Call (480) 372-9581
Text (480) 470-0602 For Franchise Info
Research The Joint
What Is The Joint Chiropractic Franchise?
The Joint Chiropractic Story
Initial Investment and Startup Costs
How Big Is The Chiropractic Industry?
Do I Have to Be a Chiropractor?
How Much Revenue Do Clinics Generate?
How Do We Help You Find a Great Location?
Why Is The Joint Chiropractic An Attractive Business Model?
Available Territories and Growth Markets
Meet Our Franchise Owners
Why Do Our Patients Love Us?
The Joint Chiropractic Franchise FAQ
Why Own The Joint Chiropractic Franchise?
The Joint Chiropractic Franchise Allows Chiropractors to Help Patients Heal
The Joint Offers a Path to Ownership for Chiropractors
Common Questions Answered: Q&A with Dr. Steven Knauf
The world's largest chiropractic franchise is a straightforward, proven business model that is quick to scale
What makes The Joint the fastest growing chiropractic franchise in the nation, with over 530 clinics open throughout the country? The answer is simple: The Joint offers a straightforward business model that is easy to understand, simple to implement and quick to scale.
The Joint transformed the way chiropractic care is delivered in this country by emphasizing convenience, affordability and quality of care that is delivered with the 21st-century consumer in mind. Unlike traditional chiropractic clinics, The Joint places its clinics where people already go, in high-end shopping centers next to supermarkets and coffee shops. With a gym-like membership that does away with the need for insurance, The Joint encourages walk-ins and keeps evening and weekend hours, which allows our patients to get treated for their pain on their lunch breaks from work, while shopping during the evening or before a weekend out with their families.
The difference is apparent as soon as you set foot in one of The Joint's clinics. The small footprint of 1,200 square feet on average is made to look much larger due to The Joint's high-end chic aesthetic, which invites patients to feel relaxed. The only staff you'll see will be one person at the front desk who will greet you, and one or two doctors in the back, who can treat you in as little as five minutes. If we can treat you in as little as five minutes, imagine how many people we can treat in the span of a single day, a month or a year. The numbers add up quickly.
The small footprint, limited overhead, minimal number of employees, combined with a volume-based, cash-only basis that meets the very specific need for chiropractic care makes The Joint a wise investment.
"We're in daily-use centers, where people can get in and get out extremely quickly," says Eric Simon, Senior Vice President of The Joint Chiropractic. "This isn't a 45 minute process — people can be treated in five minutes and get the treatment they need to deal with their daily pain. As a result, our franchise owners can treat many more patients than a traditional chiropractic clinic could possibly imagine. From an investment perspective, all of your costs are fixed. You have a small number of employees, one or two wellness coordinators to serve as your front desk staff, and one or two doctors depending on your volume. Because the model is so simple to understand, you can scale very quickly, because you can do this over and over again."
It may surprise you to learn that The Joint's franchise network consists of both chiropractors and entrepreneurs who franchised with The Joint without any experience in either the chiropractic industry or medical field.
The reason why chiropractors choose to franchise with The Joint, outside of wanting a business that avoids the nightmares and pitfalls of dealing with the insurance industry for payment, are much the same as the entrepreneurs who franchise with us. Our proven business model is clean and easy-to-run, simple to operate and the scalability of our model is evident in the fact that more than half of our franchise owners own multiple clinics. Most importantly, our franchise owners desire to own a business that truly helps improve people's' lives.
For Robb Quinlan, who was a professional baseball player with the Los Angeles Angels before becoming the owner of four franchise clinics with The Joint in Minneapolis, Minnesota, The Joint is a way to get into business that serves a noble purpose in the community.
"When I discovered The Joint, and I saw how they were making chiropractic care more accessible, more affordable and convenient for people, I knew that I wanted to become a franchisee. I recognized that The Joint is the future of the chiropractic industry," Quinlan says. "The Joint is a great business for entrepreneurs who want to make a difference."
Success begins with your passion for helping others
If you're passionate about helping people heal and want to take an active, daily role in your business, The Joint may be the right opportunity for you.
"If you want to sit back and pray that people will come into your business, you should just buy the stock," Simon says. "We're looking for people who want to take an active role in their businesses, be a presence in their communities, and truly make an impact in the lives of their patients. Our robust support infrastructure will help you with everything else, from marketing to hiring doctors, and beyond. You just need to have the passion for helping people and be ready to make a difference in your community."
For Franchise Information,
Want to learn more about opening your own The Joint Franchise? Fill out this form to get started:
Select OneAlabamaAlaskaArizonaArkansasCaliforniaColoradoConnecticutDelawareDistrict of ColumbiaFloridaGeorgiaHawaiiIdahoIllinoisIndianaIowaKansasKentuckyLouisianaMaineMarylandMassachusettsMichiganMinnesotaMississippiMissouriMontanaNebraskaNevadaNew HampshireNew JerseyNew MexicoNew YorkNorth CarolinaNorth DakotaOhioOklahomaOregonPennsylvaniaRhode IslandSouth CarolinaSouth DakotaTennesseeTexasUtahVermontVirginiaWashingtonWest VirginiaWisconsinWyomingArmed Forces AmericasArmed Forces EuropeArmed Forces Pacific
Research The Joint Chiropractic
Research Franchise
Why Do Chiropractors Franchise with The Joint?
© 2021 The Joint Chiropractic. All rights reserved. Privacy Policy Terms of Service.
For more information, call today: 480-372-9581.
Legal Disclaimers: 1) Please see item 19 in our 2019 Unit Franchise Disclosure Document (FDD) for our Financial Performance Representations. 2) Your individual earnings will vary depending on your market, the mix of services, how much you spend on marketing, and other factors. To learn more, fill out the form to download our franchise report and start a conversation with us. 3) This information is for franchise Clinics open at least 12 months and for the full calendar year of fiscal year 2018. 4) This information is not intended as an offer to sell a franchise. The offer of a franchise can only be made through the delivery of the FDD. Certain states require that we register the FDD. The information in this communications is not directed to the residents of any registration state. We will not offer or sell franchises in any registration state until we have registered the FDD (or obtained an applicable exemption from registration) and delivered the FDD to the prospective franchisee in compliance with applicable law.